diff --git a/go.mod b/go.mod index fe32f0983..cba85d32a 100644 --- a/go.mod +++ b/go.mod @@ -24,7 +24,7 @@ require ( github.com/buckket/go-blurhash v1.1.0 github.com/coreos/go-oidc/v3 v3.7.0 github.com/disintegration/imaging v1.6.2 - github.com/gin-contrib/cors v1.4.0 + github.com/gin-contrib/cors v1.5.0 github.com/gin-contrib/gzip v0.0.6 github.com/gin-contrib/sessions v0.0.5 github.com/gin-gonic/gin v1.9.1 @@ -86,10 +86,11 @@ require ( codeberg.org/gruf/go-maps v1.0.3 // indirect github.com/aymerick/douceur v0.2.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bytedance/sonic v1.9.1 // indirect + github.com/bytedance/sonic v1.10.1 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // 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/cilium/ebpf v0.9.1 // indirect github.com/containerd/cgroups/v3 v3.0.1 // indirect github.com/coreos/go-systemd/v22 v22.3.2 // indirect @@ -112,7 +113,7 @@ require ( github.com/go-logr/stdr v1.2.2 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.14.1 // indirect + github.com/go-playground/validator/v10 v10.15.5 // indirect github.com/go-xmlfmt/xmlfmt v0.0.0-20211206191508-7fd73a941850 // indirect github.com/goccy/go-json v0.10.2 // indirect github.com/godbus/dbus/v5 v5.0.4 // indirect @@ -143,7 +144,7 @@ require ( github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/opencontainers/runtime-spec v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/prometheus/client_model v0.5.0 // indirect @@ -169,7 +170,7 @@ require ( go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 // indirect go.opentelemetry.io/otel/metric v1.21.0 // indirect go.opentelemetry.io/proto/otlp v1.0.0 // indirect - golang.org/x/arch v0.3.0 // indirect + golang.org/x/arch v0.5.0 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/sync v0.3.0 // indirect golang.org/x/sys v0.14.0 // indirect diff --git a/go.sum b/go.sum index 24abb6620..1e4be4d79 100644 --- a/go.sum +++ b/go.sum @@ -96,16 +96,20 @@ github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6r github.com/buckket/go-blurhash v1.1.0 h1:X5M6r0LIvwdvKiUtiNcRL2YlmOfMzYobI3VCKCZc9Do= github.com/buckket/go-blurhash v1.1.0/go.mod h1:aT2iqo5W9vu9GpyoLErKfTHwgODsZp3bQfXjXJUxNb8= github.com/bytedance/sonic v1.5.0/go.mod h1:ED5hyg4y6t3/9Ku1R6dU/4KyJ48DZ4jPhfY1O2AihPM= -github.com/bytedance/sonic v1.9.1 h1:6iJ6NqdoxCDr6mbY8h18oSO+cShGSMRGCEo7F2h0x8s= -github.com/bytedance/sonic v1.9.1/go.mod h1:i736AoUSYt75HyZLoJW9ERYxcy6eaN6h4BZXU064P/U= +github.com/bytedance/sonic v1.10.0-rc/go.mod h1:ElCzW+ufi8qKqNW0FY314xriJhyJhuoJ3gFZdAHF7NM= +github.com/bytedance/sonic v1.10.1 h1:7a1wuFXL1cMy7a3f7/VFcEtriuXQnUBhtoVfOZiaysc= +github.com/bytedance/sonic v1.10.1/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= 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/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -176,8 +180,8 @@ github.com/gabriel-vasile/mimetype v1.4.2 h1:w5qFW6JKBz9Y393Y4q372O9A7cUSequkh1Q github.com/gabriel-vasile/mimetype v1.4.2/go.mod h1:zApsH/mKG4w07erKIaJPFiX0Tsq9BFQgN3qGY5GnNgA= github.com/gavv/httpexpect v2.0.0+incompatible h1:1X9kcRshkSKEjNJJxX9Y9mQ5BRfbxU5kORdjhlA1yX8= github.com/gavv/httpexpect v2.0.0+incompatible/go.mod h1:x+9tiU1YnrOvnB725RkpoLv1M62hOWzwo5OXotisrKc= -github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g= -github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs= +github.com/gin-contrib/cors v1.5.0 h1:DgGKV7DDoOn36DFkNtbHrjoRiT5ExCe+PC9/xp7aKvk= +github.com/gin-contrib/cors v1.5.0/go.mod h1:TvU7MAZ3EwrPLI2ztzTt3tqgvBCq+wn8WpZmfADjupI= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= github.com/gin-contrib/sessions v0.0.5 h1:CATtfHmLMQrMNpJRgzjWXD7worTh7g7ritsQfmF+0jE= @@ -216,8 +220,8 @@ github.com/go-playground/universal-translator v0.18.0/go.mod h1:UvRDBj+xPUEGrFYl github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= github.com/go-playground/validator/v10 v10.10.0/go.mod h1:74x4gJWsvQexRdW8Pn3dXSGrTK4nAUsbPlLADvpJkos= -github.com/go-playground/validator/v10 v10.14.1 h1:9c50NUPC30zyuKprjL3vNZ0m5oG+jU0zvx4AqHGnv4k= -github.com/go-playground/validator/v10 v10.14.1/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= +github.com/go-playground/validator/v10 v10.15.5 h1:LEBecTWb/1j5TNY1YYG2RcOUN3R7NLylN+x8TTueE24= +github.com/go-playground/validator/v10 v10.15.5/go.mod h1:9iXMNT7sEkjXb0I+enO7QXmzG6QCsPWY4zveKFVRSyU= github.com/go-session/session v3.1.2+incompatible/go.mod h1:8B3iivBQjrz/JtC68Np2T1yBBLxTan3mn/3OM0CyRt0= github.com/go-test/deep v1.0.8 h1:TDsG77qcSprGbC6vTN8OuXp5g+J+b5Pcguhf7Zt61VM= github.com/go-test/deep v1.0.8/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= @@ -369,6 +373,7 @@ github.com/klauspost/cpuid/v2 v2.0.1/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa02 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/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= @@ -428,8 +433,8 @@ github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/ github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e h1:s2RNOM/IGdY0Y6qfTeUKhDawdHDpK9RGBdx80qN4Ttw= github.com/orcaman/writerseeker v0.0.0-20200621085525-1d3f536ff85e/go.mod h1:nBdnFKj15wFbf94Rwfq4m30eAcyY9V/IyKAGQFtqkW0= github.com/pelletier/go-toml/v2 v2.0.1/go.mod h1:r9LEWfGN8R5k0VXJ+0BkIe7MYkRdwZOjgMj2KwnJFUo= -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.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= +github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -493,7 +498,6 @@ 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/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= @@ -620,8 +624,8 @@ go.uber.org/automaxprocs v1.5.3/go.mod h1:eRbA25aqJrxAbsLO0xy5jVwPt7FQnRgjW+efnw go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= -golang.org/x/arch v0.3.0 h1:02VY4/ZcO/gBOH6PUaoiptASxtXU10jazRCP865E97k= -golang.org/x/arch v0.3.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/arch v0.5.0 h1:jpGode6huXQxcskEIpOCvrU+tzo81b6+oFLUYXWtH/Y= +golang.org/x/arch v0.5.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -1027,6 +1031,7 @@ modernc.org/z v1.7.3 h1:zDJf6iHjrnB+WRD88stbXokugjyc0/pB91ri1gO6LZY= modernc.org/z v1.7.3/go.mod h1:Ipv4tsdxZRbQyLq9Q1M6gdbkxYzdlrciF2Hi/lS7nWE= mvdan.cc/xurls/v2 v2.5.0 h1:lyBNOm8Wo71UknhUs4QTFUNNMyxy2JEIaKKo0RWOh+8= mvdan.cc/xurls/v2 v2.5.0/go.mod h1:yQgaGQ1rFtJUzkmKiHYSSfuQxqfYmd//X6PxvholpeE= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile index 8cc0acf15..c672c313e 100644 --- a/vendor/github.com/bytedance/sonic/Makefile +++ b/vendor/github.com/bytedance/sonic/Makefile @@ -23,12 +23,12 @@ 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 +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 -DUSE_AVX=1 -DUSE_AVX2=0 -CFLAGS_avx2 := -msse -mno-sse4 -mavx -mpclmul -mavx2 -DUSE_AVX=1 -DUSE_AVX2=1 +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 @@ -66,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) @@ -75,8 +75,7 @@ $(1): ${@asmout} ${@deps} ${@asmout}: ${@stubout} ${NATIVE_SRC} mkdir -p ${TMP_DIR}/$(1) $${CC_${@cpu}} $${CFLAGS} $${CFLAGS_$(1)} -S -o ${TMP_DIR}/$(1)/native.s ${SRC_FILE} - python3 $${ASM2ASM_${@cpu}} ${@asmout} ${TMP_DIR}/$(1)/native.s - asmfmt -w ${@asmout} + python3 $${ASM2ASM_${@cpu}} -r ${@stubout} ${TMP_DIR}/$(1)/native.s $(eval $(call \ build_tmpl, \ diff --git a/vendor/github.com/bytedance/sonic/README.md b/vendor/github.com/bytedance/sonic/README.md index cdb32a57d..3486b9c47 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.21 +- Linux / MacOS / Windows(need go1.17 above) - Amd64 ARCH ## Features @@ -76,13 +76,17 @@ 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) - [Large](https://github.com/bytedance/sonic/blob/main/testdata/twitter.json) (635KB, 10000+ key, 6 layers) ![large benchmarks](./docs/imgs/bench-large.png) -See [bench.sh](https://github.com/bytedance/sonic/blob/main/bench.sh) for benchmark codes. +See [bench.sh](https://github.com/bytedance/sonic/blob/main/scripts/bench.sh) for benchmark codes. ## How it works See [INTRODUCTION.md](./docs/INTRODUCTION.md). @@ -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 43fd1d677..a18e99afe 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.21 +- Linux / MacOS / Windows(需要 Go1.17 以上) - Amd64 架构 ## 特色 @@ -79,13 +79,17 @@ 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) - [大型](https://github.com/bytedance/sonic/blob/main/testdata/twitter.json) (635kB, 10000+ 个键, 6 层) ![large benchmarks](./docs/imgs/bench-large.png) -要查看基准测试代码,请参阅 [bench.sh](https://github.com/bytedance/sonic/blob/main/bench.sh) 。 +要查看基准测试代码,请参阅 [bench.sh](https://github.com/bytedance/sonic/blob/main/scripts/bench.sh) 。 ## 工作原理 @@ -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 a042476f1..9525b7afd 100644 --- a/vendor/github.com/bytedance/sonic/api.go +++ b/vendor/github.com/bytedance/sonic/api.go @@ -68,7 +68,11 @@ type Config struct { // ValidateString indicates decoder and encoder to valid string values: decoder will return errors // when unescaped control chars(\u0000-\u001f) in the string value of JSON. - ValidateString bool + ValidateString bool + + // NoValidateJSONMarshaler indicates that the encoder should not validate the output string + // after encoding the JSONMarshaler to JSON. + NoValidateJSONMarshaler bool } var ( @@ -87,6 +91,7 @@ var ( // ConfigFastest is the fastest config of APIs, aiming at speed. ConfigFastest = Config{ NoQuoteTextMarshaler: true, + NoValidateJSONMarshaler: true, }.Froze() ) @@ -183,4 +188,9 @@ func Get(src []byte, path ...interface{}) (ast.Node, error) { // which can reduce unnecessary memory copy. func GetFromString(src string, path ...interface{}) (ast.Node, error) { return ast.NewSearcher(src).GetByPath(path...) -} \ No newline at end of file +} + +// 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 3047f59c3..da6738efd 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.22 /* * 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 } @@ -148,4 +154,4 @@ func (self *Searcher) GetByPath(path ...interface{}) (Node, error) { return Node{}, self.parser.ExportError(err) } return newRawNode(self.parser.s[start:self.parser.p], t), nil -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/ast/api_compat.go b/vendor/github.com/bytedance/sonic/ast/api_compat.go index b18b5ae8c..7b475eb61 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.22 /* * 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 000000000..93f4ff47a --- /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 6a5f6fea3..3e08bfcb2 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 1187e30c2..263ae5a9d 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,20 +250,32 @@ 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 } } *buf = append(*buf, '}') return nil -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/ast/error.go b/vendor/github.com/bytedance/sonic/ast/error.go index f4c441ae6..00a04468e 100644 --- a/vendor/github.com/bytedance/sonic/ast/error.go +++ b/vendor/github.com/bytedance/sonic/ast/error.go @@ -8,6 +8,33 @@ import ( `github.com/bytedance/sonic/internal/native/types` ) + +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, + l: uint(err.Code), + p: unsafe.Pointer(&msg), + } +} + func (self *Parser) syntaxError(err types.ParsingError) SyntaxError { return SyntaxError{ Pos : self.p, @@ -16,12 +43,17 @@ func (self *Parser) syntaxError(err types.ParsingError) SyntaxError { } } -func newSyntaxError(err SyntaxError) *Node { - msg := err.Description() - return &Node{ - t: V_ERROR, - v: int64(err.Code), - p: unsafe.Pointer(&msg), +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), + } } } diff --git a/vendor/github.com/bytedance/sonic/ast/iterator.go b/vendor/github.com/bytedance/sonic/ast/iterator.go index 03a25b4e9..3c4187a9c 100644 --- a/vendor/github.com/bytedance/sonic/ast/iterator.go +++ b/vendor/github.com/bytedance/sonic/ast/iterator.go @@ -82,26 +82,54 @@ type ObjectIterator struct { Iterator } +func (self *ListIterator) next() *Node { +next_start: + if !self.HasNext() { + return nil + } else { + n := self.p.nodeAt(self.i) + self.i++ + if !n.Exists() { + goto next_start + } + return n + } +} + // Next scans through children of underlying V_ARRAY, // copies each child to v, and returns .HasNext(). func (self *ListIterator) Next(v *Node) bool { - if !self.HasNext() { + n := self.next() + if n == nil { return false + } + *v = *n + return true +} + +func (self *ObjectIterator) next() *Pair { +next_start: + if !self.HasNext() { + return nil } else { - *v, self.i = *self.p.nodeAt(self.i), self.i + 1 - return true + n := self.p.pairAt(self.i) + self.i++ + if !n.Value.Exists() { + goto next_start + } + return n } } // Next scans through children of underlying V_OBJECT, // copies each child to v, and returns .HasNext(). func (self *ObjectIterator) Next(p *Pair) bool { - if !self.HasNext() { + n := self.next() + if n == nil { return false - } else { - *p, self.i = *self.p.pairAt(self.i), self.i + 1 - return true } + *p = *n + return true } // Sequence represents scanning path of single-layer nodes. @@ -129,36 +157,39 @@ type Scanner func(path Sequence, node *Node) bool // // Especailly, if the node is not V_ARRAY or V_OBJECT, // the node itself will be returned and Sequence.Index == -1. +// +// NOTICE: A unsetted node WON'T trigger sc, but its index still counts into Path.Index func (self *Node) ForEach(sc Scanner) error { switch self.itype() { case types.V_ARRAY: - ns, err := self.UnsafeArray() + iter, err := self.Values() if err != nil { return err } - for i := range ns { - if !sc(Sequence{i, nil}, &ns[i]) { - return err + v := iter.next() + for v != nil { + if !sc(Sequence{iter.i-1, nil}, v) { + return nil } + v = iter.next() } case types.V_OBJECT: - ns, err := self.UnsafeMap() + iter, err := self.Properties() if err != nil { return err } - for i := range ns { - if !sc(Sequence{i, &ns[i].Key}, &ns[i].Value) { - return err + v := iter.next() + for v != nil { + if !sc(Sequence{iter.i-1, &v.Key}, &v.Value) { + return nil } + v = iter.next() } default: + if self.Check() != nil { + return self + } sc(Sequence{-1, nil}, self) } - return self.Check() + return nil } - -type PairSlice []Pair - -func (self PairSlice) Sort() { - radixQsort(self, 0, maxDepth(len(self))) -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/node.go b/vendor/github.com/bytedance/sonic/ast/node.go index 6b5ad8a3e..990908ddd 100644 --- a/vendor/github.com/bytedance/sonic/ast/node.go +++ b/vendor/github.com/bytedance/sonic/ast/node.go @@ -21,20 +21,11 @@ import ( `fmt` `strconv` `unsafe` - `reflect` `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` ) -const ( - _CAP_BITS = 32 - _LEN_MASK = 1 << _CAP_BITS - 1 - - _NODE_SIZE = unsafe.Sizeof(Node{}) - _PAIR_SIZE = unsafe.Sizeof(Pair{}) -) - const ( _V_NONE types.ValueType = 0 _V_NODE_BASE types.ValueType = 1 << 5 @@ -51,40 +42,36 @@ const ( const ( V_NONE = 0 V_ERROR = 1 - V_NULL = 2 - V_TRUE = 3 - V_FALSE = 4 - V_ARRAY = 5 - V_OBJECT = 6 - V_STRING = 7 + V_NULL = int(types.V_NULL) + V_TRUE = int(types.V_TRUE) + V_FALSE = int(types.V_FALSE) + V_ARRAY = int(types.V_ARRAY) + V_OBJECT = int(types.V_OBJECT) + V_STRING = int(types.V_STRING) V_NUMBER = int(_V_NUMBER) V_ANY = int(_V_ANY) ) -var ( - byteType = rt.UnpackType(reflect.TypeOf(byte(0))) -) - type Node struct { - v int64 t types.ValueType + l uint p unsafe.Pointer } // UnmarshalJSON is just an adapter to json.Unmarshaler. // If you want better performance, use Searcher.GetByPath() directly func (self *Node) UnmarshalJSON(data []byte) (err error) { - *self, err = NewSearcher(string(data)).GetByPath() - return + *self = NewRaw(string(data)) + return self.Check() } /** Node Type Accessor **/ // Type returns json type represented by the node // It will be one of belows: -// V_NONE = 0 (empty node) +// V_NONE = 0 (empty node, key not exists) // V_ERROR = 1 (error node) -// V_NULL = 2 (json value `null`) +// V_NULL = 2 (json value `null`, key exists) // V_TRUE = 3 (json value `true`) // V_FALSE = 4 (json value `false`) // V_ARRAY = 5 (json value array) @@ -102,7 +89,7 @@ func (self Node) itype() types.ValueType { // Exists returns false only if the self is nil or empty node V_NONE func (self *Node) Exists() bool { - return self != nil && self.t != _V_NONE + return self.Valid() && self.t != _V_NONE } // Valid reports if self is NOT V_ERROR or nil @@ -114,7 +101,7 @@ func (self *Node) Valid() bool { } // Check checks if the node itself is valid, and return: -// - ErrNotFound If the node is nil +// - ErrNotExist If the node is nil // - Its underlying error If the node is V_ERROR func (self *Node) Check() error { if self == nil { @@ -126,15 +113,6 @@ func (self *Node) Check() error { } } -// 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) - } -} - // IsRaw returns true if node's underlying value is raw json func (self Node) IsRaw() bool { return self.t&_V_RAW != 0 @@ -152,11 +130,14 @@ func (self *Node) isAny() bool { // Raw returns json representation of the node, func (self *Node) Raw() (string, error) { + if self == nil { + return "", ErrNotExist + } if !self.IsRaw() { buf, err := self.MarshalJSON() return rt.Mem2Str(buf), err } - return rt.StrFrom(self.p, self.v), nil + return self.toString(), nil } func (self *Node) checkRaw() error { @@ -166,7 +147,7 @@ func (self *Node) checkRaw() error { if self.IsRaw() { self.parseRaw(false) } - return nil + return self.Check() } // Bool returns bool value represented by this node, @@ -181,14 +162,14 @@ func (self *Node) Bool() (bool, error) { case types.V_FALSE : return false, nil case types.V_NULL : return false, nil case _V_NUMBER : - if i, err := numberToInt64(self); err == nil { + if i, err := self.toInt64(); err == nil { return i != 0, nil - } else if f, err := numberToFloat64(self); err == nil { + } else if f, err := self.toFloat64(); err == nil { return f != 0, nil } else { return false, err } - case types.V_STRING: return strconv.ParseBool(rt.StrFrom(self.p, self.v)) + case types.V_STRING: return strconv.ParseBool(self.toString()) case _V_ANY : any := self.packAny() switch v := any.(type) { @@ -229,9 +210,9 @@ func (self *Node) Int64() (int64, error) { } switch self.t { case _V_NUMBER, types.V_STRING : - if i, err := numberToInt64(self); err == nil { + if i, err := self.toInt64(); err == nil { return i, nil - } else if f, err := numberToFloat64(self); err == nil { + } else if f, err := self.toFloat64(); err == nil { return int64(f), nil } else { return 0, err @@ -283,7 +264,7 @@ func (self *Node) StrictInt64() (int64, error) { return 0, err } switch self.t { - case _V_NUMBER : return numberToInt64(self) + case _V_NUMBER : return self.toInt64() case _V_ANY : any := self.packAny() switch v := any.(type) { @@ -325,12 +306,12 @@ func (self *Node) Number() (json.Number, error) { return json.Number(""), err } switch self.t { - case _V_NUMBER : return toNumber(self) , nil + case _V_NUMBER : return self.toNumber(), nil case types.V_STRING : - if _, err := numberToInt64(self); err == nil { - return toNumber(self), nil - } else if _, err := numberToFloat64(self); err == nil { - return toNumber(self), nil + if _, err := self.toInt64(); err == nil { + return self.toNumber(), nil + } else if _, err := self.toFloat64(); err == nil { + return self.toNumber(), nil } else { return json.Number(""), err } @@ -372,7 +353,7 @@ func (self *Node) StrictNumber() (json.Number, error) { return json.Number(""), err } switch self.t { - case _V_NUMBER : return toNumber(self) , nil + case _V_NUMBER : return self.toNumber() , nil case _V_ANY : if v, ok := self.packAny().(json.Number); ok { return v, nil @@ -394,7 +375,7 @@ func (self *Node) String() (string, error) { case types.V_NULL : return "" , nil case types.V_TRUE : return "true" , nil case types.V_FALSE : return "false", nil - case types.V_STRING, _V_NUMBER : return rt.StrFrom(self.p, self.v), nil + case types.V_STRING, _V_NUMBER : return self.toString(), nil case _V_ANY : any := self.packAny() switch v := any.(type) { @@ -426,7 +407,7 @@ func (self *Node) StrictString() (string, error) { return "", err } switch self.t { - case types.V_STRING : return rt.StrFrom(self.p, self.v), nil + case types.V_STRING : return self.toString(), nil case _V_ANY : if v, ok := self.packAny().(string); ok { return v, nil @@ -445,7 +426,7 @@ func (self *Node) Float64() (float64, error) { return 0.0, err } switch self.t { - case _V_NUMBER, types.V_STRING : return numberToFloat64(self) + case _V_NUMBER, types.V_STRING : return self.toFloat64() case types.V_TRUE : return 1.0, nil case types.V_FALSE : return 0.0, nil case types.V_NULL : return 0.0, nil @@ -494,7 +475,7 @@ func (self *Node) StrictFloat64() (float64, error) { return 0.0, err } switch self.t { - case _V_NUMBER : return numberToFloat64(self) + case _V_NUMBER : return self.toFloat64() case _V_ANY : any := self.packAny() switch v := any.(type) { @@ -509,15 +490,14 @@ func (self *Node) StrictFloat64() (float64, error) { /** Sequencial Value Methods **/ // Len returns children count of a array|object|string node -// For partially loaded node, it also works but only counts the parsed children +// WARN: For partially loaded node, it also works but only counts the parsed children +// WARN: For ARRAY|OBJECT nodes which has been conducted `UnsetXX()`, its length WON'T change func (self *Node) Len() (int, error) { if err := self.checkRaw(); err != nil { return 0, err } - if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { - return int(self.v & _LEN_MASK), nil - } else if self.t == types.V_STRING { - return int(self.v), nil + if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY || self.t == types.V_STRING { + return int(self.l), nil } else if self.t == _V_NONE || self.t == types.V_NULL { return 0, nil } else { @@ -526,7 +506,7 @@ func (self *Node) Len() (int, error) { } func (self Node) len() int { - return int(self.v & _LEN_MASK) + return int(self.l) } // Cap returns malloc capacity of a array|object node for children @@ -534,47 +514,42 @@ func (self *Node) Cap() (int, error) { if err := self.checkRaw(); err != nil { return 0, err } - if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { - return int(self.v >> _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. func (self *Node) Set(key string, node Node) (bool, error) { - if self != nil && (self.t == _V_NONE || self.t == types.V_NULL) { - *self = NewObject([]Pair{{key, node}}) - return false, nil + if err := self.Check(); err != nil { + return false, err } - if err := node.Check(); err != nil { return false, err } + if self.t == _V_NONE || self.t == types.V_NULL { + *self = NewObject([]Pair{{key, node}}) + return false, nil + } + 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 { @@ -590,9 +565,12 @@ func (self *Node) SetAny(key string, val interface{}) (bool, error) { return self.Set(key, NewAny(val)) } -// Unset remove the node of given key under object parent, and reports if the key has existed. +// Unset RESET 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") + if err := self.should(types.V_OBJECT, "an object"); err != nil { + return false, err + } p, i := self.skipKey(key) if !p.Exists() { return false, nil @@ -608,10 +586,18 @@ func (self *Node) Unset(key string) (bool, error) { // // The index must be within self's children. func (self *Node) SetByIndex(index int, node Node) (bool, error) { + if err := self.Check(); err != nil { + return false, err + } if err := node.Check(); err != nil { return false, err } + if index == 0 && (self.t == _V_NONE || self.t == types.V_NULL) { + *self = NewArray([]Node{node}) + return false, nil + } + p := self.Index(index) if !p.Exists() { return false, ErrNotExist @@ -629,12 +615,20 @@ 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) { + if err := self.Check(); err != nil { + return false, err + } + var p *Node it := self.itype() if it == types.V_ARRAY { p = self.Index(index) }else if it == types.V_OBJECT { + if err := self.checkRaw(); err != nil { + return false, err + } pr := self.skipIndexPair(index) if pr == nil { return false, ErrNotExist @@ -660,31 +654,28 @@ func (self *Node) UnsetByIndex(index int) (bool, error) { // // If self is V_NONE or V_NULL, it becomes V_ARRAY and sets the node at index 0. func (self *Node) Add(node Node) error { + if err := self.Check(); err != nil { + return err + } + if self != nil && (self.t == _V_NONE || self.t == types.V_NULL) { *self = NewArray([]Node{node}) 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 +721,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 +746,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,30 +832,68 @@ 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 -func (self *Node) UnsafeMap() ([]Pair, error) { - if err := self.should(types.V_OBJECT, "an object"); err != nil { - return nil, err - } +// +// 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 +// } +// if err := self.skipAllKey(); err != nil { +// return nil, err +// } +// return self.toGenericObjectUsePair() +// } + +//go:nocheckptr +func (self *Node) unsafeMap() (*linkedPairs, error) { if err := self.skipAllKey(); err != nil { return nil, err } - s := rt.Ptr2SlicePtr(self.p, int(self.len()), self.cap()) - return *(*[]Pair)(s), nil + 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() +func (self *Node) SortKeys(recurse bool) error { + // check raw node first + if err := self.checkRaw(); err != nil { + return err + } + if self.itype() == types.V_OBJECT { + return self.sortKeys(recurse) + } else { + var err error + err2 := self.ForEach(func(path Sequence, node *Node) bool { + it := node.itype() + if it == types.V_ARRAY || it == types.V_OBJECT { + err = node.SortKeys(recurse) + if err != nil { + return false + } + } + return true + }) + if err != nil { + return err + } + return err2 + } +} + +func (self *Node) sortKeys(recurse bool) (err error) { + 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 { if node.itype() == types.V_OBJECT { - if err := node.SortKeys(recurse); err != nil { + if err := node.sortKeys(recurse); err != nil { return false } } @@ -871,7 +904,9 @@ func (self *Node) SortKeys(recurse bool) (err error) { } return true } - self.ForEach(sc) + if err := self.ForEach(sc); err != nil { + return err + } } return nil } @@ -936,15 +971,27 @@ 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 -func (self *Node) UnsafeArray() ([]Node, error) { - if err := self.should(types.V_ARRAY, "an array"); err != nil { - return nil, err - } +// +// 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 +// } +// if err := self.skipAllIndex(); err != nil { +// return nil, err +// } +// return self.toGenericArrayUseNode() +// } + +func (self *Node) unsafeArray() (*linkedNodes, error) { if err := self.skipAllIndex(); err != nil { return nil, err } - s := rt.Ptr2SlicePtr(self.p, self.len(), self.cap()) - return *(*[]Node)(s), nil + 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 +1008,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 +1052,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 @@ -1092,9 +1139,8 @@ func (self *Node) LoadAll() error { // Load loads the node's children as parsed. // After calling it, only the node itself can be used on concurrency (not include its children) func (self *Node) Load() error { - if self.IsRaw() { - self.parseRaw(false) - return self.Load() + if err := self.checkRaw(); err != nil { + return err } switch self.t { @@ -1109,39 +1155,6 @@ func (self *Node) Load() error { /**---------------------------------- Internal Helper Methods ----------------------------------**/ -var ( - _NODE_TYPE = rt.UnpackEface(Node{}).Type - _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) unsafe_next() *Node { - return (*Node)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _NODE_SIZE)) -} - -func (self *Pair) unsafe_next() *Pair { - return (*Pair)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _PAIR_SIZE)) -} - -func (self *Node) must(t types.ValueType, s string) { - if err := self.checkRaw(); err != nil { - panic(err) - } - if err := self.Check(); err != nil { - panic(err) - } - if self.itype() != t { - panic("value cannot be represented as " + s) - } -} - func (self *Node) should(t types.ValueType, s string) error { if err := self.checkRaw(); err != nil { return err @@ -1153,37 +1166,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 +1195,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 +1210,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 +1224,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 +1307,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 +1321,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 +1329,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 +1372,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 +1394,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 +1430,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,24 +1452,13 @@ 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 - } - - 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 - } + var s = (*linkedPairs)(self.p) + var out = make(map[string]Node, nb) + s.ToMap(out) /* all done */ return out, nil @@ -1536,15 +1470,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 +1498,6 @@ func NewAny(any interface{}) Node { default: return Node{ t: _V_ANY, - v: 0, p: unsafe.Pointer(&any), } } @@ -1585,7 +1515,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 +1529,6 @@ func NewBool(v bool) Node { t = types.V_TRUE } return Node{ - v: 0, p: nil, t: t, } @@ -1610,26 +1538,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 +1572,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 +1584,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 { + s := new(linkedPairs) + s.FromSlice(v) + return newObject(s) +} + +func newObject(v *linkedPairs) Node { return Node{ t: types.V_OBJECT, - 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) setObject(v []Pair) { +func (self *Node) setObject(v *linkedPairs) { 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 -} - -func newLazyArray(p *Parser, v []Node) Node { - s := new(parseArrayStack) - s.parser = *p - s.v = v - 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), - } -} - -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) + 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 +1654,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 +1677,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), - } - } -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/ast/parser.go b/vendor/github.com/bytedance/sonic/ast/parser.go index 0a8e7b068..cb16f20bb 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 @@ -30,7 +34,10 @@ const ( ) var ( + // ErrNotExist means both key and value doesn't exist ErrNotExist error = newError(_ERR_NOT_FOUND, "value not exists") + + // ErrUnsupportType means API on the node is unsupported ErrUnsupportType error = newError(_ERR_UNSUPPORT_TYPE, "unsupported type") ) @@ -39,6 +46,7 @@ type Parser struct { s string noLazy bool skipValue bool + dbuf *byte } /** Parser Private Methods **/ @@ -107,7 +115,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 +127,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 +157,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 +168,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 +190,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 +243,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 +255,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 +299,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 self.noLazy { - return self.decodeArray(make([]Node, 0, _DEFAULT_NODE_CAP)) + if p := skipBlank(self.s, self.p); p >= self.p && self.s[p] == ']' { + self.p = p + 1 + return Node{t: types.V_ARRAY}, 0 } - return newLazyArray(self, make([]Node, 0, _DEFAULT_NODE_CAP)), 0 + if self.noLazy { + return self.decodeArray(new(linkedNodes)) + } + return newLazyArray(self), 0 case types.V_OBJECT: - if self.noLazy { - return self.decodeObject(make([]Pair, 0, _DEFAULT_NODE_CAP)) + if p := skipBlank(self.s, self.p); p >= self.p && self.s[p] == '}' { + self.p = p + 1 + return Node{t: types.V_OBJECT}, 0 } - return newLazyObject(self, make([]Pair, 0, _DEFAULT_NODE_CAP)), 0 + if self.noLazy { + return self.decodeObject(new(linkedPairs)) + } + 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 +446,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 +475,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 +488,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 +504,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 +558,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 +571,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 +618,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 { @@ -615,4 +652,4 @@ func (self *Parser) ExportError(err types.ParsingError) error { Src : self.s, Code: err, }.Description()) -} \ No newline at end of file +} 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 0a9f14559..000000000 --- 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/stubs_go120.go b/vendor/github.com/bytedance/sonic/ast/stubs_go120.go index bd6fff680..6f830529d 100644 --- a/vendor/github.com/bytedance/sonic/ast/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/ast/stubs_go120.go @@ -52,4 +52,4 @@ var ( ) //go:linkname unquoteBytes encoding/json.unquoteBytes -func unquoteBytes(s []byte) (t []byte, ok bool) \ No newline at end of file +func unquoteBytes(s []byte) (t []byte, ok bool) 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 000000000..4019c31a2 --- /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/bench-arm.sh b/vendor/github.com/bytedance/sonic/bench-arm.sh deleted file mode 100644 index b47d6278a..000000000 --- a/vendor/github.com/bytedance/sonic/bench-arm.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash - -pwd=$(pwd) -export SONIC_NO_ASYNC_GC=1 - -cd $pwd/ast -go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" - -go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*|BenchmarkEncode.*)$" - -go test -benchmem -run=^$ -benchtime=10000000x -bench "^(BenchmarkNodeGetByPath|BenchmarkStructGetByPath|BenchmarkNodeIndex|BenchmarkStructIndex|BenchmarkSliceIndex|BenchmarkMapIndex|BenchmarkNodeGet|BenchmarkSliceGet|BenchmarkMapGet|BenchmarkNodeSet|BenchmarkMapSet|BenchmarkNodeSetByIndex|BenchmarkSliceSetByIndex|BenchmarkStructSetByIndex|BenchmarkNodeUnset|BenchmarkMapUnset|BenchmarkNodUnsetByIndex|BenchmarkSliceUnsetByIndex|BenchmarkNodeAdd|BenchmarkSliceAdd|BenchmarkMapAdd)$" - -unset SONIC_NO_ASYNC_GC -cd $pwd \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/bench.py b/vendor/github.com/bytedance/sonic/bench.py deleted file mode 100644 index 1d4c35739..000000000 --- a/vendor/github.com/bytedance/sonic/bench.py +++ /dev/null @@ -1,134 +0,0 @@ -#!/usr/bin/env python3 - -# 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. - -import tempfile -import os -import subprocess -import argparse - -gbench_prefix = "SONIC_NO_ASYNC_GC=1 go test -benchmem -run=none " - -def run(cmd): - print(cmd) - if os.system(cmd): - print ("Failed to run cmd: %s"%(cmd)) - exit(1) - -def run_s(cmd): - print (cmd) - try: - res = os.popen(cmd) - except subprocess.CalledProcessError as e: - if e.returncode: - print (e.output) - exit(1) - return res.read() - -def run_r(cmd): - print (cmd) - try: - cmds = cmd.split(' ') - data = subprocess.check_output(cmds, stderr=subprocess.STDOUT) - except subprocess.CalledProcessError as e: - if e.returncode: - print (e.output) - exit(1) - return data.decode("utf-8") - -def compare(args): - # detech current branch. - # result = run_r("git branch") - current_branch = run_s("git status | head -n1 | sed 's/On branch //'") - # for br in result.split('\n'): - # if br.startswith("* "): - # current_branch = br.lstrip('* ') - # break - - if not current_branch: - print ("Failed to detech current branch") - return None - - # get the current diff - (fd, diff) = tempfile.mkstemp() - run("git diff > %s"%diff) - - # early return if currrent is main branch. - print ("Current branch: %s"%(current_branch)) - if current_branch == "main": - print ("Cannot compare at the main branch.Please build a new branch") - return None - - # benchmark current branch - (fd, target) = tempfile.mkstemp(".target.txt") - run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, target)) - - # trying to switch to the latest main branch - run("git checkout -- .") - if current_branch != "main": - run("git checkout main") - run("git pull --allow-unrelated-histories origin main") - - # benchmark main branch - (fd, main) = tempfile.mkstemp(".main.txt") - run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, args, main)) - - # diff the result - # benchstat = "go get golang.org/x/perf/cmd/benchstat && go install golang.org/x/perf/cmd/benchstat" - run( "benchstat -sort=delta %s %s"%(main, target)) - run("git checkout -- .") - - # restore branch - if current_branch != "main": - run("git checkout %s"%(current_branch)) - run("patch -p1 < %s" % (diff)) - return target - -def main(): - argparser = argparse.ArgumentParser(description='Tools to test the performance. Example: ./bench.py -b Decoder_Generic_Sonic -c') - argparser.add_argument('-b', '--bench', dest='filter', required=False, - help='Specify the filter for golang benchmark') - argparser.add_argument('-c', '--compare', dest='compare', action='store_true', required=False, - help='Compare with the main benchmarking') - argparser.add_argument('-t', '--times', dest='times', required=False, - help='benchmark the times') - argparser.add_argument('-r', '--repeat_times', dest='count', required=False, - help='benchmark the count') - args = argparser.parse_args() - - if args.filter: - gbench_args = "-bench=%s"%(args.filter) - else: - gbench_args = "-bench=." - - if args.times: - gbench_args += " -benchtime=%s"%(args.times) - - if args.count: - gbench_args += " -count=%s"%(args.count) - else: - gbench_args += " -count=10" - - if args.compare: - target = compare(gbench_args) - else: - target = None - - if not target: - (fd, target) = tempfile.mkstemp(".target.txt") - run("%s %s ./... 2>&1 | tee %s" %(gbench_prefix, gbench_args, target)) - -if __name__ == "__main__": - main() diff --git a/vendor/github.com/bytedance/sonic/bench.sh b/vendor/github.com/bytedance/sonic/bench.sh deleted file mode 100644 index 701986b58..000000000 --- a/vendor/github.com/bytedance/sonic/bench.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env bash - -pwd=$(pwd) -export SONIC_NO_ASYNC_GC=1 - -cd $pwd/encoder -go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkEncoder_.*)$" - -cd $pwd/decoder -go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkDecoder_.*)$" - -cd $pwd/ast -go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" - -go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*|BenchmarkEncode.*)$" - -go test -benchmem -run=^$ -benchtime=10000000x -bench "^(BenchmarkNodeGetByPath|BenchmarkStructGetByPath|BenchmarkNodeIndex|BenchmarkStructIndex|BenchmarkSliceIndex|BenchmarkMapIndex|BenchmarkNodeGet|BenchmarkSliceGet|BenchmarkMapGet|BenchmarkNodeSet|BenchmarkMapSet|BenchmarkNodeSetByIndex|BenchmarkSliceSetByIndex|BenchmarkStructSetByIndex|BenchmarkNodeUnset|BenchmarkMapUnset|BenchmarkNodUnsetByIndex|BenchmarkSliceUnsetByIndex|BenchmarkNodeAdd|BenchmarkSliceAdd|BenchmarkMapAdd)$" - -cd $pwd/external_jsonlib_test/benchmark_test -go test -benchmem -run=^$ -benchtime=100000x -bench "^(BenchmarkEncoder_.*|BenchmarkDecoder_.*)$" - -go test -benchmem -run=^$ -benchtime=1000000x -bench "^(BenchmarkGet.*|BenchmarkSet.*)$" - -go test -benchmem -run=^$ -benchtime=10000x -bench "^(BenchmarkParser_.*)$" - -unset SONIC_NO_ASYNC_GC -cd $pwd \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/check_branch_name.sh b/vendor/github.com/bytedance/sonic/check_branch_name.sh deleted file mode 100644 index d1905dab1..000000000 --- a/vendor/github.com/bytedance/sonic/check_branch_name.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -current=$(git status | head -n1 | sed 's/On branch //') -name=${1:-$current} -if [[ ! $name =~ ^(((opt(imize)?|feat(ure)?|doc|(bug|hot)?fix|test|refact(or)?|ci)/.+)|(main|develop)|(release/.+)|(release-v[0-9]+\.[0-9]+)|(release/v[0-9]+\.[0-9]+\.[0-9]+(-[a-z0-9.]+(\+[a-z0-9.]+)?)?)|revert-[a-z0-9]+)$ ]]; then - echo "branch name '$name' is invalid" - exit 1 -else - echo "branch name '$name' is valid" -fi diff --git a/vendor/github.com/bytedance/sonic/compat.go b/vendor/github.com/bytedance/sonic/compat.go index 015aa62bf..ec414c0cf 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.22 /* * 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 2ef19957c..7c2845514 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.22 /* * 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 e6b9463d7..84bae4387 100644 --- a/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go +++ b/vendor/github.com/bytedance/sonic/decoder/decoder_compat.go @@ -1,4 +1,4 @@ -// +build !amd64 go1.21 +// +build !amd64 !go1.16 go1.22 /* * Copyright 2023 ByteDance Inc. @@ -14,28 +14,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` ) -const ( - _F_use_int64 = iota - _F_use_number - _F_disable_urc - _F_disable_unknown - _F_copy_string - _F_validate_string +func init() { + println("WARNING: sonic only supports Go1.16~1.20 && CPU amd64, but your environment is not suitable") +} - _F_allow_control = 31 +const ( + _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 @@ -106,10 +112,10 @@ func (self *Decoder) CheckTrailings() error { func (self *Decoder) Decode(val interface{}) error { r := bytes.NewBufferString(self.s) dec := json.NewDecoder(r) - if (self.f | uint64(OptionUseNumber)) != 0 { + if (self.f & uint64(OptionUseNumber)) != 0 { dec.UseNumber() } - if (self.f | uint64(OptionDisableUnknown)) != 0 { + if (self.f & uint64(OptionDisableUnknown)) != 0 { dec.DisallowUnknownFields() } return dec.Decode(val) @@ -163,34 +169,26 @@ func Pretouch(vt reflect.Type, opts ...option.CompileOption) error { return nil } -type StreamDecoder struct { - r io.Reader - buf []byte - scanp int - scanned int64 - err error - Decoder -} +type StreamDecoder = json.Decoder // NewStreamDecoder adapts to encoding/json.NewDecoder API. // // NewStreamDecoder returns a new decoder that reads from r. func NewStreamDecoder(r io.Reader) *StreamDecoder { - return &StreamDecoder{r : r} + return json.NewDecoder(r) } -// Decode decodes input stream into val with corresponding data. -// Redundantly bytes may be read and left in its buffer, and can be used at next call. -// Either io error from underlying io.Reader (except io.EOF) -// or syntax error from data will be recorded and stop subsequently decoding. -func (self *StreamDecoder) Decode(val interface{}) (err error) { - dec := json.NewDecoder(self.r) - if (self.f | uint64(OptionUseNumber)) != 0 { - dec.UseNumber() - } - if (self.f | uint64(OptionDisableUnknown)) != 0 { - dec.DisallowUnknownFields() - } - 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 fa107c73f..e93b09a25 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.22 /* * Copyright 2023 ByteDance Inc. @@ -59,6 +59,10 @@ const ( // before encoding it into JSON. ValidateString Options = encoder.ValidateString + // NoValidateJSONMarshaler indicates that the encoder should not validate the output string + // after encoding the JSONMarshaler to JSON. + NoValidateJSONMarshaler Options = encoder.NoValidateJSONMarshaler + // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = encoder.CompatibleWithStd ) @@ -105,4 +109,4 @@ var ( // // NewStreamEncoder returns a new encoder that write to w. NewStreamEncoder = encoder.NewStreamEncoder -) \ No newline at end of file +) diff --git a/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go b/vendor/github.com/bytedance/sonic/encoder/encoder_compat.go index afa80d561..2e02b59cd 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.22 /* * 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 @@ -37,6 +41,7 @@ const ( bitNoQuoteTextMarshaler bitNoNullSliceOrMap bitValidateString + bitNoValidateJSONMarshaler // used for recursive compile bitPointerValue = 63 @@ -68,6 +73,10 @@ const ( // ValidateString indicates that encoder should validate the input string // before encoding it into JSON. ValidateString Options = 1 << bitValidateString + + // NoValidateJSONMarshaler indicates that the encoder should not validate the output string + // after encoding the JSONMarshaler to JSON. + NoValidateJSONMarshaler Options = 1 << bitNoValidateJSONMarshaler // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler @@ -112,6 +121,15 @@ func (self *Encoder) SetValidateString(f bool) { } } +// SetNoValidateJSONMarshaler specifies if option NoValidateJSONMarshaler opens +func (self *Encoder) SetNoValidateJSONMarshaler(f bool) { + if f { + self.Opts |= NoValidateJSONMarshaler + } else { + self.Opts &= ^NoValidateJSONMarshaler + } +} + // SetCompactMarshaler specifies if option CompactMarshaler opens func (self *Encoder) SetCompactMarshaler(f bool) { if f { @@ -212,23 +230,12 @@ func Valid(data []byte) (ok bool, start int) { } // StreamEncoder uses io.Writer as -type StreamEncoder struct { - w io.Writer - Encoder -} +type StreamEncoder = json.Encoder // NewStreamEncoder adapts to encoding/json.NewDecoder API. // // NewStreamEncoder returns a new encoder that write to w. func NewStreamEncoder(w io.Writer) *StreamEncoder { - return &StreamEncoder{w: w} + return json.NewEncoder(w) } -// Encode encodes interface{} as JSON to io.Writer -func (enc *StreamEncoder) Encode(val interface{}) (err error) { - jenc := json.NewEncoder(enc.w) - jenc.SetEscapeHTML((enc.Opts & EscapeHTML) != 0) - jenc.SetIndent(enc.prefix, enc.indent) - err = jenc.Encode(val) - return err -} 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 000000000..b0aa68a10 --- /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 000000000..be1a6b7c9 --- /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 000000000..f13c815fc --- /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 000000000..91cdf8c3d --- /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/loader/loader_go115.go b/vendor/github.com/bytedance/sonic/internal/abi/stubs.go similarity index 59% rename from vendor/github.com/bytedance/sonic/loader/loader_go115.go rename to vendor/github.com/bytedance/sonic/internal/abi/stubs.go index a1d4d7892..b2486a1cf 100644 --- a/vendor/github.com/bytedance/sonic/loader/loader_go115.go +++ b/vendor/github.com/bytedance/sonic/internal/abi/stubs.go @@ -1,8 +1,5 @@ -//go:build go1.15 && !go1.16 -// +build go1.15,!go1.16 - -/* - * Copyright 2021 ByteDance Inc. +/** + * 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. @@ -17,12 +14,22 @@ * limitations under the License. */ -package loader +package abi import ( - `github.com/bytedance/sonic/internal/loader` + _ `unsafe` + + `github.com/bytedance/sonic/internal/rt` ) -func (self Loader) LoadOne(text []byte, funcName string, frameSize int, argSize int, argStackmap []bool, localStackmap []bool) Function { - return Function(loader.Loader(text).Load(funcName, frameSize, argSize, argStackmap, localStackmap)) -} \ No newline at end of file +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/asm_stubs_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go116.go new file mode 100644 index 000000000..4c4c850ac --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go116.go @@ -0,0 +1,130 @@ +// +build go1.16,!go1.17 + +// Copyright 2023 CloudWeGo Authors +// +// 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 decoder + +import ( + `strconv` + _ `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/bytedance/sonic/internal/rt` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +var _runtime_writeBarrier uintptr = rt.GcwbAddr() + +//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier +func gcWriteBarrierAX() + +var ( + _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } else { + self.Emit("MOVQ", ptr, _AX) + } + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + + +func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go117.go new file mode 100644 index 000000000..b0125a792 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go117.go @@ -0,0 +1,126 @@ +// +build go1.17,!go1.21 + +// Copyright 2023 CloudWeGo Authors +// +// 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 decoder + +import ( + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +//go:linkname _runtime_writeBarrier runtime.writeBarrier +var _runtime_writeBarrier uintptr + +//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier +func gcWriteBarrierAX() + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } else { + self.Emit("MOVQ", ptr, _AX) + } + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + if saveAX { + self.Emit("XCHGQ", ptr, _AX) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + + +func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + +func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _AX) + self.Emit("CMPL", jit.Ptr(_AX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + if saveDI { + self.save(_DI) + } + self.Emit("LEAQ", rec, _DI) + self.call(_F_gcWriteBarrierAX) + if saveDI { + self.load(_DI) + } + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go new file mode 100644 index 000000000..5db5b5cd0 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/decoder/asm_stubs_amd64_go121.go @@ -0,0 +1,132 @@ +// +build go1.21,!go1.22 + +// Copyright 2023 CloudWeGo Authors +// +// 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 decoder + +import ( + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +//go:linkname _runtime_writeBarrier runtime.writeBarrier +var _runtime_writeBarrier uintptr + +//go:nosplit +//go:linkname gcWriteBarrier2 runtime.gcWriteBarrier2 +func gcWriteBarrier2() + +// Notice: gcWriteBarrier must use R11 register!! +var _R11 = _IC + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrier2 = jit.Func(gcWriteBarrier2) +) + +func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI, _R11) + } else { + self.save(_R11) + } + self.Emit("MOVQ", _F_gcWriteBarrier2, _R11) + self.Rjmp("CALL", _R11) + self.Emit("MOVQ", _AX, jit.Ptr(_R11, 0)) + self.Emit("MOVQ", rec, _DI) + self.Emit("MOVQ", _DI, jit.Ptr(_R11, 8)) + if saveDI { + self.load(_DI, _R11) + } else { + self.load(_R11) + } + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) +} + +func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveAX { + self.save(_AX, _R11) + } else { + self.save(_R11) + } + self.Emit("MOVQ", _F_gcWriteBarrier2, _R11) + self.Rjmp("CALL", _R11) + self.Emit("MOVQ", ptr, jit.Ptr(_R11, 0)) + self.Emit("MOVQ", rec, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_R11, 8)) + if saveAX { + self.load(_AX, _R11) + } else { + self.load(_R11) + } + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) +} + +func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { + self.Emit("MOVQ", _V_writeBarrier, _R9) + self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + if saveDI { + self.save(_DI, _R11) + } else { + self.save(_R11) + } + self.Emit("MOVQ", _F_gcWriteBarrier2, _R11) + self.Rjmp("CALL", _R11) + self.Emit("MOVQ", _AX, jit.Ptr(_R11, 0)) + self.Emit("MOVQ", rec, _DI) + self.Emit("MOVQ", _DI, jit.Ptr(_R11, 8)) + if saveDI { + self.load(_DI, _R11) + } else { + self.load(_R11) + } + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", _AX, rec) +} + +func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _AX) + self.Emit("CMPL", jit.Ptr(_AX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.save(_R11) + self.Emit("MOVQ", _F_gcWriteBarrier2, _R11) + self.Rjmp("CALL", _R11) + self.Emit("MOVQ", ptr, jit.Ptr(_R11, 0)) + self.Emit("MOVQ", rec, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_R11, 8)) + self.load(_R11) + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go117.go rename to vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go index 27413739d..3d223e14e 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_regabi_amd64.go @@ -1,5 +1,5 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!go1.21 +//go:build go1.17 && !go1.22 +// +build go1.17,!go1.22 /* * Copyright 2021 ByteDance Inc. @@ -24,7 +24,6 @@ import ( `fmt` `math` `reflect` - `strconv` `unsafe` `github.com/bytedance/sonic/internal/caching` @@ -33,7 +32,6 @@ import ( `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` ) /** Register Allocations @@ -825,8 +823,8 @@ var ( ) var ( - _Vp_max_f32 = new(float64) - _Vp_min_f32 = new(float64) + _Vp_max_f32 = new(float32) + _Vp_min_f32 = new(float32) ) func init() { @@ -835,17 +833,15 @@ func init() { } func (self *_Assembler) range_single_X0() { - self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("CVTSD2SS", _VAR_st_Dv, _X0) // CVTSD2SS _VAR_st_Dv, X0 self.Emit("MOVQ" , _V_max_f32, _CX) // MOVQ _max_f32, CX self.Emit("MOVQ" , jit.Gitab(_I_float32), _ET) // MOVQ ${itab(float32)}, ET self.Emit("MOVQ" , jit.Gtype(_T_float32), _EP) // MOVQ ${type(float32)}, EP - self.Emit("UCOMISD" , jit.Ptr(_CX, 0), _X0) // UCOMISD (CX), X0 + self.Emit("UCOMISS" , jit.Ptr(_CX, 0), _X0) // UCOMISS (CX), X0 self.Sjmp("JA" , _LB_range_error) // JA _range_error self.Emit("MOVQ" , _V_min_f32, _CX) // MOVQ _min_f32, CX - self.Emit("MOVSD" , jit.Ptr(_CX, 0), _X1) // MOVSD (CX), X1 - self.Emit("UCOMISD" , _X0, _X1) // UCOMISD X0, X1 - self.Sjmp("JA" , _LB_range_error) // JA _range_error - self.Emit("CVTSD2SS", _X0, _X0) // CVTSD2SS X0, X0 + self.Emit("UCOMISS" , jit.Ptr(_CX, 0), _X0) // UCOMISS (CX), X0 + self.Sjmp("JB" , _LB_range_error) // JB _range_error } func (self *_Assembler) range_signed_CX(i *rt.GoItab, t *rt.GoType, a int64, b int64) { @@ -1931,62 +1927,3 @@ func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { self.Emit("MOVQ", jit.Imm(int64(i)), _AX) // MOVQ $(i), (SP) self.call_go(_F_println) } - -//go:linkname _runtime_writeBarrier runtime.writeBarrier -var _runtime_writeBarrier uintptr - -//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier -func gcWriteBarrierAX() - -var ( - _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) - - _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) -) - -func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { - self.Emit("MOVQ", _V_writeBarrier, _R9) - self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.call(_F_gcWriteBarrierAX) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", _AX, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - -func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _R9) - self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveAX { - self.Emit("XCHGQ", ptr, _AX) - } else { - self.Emit("MOVQ", ptr, _AX) - } - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.call(_F_gcWriteBarrierAX) - if saveDI { - self.load(_DI) - } - if saveAX { - self.Emit("XCHGQ", ptr, _AX) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_stkabi_amd64.go similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go116.go rename to vendor/github.com/bytedance/sonic/internal/decoder/assembler_stkabi_amd64.go index a2618bb3c..57a38b420 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_stkabi_amd64.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 /* * Copyright 2021 ByteDance Inc. @@ -23,7 +23,6 @@ import ( `fmt` `math` `reflect` - `strconv` `unsafe` `github.com/bytedance/sonic/internal/caching` @@ -32,7 +31,6 @@ import ( `github.com/bytedance/sonic/internal/native/types` `github.com/bytedance/sonic/internal/rt` `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` ) /** Register Allocations @@ -818,8 +816,8 @@ var ( ) var ( - _Vp_max_f32 = new(float64) - _Vp_min_f32 = new(float64) + _Vp_max_f32 = new(float32) + _Vp_min_f32 = new(float32) ) func init() { @@ -828,17 +826,15 @@ func init() { } func (self *_Assembler) range_single() { - self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 + self.Emit("CVTSD2SS", _VAR_st_Dv, _X0) // CVTSD2SS st.Dv, X0 self.Emit("MOVQ" , _V_max_f32, _AX) // MOVQ _max_f32, AX self.Emit("MOVQ" , jit.Gitab(_I_float32), _ET) // MOVQ ${itab(float32)}, ET self.Emit("MOVQ" , jit.Gtype(_T_float32), _EP) // MOVQ ${type(float32)}, EP - self.Emit("UCOMISD" , jit.Ptr(_AX, 0), _X0) // UCOMISD (AX), X0 + self.Emit("UCOMISS" , jit.Ptr(_AX, 0), _X0) // UCOMISS (AX), X0 self.Sjmp("JA" , _LB_range_error) // JA _range_error self.Emit("MOVQ" , _V_min_f32, _AX) // MOVQ _min_f32, AX - self.Emit("MOVSD" , jit.Ptr(_AX, 0), _X1) // MOVSD (AX), X1 - self.Emit("UCOMISD" , _X0, _X1) // UCOMISD X0, X1 - self.Sjmp("JA" , _LB_range_error) // JA _range_error - self.Emit("CVTSD2SS", _X0, _X0) // CVTSD2SS X0, X0 + self.Emit("UCOMISS" , jit.Ptr(_AX, 0), _X0) // UCOMISS (AX), X0 + self.Sjmp("JB" , _LB_range_error) // JB _range_error } func (self *_Assembler) range_signed(i *rt.GoItab, t *rt.GoType, a int64, b int64) { @@ -1951,63 +1947,3 @@ func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { self.Emit("MOVQ", jit.Imm(int64(i)), jit.Ptr(_SP, 0)) // MOVQ $(i), (SP) self.call_go(_F_println) } - -var _runtime_writeBarrier uintptr = rt.GcwbAddr() - -//go:linkname gcWriteBarrierAX runtime.gcWriteBarrier -func gcWriteBarrierAX() - -var ( - _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) - - _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) -) - -func (self *_Assembler) WritePtrAX(i int, rec obj.Addr, saveDI bool) { - self.Emit("MOVQ", _V_writeBarrier, _R10) - self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R10) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", _AX, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - -func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool, saveAX bool) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _R10) - self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveAX { - self.Emit("XCHGQ", ptr, _AX) - } else { - self.Emit("MOVQ", ptr, _AX) - } - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R10) - if saveDI { - self.load(_DI) - } - if saveAX { - self.Emit("XCHGQ", ptr, _AX) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/compiler.go b/vendor/github.com/bytedance/sonic/internal/decoder/compiler.go index 8f3905fca..e9e2b77fc 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/compiler.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/compiler.go @@ -1152,4 +1152,4 @@ func (self *_Compiler) checkIfSkip(p *_Program, vt reflect.Type, c byte) int { p.pin(j) p.int(_OP_add, 1) return s -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/debug.go b/vendor/github.com/bytedance/sonic/internal/decoder/debug.go index 9cf3a6a00..d5537ed9a 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/debug.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/debug.go @@ -67,4 +67,4 @@ func (self *_Assembler) debug_instr(i int, v *_Instr) { } self.force_gc() } -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go b/vendor/github.com/bytedance/sonic/internal/decoder/decoder.go index 19ad71965..8453db861 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_use_int64 = 0 + _F_disable_urc = 2 + _F_disable_unknown = 3 + _F_copy_string = 4 - _F_allow_control = 31 + _F_use_number = types.B_USE_NUMBER + _F_validate_string = types.B_VALIDATE_STRING + _F_allow_control = types.B_ALLOW_CONTROL ) type Options uint64 @@ -252,4 +252,4 @@ func Skip(data []byte) (start int, end int) { ret := native.SkipOne(&s, &p, m, uint64(0)) types.FreeStateMachine(m) return ret, p -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/errors.go b/vendor/github.com/bytedance/sonic/internal/decoder/errors.go index c905fdfb0..4453f5cfe 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/errors.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/errors.go @@ -44,35 +44,12 @@ func (self SyntaxError) Description() string { } func (self SyntaxError) description() string { - i := 16 - p := self.Pos - i - q := self.Pos + i - /* check for empty source */ if self.Src == "" { return fmt.Sprintf("no sources available: %#v", self) } - /* prevent slicing before the beginning */ - if p < 0 { - p, q, i = 0, q - p, i + p - } - - /* prevent slicing beyond the end */ - if n := len(self.Src); q > n { - n = q - n - q = len(self.Src) - - /* move the left bound if possible */ - if p > n { - i += n - p -= n - } - } - - /* left and right length */ - x := clamp_zero(i) - y := clamp_zero(q - p - i - 1) + p, x, q, y := calcBounds(len(self.Src), self.Pos) /* compose the error description */ return fmt.Sprintf( @@ -85,6 +62,39 @@ func (self SyntaxError) description() string { ) } +func calcBounds(size int, pos int) (lbound int, lwidth int, rbound int, rwidth int) { + if pos >= size || pos < 0 { + return 0, 0, size, 0 + } + + i := 16 + lbound = pos - i + rbound = pos + i + + /* prevent slicing before the beginning */ + if lbound < 0 { + lbound, rbound, i = 0, rbound - lbound, i + lbound + } + + /* prevent slicing beyond the end */ + if n := size; rbound > n { + n = rbound - n + rbound = size + + /* move the left bound if possible */ + if lbound > n { + i += n + lbound -= n + } + } + + /* left and right length */ + lwidth = clamp_zero(i) + rwidth = clamp_zero(rbound - lbound - i - 1) + + return +} + func (self SyntaxError) Message() string { if self.Msg == "" { return self.Code.Message() @@ -107,16 +117,19 @@ var stackOverflow = &json.UnsupportedValueError { Value : reflect.ValueOf("..."), } -//go:nosplit func error_wrap(src string, pos int, code types.ParsingError) error { - return SyntaxError { + return *error_wrap_heap(src, pos, code) +} + +//go:noinline +func error_wrap_heap(src string, pos int, code types.ParsingError) *SyntaxError { + return &SyntaxError { Pos : pos, Src : src, Code : code, } } -//go:nosplit func error_type(vt *rt.GoType) error { return &json.UnmarshalTypeError{Type: vt.Pack()} } @@ -158,7 +171,6 @@ func (self MismatchTypeError) Description() string { return fmt.Sprintf("Mismatch type %s with value %s %s", self.Type.String(), swithchJSONType(self.Src, self.Pos), se.description()) } -//go:nosplit func error_mismatch(src string, pos int, vt *rt.GoType) error { return &MismatchTypeError { Pos : pos, @@ -167,12 +179,10 @@ func error_mismatch(src string, pos int, vt *rt.GoType) error { } } -//go:nosplit func error_field(name string) error { return errors.New("json: unknown field " + strconv.Quote(name)) } -//go:nosplit func error_value(value string, vtype reflect.Type) error { return &json.UnmarshalTypeError { Type : vtype, diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go similarity index 95% rename from vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go rename to vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go index df1cd9f5b..337af054c 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64.go @@ -1,5 +1,4 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!go1.21 +// +build go1.17,!go1.22 /* * Copyright 2021 ByteDance Inc. @@ -23,13 +22,11 @@ import ( `encoding/json` `fmt` `reflect` - `strconv` `github.com/bytedance/sonic/internal/jit` `github.com/bytedance/sonic/internal/native` `github.com/bytedance/sonic/internal/native/types` `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` ) /** Crucial Registers: @@ -286,7 +283,7 @@ func (self *_ValueDecoder) compile() { self.Emit("LEAQ", _VAR_ss, _CX) // LEAQ ss, CX self.Emit("MOVQ", _VAR_df, _R8) // MOVQ $df, R8 self.Emit("BTSQ", jit.Imm(_F_allow_control), _R8) // ANDQ $1<<_F_allow_control, R8 - self.callc(_F_value) // CALL value + self.callc(_F_value) // CALL value self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC /* check for errors */ @@ -720,46 +717,6 @@ func (self *_ValueDecoder) compile() { } } -func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { - self.Emit("MOVQ", _V_writeBarrier, _R9) - self.Emit("CMPL", jit.Ptr(_R9, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.call(_F_gcWriteBarrierAX) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", _AX, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - -func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _AX) - self.Emit("CMPL", jit.Ptr(_AX, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, _AX) - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.call(_F_gcWriteBarrierAX) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - /** Generic Decoder **/ var ( diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s rename to vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s index 6c2686de9..1c46928de 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_regabi_amd64_test.s @@ -1,4 +1,4 @@ -// +build go1.17,!go1.21 +// +build go1.17,!go1.22 // // Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64.go similarity index 95% rename from vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go116.go rename to vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64.go index b597043f9..8ce5c2926 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 /* * Copyright 2021 ByteDance Inc. @@ -22,13 +22,11 @@ import ( `encoding/json` `fmt` `reflect` - `strconv` `github.com/bytedance/sonic/internal/jit` `github.com/bytedance/sonic/internal/native` `github.com/bytedance/sonic/internal/native/types` `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` ) /** Crucial Registers: @@ -645,7 +643,8 @@ func (self *_ValueDecoder) compile() { self.Emit("MOVQ", _R8, _VAR_cs_p) self.Emit("MOVQ", _AX, _VAR_cs_n) self.Emit("MOVQ", _DI, _VAR_cs_LR) - self.Emit("MOVQ", _T_byte, jit.Ptr(_SP, 0)) + self.Emit("MOVQ", _T_byte, _R8) + self.Emit("MOVQ", _R8, jit.Ptr(_SP, 0)) self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) self.call_go(_F_makeslice) @@ -722,48 +721,6 @@ func (self *_ValueDecoder) compile() { } } -func (self *_ValueDecoder) WritePtrAX(i int, rec obj.Addr, saveDI bool) { - self.Emit("MOVQ", _V_writeBarrier, _R10) - self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R10) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", _AX, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - -func (self *_ValueDecoder) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr, saveDI bool) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _R10) - self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, _AX) - if saveDI { - self.save(_DI) - } - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R10) - if saveDI { - self.load(_DI) - } - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} - /** Generic Decoder **/ var ( diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64_test.s similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s rename to vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64_test.s index 36cb1f5f3..4e509c2f8 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s +++ b/vendor/github.com/bytedance/sonic/internal/decoder/generic_stkabi_amd64_test.s @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 // // Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/pools.go b/vendor/github.com/bytedance/sonic/internal/decoder/pools.go index 06adc7fa1..bcd14cc64 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 ( @@ -140,4 +140,4 @@ func findOrCompile(vt *rt.GoType) (_Decoder, error) { } else { return nil, err } -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/stream.go b/vendor/github.com/bytedance/sonic/internal/decoder/stream.go index e1e0f73b9..a3716435a 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stream.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stream.go @@ -21,8 +21,9 @@ import ( `io` `sync` - `github.com/bytedance/sonic/option` + `github.com/bytedance/sonic/internal/native` `github.com/bytedance/sonic/internal/native/types` + `github.com/bytedance/sonic/option` ) var ( @@ -71,6 +72,7 @@ func (self *StreamDecoder) Decode(val interface{}) (err error) { var first = true var repeat = true + read_more: for { l := len(buf) @@ -97,11 +99,20 @@ read_more: l := len(buf) if l > 0 { self.Decoder.Reset(string(buf)) + + var x int + if ret := native.SkipOneFast(&self.s, &x); ret < 0 { + if repeat { + goto read_more + } else { + err = SyntaxError{x, self.s, types.ParsingError(-ret), ""} + self.err = err + return + } + } + err = self.Decoder.Decode(val) if err != nil { - if repeat && self.repeatable(err) { - goto read_more - } self.err = err } diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go115.go b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/decoder/stubs_go115.go rename to vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go index 1a0917c3c..c6e133d8c 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go115.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go116.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.20 +// +build go1.16,!go1.20 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go index cde6a1972..73960ea14 100644 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go120.go @@ -82,23 +82,23 @@ func makemap_small() unsafe.Pointer //go:linkname mapassign runtime.mapassign //goland:noinspection GoUnusedParameter -func mapassign(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer +func mapassign(t *rt.GoMapType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer //go:linkname mapassign_fast32 runtime.mapassign_fast32 //goland:noinspection GoUnusedParameter -func mapassign_fast32(t *rt.GoType, h unsafe.Pointer, k uint32) unsafe.Pointer +func mapassign_fast32(t *rt.GoMapType, h unsafe.Pointer, k uint32) unsafe.Pointer //go:linkname mapassign_fast64 runtime.mapassign_fast64 //goland:noinspection GoUnusedParameter -func mapassign_fast64(t *rt.GoType, h unsafe.Pointer, k uint64) unsafe.Pointer +func mapassign_fast64(t *rt.GoMapType, h unsafe.Pointer, k uint64) unsafe.Pointer //go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr //goland:noinspection GoUnusedParameter -func mapassign_fast64ptr(t *rt.GoType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer +func mapassign_fast64ptr(t *rt.GoMapType, h unsafe.Pointer, k unsafe.Pointer) unsafe.Pointer //go:linkname mapassign_faststr runtime.mapassign_faststr //goland:noinspection GoUnusedParameter -func mapassign_faststr(t *rt.GoType, h unsafe.Pointer, s string) unsafe.Pointer +func mapassign_faststr(t *rt.GoMapType, h unsafe.Pointer, s string) unsafe.Pointer //go:nosplit //go:linkname memclrHasPointers runtime.memclrHasPointers @@ -108,4 +108,4 @@ func memclrHasPointers(ptr unsafe.Pointer, n uintptr) //go:noescape //go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers //goland:noinspection GoUnusedParameter -func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) \ No newline at end of file +func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go116.go new file mode 100644 index 000000000..0a99f30ab --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go116.go @@ -0,0 +1,51 @@ +// +build go1.16,!go1.17 + +// Copyright 2023 CloudWeGo Authors +// +// 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 encoder + +import ( + `strconv` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +var ( + _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtr(i int, ptr obj.Addr, rec obj.Addr) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _R10) + self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, _AX) + self.xsave(_DI) + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX + self.Rjmp("CALL", _R10) + self.xload(_DI) + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} + diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go117.go new file mode 100644 index 000000000..5a3cf1a60 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go117.go @@ -0,0 +1,51 @@ +// +build go1.17,!go1.21 + +// Copyright 2023 CloudWeGo Authors +// +// 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 encoder + +import ( + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) +) + +func (self *_Assembler) WritePtr(i int, ptr obj.Addr, rec obj.Addr) { + if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _BX) + self.Emit("CMPL", jit.Ptr(_BX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.xsave(_DI) + self.Emit("MOVQ", ptr, _AX) + self.Emit("LEAQ", rec, _DI) + self.Emit("MOVQ", _F_gcWriteBarrierAX, _BX) // MOVQ ${fn}, AX + self.Rjmp("CALL", _BX) + self.xload(_DI) + self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, rec) + self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go new file mode 100644 index 000000000..2f9445ac4 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/encoder/asm_stubs_amd64_go121.go @@ -0,0 +1,50 @@ +// +build go1.21,!go1.22 + +// Copyright 2023 CloudWeGo Authors +// +// 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 encoder + +import ( + `strconv` + `unsafe` + + `github.com/bytedance/sonic/internal/jit` + `github.com/twitchyliquid64/golang-asm/obj` + `github.com/twitchyliquid64/golang-asm/obj/x86` +) + +var ( + _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) + + _F_gcWriteBarrier2 = jit.Func(gcWriteBarrier2) +) + +func (self *_Assembler) WritePtr(i int, ptr obj.Addr, old obj.Addr) { + if old.Reg == x86.REG_AX || old.Index == x86.REG_AX { + panic("rec contains AX!") + } + self.Emit("MOVQ", _V_writeBarrier, _BX) + self.Emit("CMPL", jit.Ptr(_BX, 0), jit.Imm(0)) + self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.xsave(_SP_q) + self.Emit("MOVQ", _F_gcWriteBarrier2, _BX) // MOVQ ${fn}, AX + self.Rjmp("CALL", _BX) + self.Emit("MOVQ", ptr, jit.Ptr(_SP_q, 0)) + self.Emit("MOVQ", old, _AX) + self.Emit("MOVQ", _AX, jit.Ptr(_SP_q, 8)) + self.xload(_SP_q) + self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") + self.Emit("MOVQ", ptr, old) +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go117.go rename to vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go index 1f1b28073..a89364b14 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_regabi_amd64.go @@ -1,5 +1,5 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!go1.21 +//go:build go1.17 && !go1.22 +// +build go1.17,!go1.22 /* * Copyright 2021 ByteDance Inc. @@ -435,8 +435,8 @@ func (self *_Assembler) save_state() { self.Sjmp("JAE" , _LB_error_too_deep) // JA _error_too_deep self.Emit("MOVQ", _SP_x, jit.Sib(_ST, _CX, 1, 8)) // MOVQ SP.x, 8(ST)(CX) self.Emit("MOVQ", _SP_f, jit.Sib(_ST, _CX, 1, 16)) // MOVQ SP.f, 16(ST)(CX) - self.WriteRecNotAX(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) - self.WriteRecNotAX(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) + self.WritePtr(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) + self.WritePtr(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) self.Emit("MOVQ", _R9, jit.Ptr(_ST, 0)) // MOVQ R9, (ST) } @@ -1175,28 +1175,3 @@ func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { self.Emit("MOVQ", jit.Imm(int64(i)), _AX) // MOVQ $(i), CX self.call_go(_F_println) } - -var ( - _V_writeBarrier = jit.Imm(int64(uintptr(unsafe.Pointer(&_runtime_writeBarrier)))) - - _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) -) - -func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _BX) - self.Emit("CMPL", jit.Ptr(_BX, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.xsave(_DI) - self.Emit("MOVQ", ptr, _AX) - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _BX) // MOVQ ${fn}, AX - self.Rjmp("CALL", _BX) - self.xload(_DI) - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_stkabi_amd64.go similarity index 97% rename from vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go116.go rename to vendor/github.com/bytedance/sonic/internal/encoder/assembler_stkabi_amd64.go index d056259f2..89dafc84e 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_stkabi_amd64.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 /* * Copyright 2021 ByteDance Inc. @@ -421,8 +421,8 @@ func (self *_Assembler) save_state() { self.Sjmp("JAE" , _LB_error_too_deep) // JA _error_too_deep self.Emit("MOVQ", _SP_x, jit.Sib(_ST, _CX, 1, 8)) // MOVQ SP.x, 8(ST)(CX) self.Emit("MOVQ", _SP_f, jit.Sib(_ST, _CX, 1, 16)) // MOVQ SP.f, 16(ST)(CX) - self.WriteRecNotAX(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) - self.WriteRecNotAX(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) + self.WritePtr(0, _SP_p, jit.Sib(_ST, _CX, 1, 24)) // MOVQ SP.p, 24(ST)(CX) + self.WritePtr(1, _SP_q, jit.Sib(_ST, _CX, 1, 32)) // MOVQ SP.q, 32(ST)(CX) self.Emit("MOVQ", _R8, jit.Ptr(_ST, 0)) // MOVQ R8, (ST) } @@ -579,7 +579,8 @@ var ( func (self *_Assembler) more_space() { self.Link(_LB_more_space) - self.Emit("MOVQ", _T_byte, jit.Ptr(_SP, 0)) // MOVQ $_T_byte, (SP) + self.Emit("MOVQ", _T_byte, _AX) // MOVQ $_T_byte, _AX + self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ _AX, (SP) self.Emit("MOVQ", _RP, jit.Ptr(_SP, 8)) // MOVQ RP, 8(SP) self.Emit("MOVQ", _RL, jit.Ptr(_SP, 16)) // MOVQ RL, 16(SP) self.Emit("MOVQ", _RC, jit.Ptr(_SP, 24)) // MOVQ RC, 24(SP) @@ -1172,28 +1173,3 @@ func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { self.Emit("MOVQ", jit.Imm(int64(i)), jit.Ptr(_SP, 0)) // MOVQ $(i), (SP) self.call_go(_F_println) } - -var ( - _V_writeBarrier = jit.Imm(int64(_runtime_writeBarrier)) - - _F_gcWriteBarrierAX = jit.Func(gcWriteBarrierAX) -) - -func (self *_Assembler) WriteRecNotAX(i int, ptr obj.Addr, rec obj.Addr) { - if rec.Reg == x86.REG_AX || rec.Index == x86.REG_AX { - panic("rec contains AX!") - } - self.Emit("MOVQ", _V_writeBarrier, _R10) - self.Emit("CMPL", jit.Ptr(_R10, 0), jit.Imm(0)) - self.Sjmp("JE", "_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, _AX) - self.xsave(_DI) - self.Emit("LEAQ", rec, _DI) - self.Emit("MOVQ", _F_gcWriteBarrierAX, _R10) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R10) - self.xload(_DI) - self.Sjmp("JMP", "_end_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Link("_no_writeBarrier" + strconv.Itoa(i) + "_{n}") - self.Emit("MOVQ", ptr, rec) - self.Link("_end_writeBarrier" + strconv.Itoa(i) + "_{n}") -} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go116.go index 4bc9c15c1..d8d0c45cc 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go116.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go index e1016de32..56a6cbf5e 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go117.go @@ -1,4 +1,4 @@ -// +build go1.17,!go1.21 +// +build go1.17,!go1.22 /* * Copyright 2021 ByteDance Inc. @@ -202,4 +202,4 @@ func (self *_Assembler) print_ptr(i int, ptr obj.Addr, lea bool) { self.Emit("MOVQ", _R10, _BX) self.dcall(_F_printptr) self.dload(_REG_debug...) -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go index 3c46061a4..bd8bae357 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go @@ -40,6 +40,7 @@ const ( bitNoQuoteTextMarshaler bitNoNullSliceOrMap bitValidateString + bitNoValidateJSONMarshaler // used for recursive compile bitPointerValue = 63 @@ -71,6 +72,10 @@ const ( // ValidateString indicates that encoder should validate the input string // before encoding it into JSON. ValidateString Options = 1 << bitValidateString + + // NoValidateJSONMarshaler indicates that the encoder should not validate the output string + // after encoding the JSONMarshaler to JSON. + NoValidateJSONMarshaler Options = 1 << bitNoValidateJSONMarshaler // CompatibleWithStd is used to be compatible with std encoder. CompatibleWithStd Options = SortMapKeys | EscapeHTML | CompactMarshaler @@ -115,6 +120,15 @@ func (self *Encoder) SetValidateString(f bool) { } } +// SetNoValidateJSONMarshaler specifies if option NoValidateJSONMarshaler opens +func (self *Encoder) SetNoValidateJSONMarshaler(f bool) { + if f { + self.Opts |= NoValidateJSONMarshaler + } else { + self.Opts &= ^NoValidateJSONMarshaler + } +} + // SetCompactMarshaler specifies if option CompactMarshaler opens func (self *Encoder) SetCompactMarshaler(f bool) { if f { @@ -292,7 +306,6 @@ func Pretouch(vt reflect.Type, opts ...option.CompileOption) error { cfg := option.DefaultCompileOptions() for _, opt := range opts { opt(&cfg) - break } return pretouchRec(map[reflect.Type]uint8{vt: 0}, cfg) } @@ -325,4 +338,4 @@ func Valid(data []byte) (ok bool, start int) { } return true, ret -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/errors.go b/vendor/github.com/bytedance/sonic/internal/encoder/errors.go index ac6848a5b..6e9d0c783 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/errors.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/errors.go @@ -62,4 +62,4 @@ func goPanic(code int, val unsafe.Pointer) { default: panic("encoder error!") } -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/pools.go b/vendor/github.com/bytedance/sonic/internal/encoder/pools.go index 9892ba11b..a2800ddef 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/pools.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/pools.go @@ -190,4 +190,4 @@ func pretouchRec(vtm map[reflect.Type]uint8, opts option.CompileOptions) error { } opts.RecursiveDepth -= 1 return pretouchRec(next, opts) -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go index 78fb29ff6..0e47987c7 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go @@ -93,8 +93,10 @@ func encodeJsonMarshaler(buf *[]byte, val json.Marshaler, opt Options) error { if opt & CompactMarshaler != 0 { return compact(buf, ret) } - if ok, s := Valid(ret); !ok { - return error_marshaler(ret, s) + if opt & NoValidateJSONMarshaler == 0 { + if ok, s := Valid(ret); !ok { + return error_marshaler(ret, s) + } } *buf = append(*buf, ret...) return nil @@ -165,4 +167,4 @@ func asJson(v unsafe.Pointer) (string, error) { text := assertI2I(_T_json_Marshaler, *(*rt.GoIface)(v)) r, e := (*(*json.Marshaler)(unsafe.Pointer(&text))).MarshalJSON() return rt.Mem2Str(r), e -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stream.go b/vendor/github.com/bytedance/sonic/internal/encoder/stream.go index 8f73a2bf0..b6f3ce5fb 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stream.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stream.go @@ -81,4 +81,4 @@ func (enc *StreamEncoder) Encode(val interface{}) (err error) { free_bytes: freeBytes(out) return err -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go index 40d06f4af..5577c58d7 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go116.go @@ -1,4 +1,4 @@ -// +build go1.15,!go1.17 +// +build go1.16,!go1.17 /* * Copyright 2021 ByteDance Inc. diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go index f1a7d10c7..94a2c0f56 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go120.go @@ -1,4 +1,4 @@ -// +build go1.20 +// +build go1.20,!go1.21 /* * Copyright 2021 ByteDance Inc. @@ -63,4 +63,4 @@ func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) var _runtime_writeBarrier uintptr //go:linkname gcWriteBarrierAX runtime.gcWriteBarrier -func gcWriteBarrierAX() \ No newline at end of file +func gcWriteBarrierAX() diff --git a/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go new file mode 100644 index 000000000..e194fbbf3 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/encoder/stubs_go121.go @@ -0,0 +1,66 @@ +// +build go1.21 + +/* + * 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 encoder + +import ( + `unsafe` + + _ `github.com/chenzhuoyu/base64x` + + `github.com/bytedance/sonic/internal/rt` +) + +//go:linkname _subr__b64encode github.com/chenzhuoyu/base64x._subr__b64encode +var _subr__b64encode uintptr + +//go:noescape +//go:linkname memmove runtime.memmove +//goland:noinspection GoUnusedParameter +func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) + +//go:linkname growslice reflect.growslice +//goland:noinspection GoUnusedParameter +func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice + +//go:linkname assertI2I runtime.assertI2I2 +//goland:noinspection GoUnusedParameter +func assertI2I(inter *rt.GoType, i rt.GoIface) rt.GoIface + +//go:linkname mapiternext runtime.mapiternext +//goland:noinspection GoUnusedParameter +func mapiternext(it *rt.GoMapIterator) + +//go:linkname mapiterinit runtime.mapiterinit +//goland:noinspection GoUnusedParameter +func mapiterinit(t *rt.GoMapType, m *rt.GoMap, it *rt.GoMapIterator) + +//go:linkname isValidNumber encoding/json.isValidNumber +//goland:noinspection GoUnusedParameter +func isValidNumber(s string) bool + +//go:noescape +//go:linkname memclrNoHeapPointers runtime.memclrNoHeapPointers +//goland:noinspection GoUnusedParameter +func memclrNoHeapPointers(ptr unsafe.Pointer, n uintptr) + +//go:linkname _runtime_writeBarrier runtime.writeBarrier +var _runtime_writeBarrier uintptr + +//go:linkname gcWriteBarrier2 runtime.gcWriteBarrier2 +func gcWriteBarrier2() 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 59a3cb349..000000000 --- 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 b0d2d6c65..000000000 --- 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 f01747f93..000000000 --- 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 f1d585d97..000000000 --- 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 c12f8a73c..000000000 --- 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 6446a5f07..000000000 --- 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 4053ee9bb..000000000 --- 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 d6a861068..627ac177c 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 -//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 __f32toa(out *byte, val float32) (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 __lspace(sp unsafe.Pointer, nb int, off int) (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 __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (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 __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (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 __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (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 __value(s unsafe.Pointer, n int, p int, v *types.JsonState, 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 __vstring(s *string, p *int, v *types.JsonState, flags uint64) +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 __vnumber(s *string, p *int, v *types.JsonState) +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 __vsigned(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 __vunsigned(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 __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +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_fast(s *string, p *int) (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_array(s *string, p *int, m *types.StateMachine, flags uint64) (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_object(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_number(s *string, p *int) (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 __validate_one(s *string, p *int, m *types.StateMachine) (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 __get_by_path(s *string, p *int, path *[]interface{}, 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 __validate_utf8(s *string, p *int, 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_fast(s *string) (ret int) \ No newline at end of file +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} + +//go:nosplit +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 86eb36579..000000000 --- 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 1ca7f5753..000000000 --- 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 f20095d3d..6610a2e91 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,666 @@ package avx -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr - -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 +import ( + `github.com/bytedance/sonic/loader` ) const ( - _stack__f32toa = 48 + _entry__f32toa = 31024 + _entry__f64toa = 176 + _entry__format_significand = 35808 + _entry__format_integer = 3424 + _entry__fsm_exec = 18816 + _entry__advance_string = 15056 + _entry__advance_string_default = 37344 + _entry__do_skip_number = 21376 + _entry__get_by_path = 26416 + _entry__skip_one_fast = 22880 + _entry__unescape = 38256 + _entry__unhex16_is = 9632 + _entry__html_escape = 9824 + _entry__i64toa = 3856 + _entry__u64toa = 4128 + _entry__lspace = 16 + _entry__quote = 5552 + _entry__skip_array = 18768 + _entry__skip_number = 22464 + _entry__skip_object = 21008 + _entry__skip_one = 22640 + _entry__unquote = 7296 + _entry__validate_one = 22704 + _entry__validate_utf8 = 29728 + _entry__validate_utf8_fast = 30416 + _entry__value = 13104 + _entry__vnumber = 16368 + _entry__atof_eisel_lemire64 = 11104 + _entry__atof_native = 12496 + _entry__decimal_to_f64 = 11504 + _entry__left_shift = 36288 + _entry__right_shift = 36832 + _entry__vsigned = 18016 + _entry__vstring = 14880 + _entry__vunsigned = 18384 +) + +const ( + _stack__f32toa = 64 _stack__f64toa = 80 - _stack__get_by_path = 304 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 160 + _stack__advance_string = 72 + _stack__advance_string_default = 56 + _stack__do_skip_number = 32 + _stack__get_by_path = 280 + _stack__skip_one_fast = 176 + _stack__unescape = 64 + _stack__unhex16_is = 8 _stack__html_escape = 64 _stack__i64toa = 16 - _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__unquote = 88 - _stack__validate_one = 128 + _stack__lspace = 8 + _stack__quote = 80 + _stack__skip_array = 168 + _stack__skip_number = 88 + _stack__skip_object = 168 + _stack__skip_one = 168 + _stack__unquote = 112 + _stack__validate_one = 168 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 - _stack__value = 328 - _stack__vnumber = 240 + _stack__value = 352 + _stack__vnumber = 264 + _stack__atof_eisel_lemire64 = 40 + _stack__atof_native = 144 + _stack__decimal_to_f64 = 88 + _stack__left_shift = 32 + _stack__right_shift = 16 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 -) - -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 + _stack__vstring = 128 + _stack__vunsigned = 24 ) 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 + _size__f32toa = 3792 + _size__f64toa = 3248 + _size__format_significand = 480 + _size__format_integer = 432 + _size__fsm_exec = 1656 + _size__advance_string = 1264 + _size__advance_string_default = 912 + _size__do_skip_number = 876 + _size__get_by_path = 3312 + _size__skip_one_fast = 3016 + _size__unescape = 704 + _size__unhex16_is = 128 + _size__html_escape = 1280 + _size__i64toa = 272 + _size__u64toa = 1376 + _size__lspace = 112 + _size__quote = 1728 + _size__skip_array = 48 + _size__skip_number = 160 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2336 + _size__validate_one = 48 + _size__validate_utf8 = 688 + _size__validate_utf8_fast = 560 + _size__value = 1268 + _size__vnumber = 1648 + _size__atof_eisel_lemire64 = 400 + _size__atof_native = 608 + _size__decimal_to_f64 = 992 + _size__left_shift = 544 + _size__right_shift = 480 + _size__vsigned = 368 + _size__vstring = 128 + _size__vunsigned = 368 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3734, 64}, + {3738, 48}, + {3739, 40}, + {3741, 32}, + {3743, 24}, + {3745, 16}, + {3747, 8}, + {3751, 0}, + {3781, 64}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3124, 56}, + {3128, 48}, + {3129, 40}, + {3131, 32}, + {3133, 24}, + {3135, 16}, + {3137, 8}, + {3141, 0}, + {3234, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {468, 24}, + {469, 16}, + {471, 8}, + {473, 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}, + {1317, 88}, + {1321, 48}, + {1322, 40}, + {1324, 32}, + {1326, 24}, + {1328, 16}, + {1330, 8}, + {1331, 0}, + {1656, 88}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {529, 72}, + {533, 48}, + {534, 40}, + {536, 32}, + {538, 24}, + {540, 16}, + {542, 8}, + {543, 0}, + {1253, 72}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {381, 56}, + {385, 48}, + {386, 40}, + {388, 32}, + {390, 24}, + {392, 16}, + {394, 8}, + {395, 0}, + {911, 56}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {739, 32}, + {740, 24}, + {742, 16}, + {744, 8}, + {745, 0}, + {876, 32}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3262, 104}, + {3266, 48}, + {3267, 40}, + {3269, 32}, + {3271, 24}, + {3273, 16}, + {3275, 8}, + {3276, 0}, + {3301, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {613, 176}, + {614, 168}, + {616, 160}, + {618, 152}, + {620, 144}, + {622, 136}, + {626, 128}, + {3016, 176}, + } + _pcsp__unescape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {246, 56}, + {250, 48}, + {251, 40}, + {253, 32}, + {255, 24}, + {257, 16}, + {259, 8}, + {260, 0}, + {695, 56}, + } + _pcsp__unhex16_is = [][2]uint32{ + {1, 0}, + {35, 8}, + {36, 0}, + {62, 8}, + {63, 0}, + {97, 8}, + {98, 0}, + {121, 8}, + {123, 0}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1265, 64}, + {1269, 48}, + {1270, 40}, + {1272, 32}, + {1274, 24}, + {1276, 16}, + {1278, 8}, + {1280, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {171, 8}, + {172, 0}, + {207, 8}, + {208, 0}, + {222, 8}, + {223, 0}, + {247, 8}, + {248, 0}, + {253, 8}, + {259, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {13, 0}, + {162, 8}, + {163, 0}, + {175, 8}, + {240, 0}, + {498, 8}, + {499, 0}, + {519, 8}, + {592, 0}, + {850, 8}, + {928, 0}, + {1374, 8}, + {1376, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {85, 8}, + {87, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1669, 80}, + {1673, 48}, + {1674, 40}, + {1676, 32}, + {1678, 24}, + {1680, 16}, + {1682, 8}, + {1683, 0}, + {1718, 80}, + } + _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}, + {12, 40}, + {13, 48}, + {107, 56}, + {111, 48}, + {112, 40}, + {114, 32}, + {116, 24}, + {118, 16}, + {120, 8}, + {121, 0}, + {145, 56}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1614, 104}, + {1618, 48}, + {1619, 40}, + {1621, 32}, + {1623, 24}, + {1625, 16}, + {1627, 8}, + {1628, 0}, + {2329, 104}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {33, 8}, + {39, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {639, 48}, + {643, 40}, + {644, 32}, + {646, 24}, + {648, 16}, + {650, 8}, + {651, 0}, + {682, 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}, + {439, 88}, + {443, 48}, + {444, 40}, + {446, 32}, + {448, 24}, + {450, 16}, + {452, 8}, + {453, 0}, + {1268, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {150, 120}, + {154, 48}, + {155, 40}, + {157, 32}, + {159, 24}, + {161, 16}, + {163, 8}, + {164, 0}, + {1638, 120}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {315, 40}, + {316, 32}, + {318, 24}, + {320, 16}, + {322, 8}, + {323, 0}, + {387, 40}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {596, 56}, + {600, 8}, + {602, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {951, 56}, + {955, 48}, + {956, 40}, + {958, 32}, + {960, 24}, + {962, 16}, + {964, 8}, + {965, 0}, + {977, 56}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {418, 32}, + {419, 24}, + {421, 16}, + {423, 8}, + {424, 0}, + {539, 32}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {452, 16}, + {453, 8}, + {454, 0}, + {462, 16}, + {463, 8}, + {464, 0}, + {472, 16}, + {473, 8}, + {475, 0}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {113, 16}, + {114, 8}, + {115, 0}, + {126, 16}, + {127, 8}, + {128, 0}, + {278, 16}, + {279, 8}, + {280, 0}, + {284, 16}, + {285, 8}, + {286, 0}, + {340, 16}, + {341, 8}, + {342, 0}, + {353, 16}, + {354, 8}, + {356, 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}, + {4, 8}, + {6, 16}, + {74, 24}, + {75, 16}, + {77, 8}, + {78, 0}, + {89, 24}, + {90, 16}, + {92, 8}, + {93, 0}, + {116, 24}, + {117, 16}, + {119, 8}, + {120, 0}, + {281, 24}, + {282, 16}, + {284, 8}, + {285, 0}, + {336, 24}, + {337, 16}, + {339, 8}, + {340, 0}, + {348, 24}, + {349, 16}, + {351, 8}, + {353, 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}, + {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, + {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, + {"_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}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_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 000000000..3f68fad03 --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_text_amd64.go @@ -0,0 +1,14488 @@ +// +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, 0x89, 0xd0, //0x00000014 movq %rdx, %rax + 0x48, 0x39, 0xd6, //0x00000017 cmpq %rdx, %rsi + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x0000001a je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x00000020 leaq (%rdi,%rsi), %r8 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000024 movabsq $4294977024, %rdx + 0x90, 0x90, //0x0000002e .p2align 4, 0x90 + //0x00000030 LBB0_3 + 0x0f, 0xbe, 0x0c, 0x07, //0x00000030 movsbl (%rdi,%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_7 + 0x48, 0x0f, 0xa3, 0xca, //0x0000003d btq %rcx, %rdx + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_7 + 0x48, 0x83, 0xc0, 0x01, //0x00000047 addq $1, %rax + 0x48, 0x39, 0xc6, //0x0000004b cmpq %rax, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000004e jne LBB0_3 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000054 jmp LBB0_6 + //0x00000059 LBB0_1 + 0x48, 0x01, 0xf8, //0x00000059 addq %rdi, %rax + 0x49, 0x89, 0xc0, //0x0000005c movq %rax, %r8 + //0x0000005f LBB0_6 + 0x49, 0x29, 0xf8, //0x0000005f subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000062 movq %r8, %rax + //0x00000065 LBB0_7 + 0x5d, //0x00000065 popq %rbp + 0xc3, //0x00000066 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, //0x00000067 .p2align 5, 0x00 + //0x00000080 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000080 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 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, 0x00 + //0x000000a0 LCPI1_1 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000000a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000000b0 .p2align 4, 0x90 + //0x000000b0 _f64toa + 0x55, //0x000000b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000000b1 movq %rsp, %rbp + 0x41, 0x57, //0x000000b4 pushq %r15 + 0x41, 0x56, //0x000000b6 pushq %r14 + 0x41, 0x55, //0x000000b8 pushq %r13 + 0x41, 0x54, //0x000000ba pushq %r12 + 0x53, //0x000000bc pushq %rbx + 0x50, //0x000000bd pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x000000be vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x000000c3 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000000c6 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x000000ca andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x000000cf cmpl $2047, %eax + 0x0f, 0x84, 0x4e, 0x0c, 0x00, 0x00, //0x000000d4 je LBB1_130 + 0x48, 0x89, 0xfe, //0x000000da movq %rdi, %rsi + 0xc6, 0x07, 0x2d, //0x000000dd movb $45, (%rdi) + 0x49, 0x89, 0xd5, //0x000000e0 movq %rdx, %r13 + 0x49, 0xc1, 0xed, 0x3f, //0x000000e3 shrq $63, %r13 + 0x4e, 0x8d, 0x3c, 0x2f, //0x000000e7 leaq (%rdi,%r13), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000eb leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x000000f3 testq %rcx, %rcx + 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000000f6 je LBB1_6 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000fc movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x00000106 andq %rdi, %rdx + 0x85, 0xc0, //0x00000109 testl %eax, %eax + 0x0f, 0x84, 0x1e, 0x0c, 0x00, 0x00, //0x0000010b je LBB1_131 + 0x48, 0x83, 0xc7, 0x01, //0x00000111 addq $1, %rdi + 0x48, 0x09, 0xd7, //0x00000115 orq %rdx, %rdi + 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x00000118 leal $-1075(%rax), %r9d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x0000011f leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x00000125 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x00000128 ja LBB1_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x0000012e movl $1075, %ecx + 0x29, 0xc1, //0x00000133 subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000135 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x0000013c shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x0000013f notq %rbx + 0x48, 0x85, 0xdf, //0x00000142 testq %rbx, %rdi + 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000145 je LBB1_43 + //0x0000014b LBB1_7 + 0x48, 0x89, 0x75, 0xd0, //0x0000014b movq %rsi, $-48(%rbp) + //0x0000014f LBB1_8 + 0x48, 0x85, 0xd2, //0x0000014f testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x00000152 sete %cl + 0x83, 0xf8, 0x02, //0x00000155 cmpl $2, %eax + 0x0f, 0x93, 0xc0, //0x00000158 setae %al + 0x20, 0xc8, //0x0000015b andb %cl, %al + 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000015d leaq (,%rdi,4), %r8 + 0x0f, 0xb6, 0xc0, //0x00000165 movzbl %al, %eax + 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000168 imull $1262611, %r9d, %ecx + 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000016f leal $-524031(%rcx), %r10d + 0x84, 0xc0, //0x00000176 testb %al, %al + 0x44, 0x0f, 0x44, 0xd1, //0x00000178 cmovel %ecx, %r10d + 0x48, 0x8d, 0x1c, 0xb8, //0x0000017c leaq (%rax,%rdi,4), %rbx + 0x48, 0x83, 0xc3, 0xfe, //0x00000180 addq $-2, %rbx + 0x41, 0xc1, 0xfa, 0x16, //0x00000184 sarl $22, %r10d + 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000188 imull $-1741647, %r10d, %ecx + 0xc1, 0xe9, 0x13, //0x0000018f shrl $19, %ecx + 0x44, 0x01, 0xc9, //0x00000192 addl %r9d, %ecx + 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000195 movl $292, %esi + 0x44, 0x29, 0xd6, //0x0000019a subl %r10d, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000019d shlq $4, %rsi + 0x80, 0xc1, 0x01, //0x000001a1 addb $1, %cl + 0x48, 0xd3, 0xe3, //0x000001a4 shlq %cl, %rbx + 0x4c, 0x8d, 0x1d, 0x12, 0xc3, 0x00, 0x00, //0x000001a7 leaq $49938(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ + 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x000001ae movq $8(%rsi,%r11), %r12 + 0x48, 0x89, 0xd8, //0x000001b3 movq %rbx, %rax + 0x49, 0xf7, 0xe4, //0x000001b6 mulq %r12 + 0x49, 0x89, 0xd1, //0x000001b9 movq %rdx, %r9 + 0x4e, 0x8b, 0x34, 0x1e, //0x000001bc movq (%rsi,%r11), %r14 + 0x48, 0x89, 0xd8, //0x000001c0 movq %rbx, %rax + 0x49, 0xf7, 0xe6, //0x000001c3 mulq %r14 + 0x48, 0x89, 0xd3, //0x000001c6 movq %rdx, %rbx + 0x4c, 0x01, 0xc8, //0x000001c9 addq %r9, %rax + 0x48, 0x83, 0xd3, 0x00, //0x000001cc adcq $0, %rbx + 0x45, 0x31, 0xdb, //0x000001d0 xorl %r11d, %r11d + 0x48, 0x83, 0xf8, 0x02, //0x000001d3 cmpq $2, %rax + 0x41, 0x0f, 0x93, 0xc3, //0x000001d7 setae %r11b + 0x49, 0xd3, 0xe0, //0x000001db shlq %cl, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001de leaq $2(,%rdi,4), %rsi + 0x4c, 0x89, 0xc0, //0x000001e6 movq %r8, %rax + 0x49, 0xf7, 0xe4, //0x000001e9 mulq %r12 + 0x49, 0x89, 0xd1, //0x000001ec movq %rdx, %r9 + 0x49, 0x09, 0xdb, //0x000001ef orq %rbx, %r11 + 0x4c, 0x89, 0xc0, //0x000001f2 movq %r8, %rax + 0x49, 0xf7, 0xe6, //0x000001f5 mulq %r14 + 0x49, 0x89, 0xd0, //0x000001f8 movq %rdx, %r8 + 0x4c, 0x01, 0xc8, //0x000001fb addq %r9, %rax + 0x49, 0x83, 0xd0, 0x00, //0x000001fe adcq $0, %r8 + 0x31, 0xdb, //0x00000202 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x02, //0x00000204 cmpq $2, %rax + 0x0f, 0x93, 0xc3, //0x00000208 setae %bl + 0x48, 0xd3, 0xe6, //0x0000020b shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x0000020e movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x00000211 mulq %r12 + 0x48, 0x89, 0xd1, //0x00000214 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x00000217 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x0000021a mulq %r14 + 0x4c, 0x09, 0xc3, //0x0000021d orq %r8, %rbx + 0x48, 0x01, 0xc8, //0x00000220 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x00000223 adcq $0, %rdx + 0x31, 0xc9, //0x00000227 xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x02, //0x00000229 cmpq $2, %rax + 0x0f, 0x93, 0xc1, //0x0000022d setae %cl + 0x48, 0x09, 0xd1, //0x00000230 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000233 andl $1, %edi + 0x49, 0x01, 0xfb, //0x00000236 addq %rdi, %r11 + 0x48, 0x29, 0xf9, //0x00000239 subq %rdi, %rcx + 0x48, 0x83, 0xfb, 0x28, //0x0000023c cmpq $40, %rbx + 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000240 jb LBB1_10 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000246 movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000250 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000253 mulq %rdx + 0x48, 0x89, 0xd7, //0x00000256 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x00000259 shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000025d leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000265 leaq (%rax,%rax,4), %rdx + 0x49, 0x39, 0xd3, //0x00000269 cmpq %rdx, %r11 + 0x40, 0x0f, 0x97, 0xc6, //0x0000026c seta %sil + 0x48, 0x8d, 0x14, 0x80, //0x00000270 leaq (%rax,%rax,4), %rdx + 0x48, 0x83, 0xc2, 0x28, //0x00000274 addq $40, %rdx + 0x31, 0xc0, //0x00000278 xorl %eax, %eax + 0x48, 0x39, 0xca, //0x0000027a cmpq %rcx, %rdx + 0x0f, 0x96, 0xc2, //0x0000027d setbe %dl + 0x40, 0x38, 0xd6, //0x00000280 cmpb %dl, %sil + 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000283 je LBB1_22 + //0x00000289 LBB1_10 + 0x4c, 0x89, 0xc6, //0x00000289 movq %r8, %rsi + 0x48, 0xc1, 0xee, 0x02, //0x0000028c shrq $2, %rsi + 0x4c, 0x89, 0xc2, //0x00000290 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000293 andq $-4, %rdx + 0x49, 0x39, 0xd3, //0x00000297 cmpq %rdx, %r11 + 0x41, 0x0f, 0x97, 0xc1, //0x0000029a seta %r9b + 0x48, 0x8d, 0x7a, 0x04, //0x0000029e leaq $4(%rdx), %rdi + 0x48, 0x39, 0xcf, //0x000002a2 cmpq %rcx, %rdi + 0x0f, 0x96, 0xc0, //0x000002a5 setbe %al + 0x44, 0x30, 0xc8, //0x000002a8 xorb %r9b, %al + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x000002ab je LBB1_14 + 0x48, 0x83, 0xca, 0x02, //0x000002b1 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x000002b5 movl $1, %edi + 0x48, 0x39, 0xd3, //0x000002ba cmpq %rdx, %rbx + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x000002bd ja LBB1_13 + 0x0f, 0x94, 0xc0, //0x000002c3 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x000002c6 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x000002ca andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x000002cd movzbl %r8b, %edi + //0x000002d1 LBB1_13 + 0x48, 0x01, 0xf7, //0x000002d1 addq %rsi, %rdi + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000002d4 movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000002de leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x000002e6 cmpq %rax, %rdi + 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000002e9 jbe LBB1_23 + //0x000002ef LBB1_15 + 0x48, 0x89, 0xf8, //0x000002ef movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000002f2 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000002f6 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000002fb cmpq $48828125, %rax + 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x00000301 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x00000307 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000030a shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x0000030e movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000313 cmpq $244140625, %rax + 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x00000319 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x0000031f movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000322 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x00000326 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x0000032b cmpq $1220703125, %rax + 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x00000331 jb LBB1_31 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000337 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000033c movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000346 cmpq %rax, %rdi + 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000349 jb LBB1_31 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000034f movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000354 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000035e cmpq %rax, %rdi + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000361 jb LBB1_31 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000367 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000371 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000374 movl $17, %edx + //0x00000379 LBB1_21 + 0x83, 0xda, 0x00, //0x00000379 sbbl $0, %edx + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000037c jmp LBB1_31 + //0x00000381 LBB1_6 + 0x41, 0xc6, 0x07, 0x30, //0x00000381 movb $48, (%r15) + 0x41, 0x29, 0xf7, //0x00000385 subl %esi, %r15d + 0x41, 0x83, 0xc7, 0x01, //0x00000388 addl $1, %r15d + 0x44, 0x89, 0xfb, //0x0000038c movl %r15d, %ebx + 0xe9, 0x4e, 0x09, 0x00, 0x00, //0x0000038f jmp LBB1_128 + //0x00000394 LBB1_14 + 0x48, 0x39, 0xf9, //0x00000394 cmpq %rdi, %rcx + 0x48, 0x83, 0xde, 0xff, //0x00000397 sbbq $-1, %rsi + 0x48, 0x89, 0xf7, //0x0000039b movq %rsi, %rdi + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000039e movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000003a8 leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x000003b0 cmpq %rax, %rdi + 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x000003b3 ja LBB1_15 + //0x000003b9 LBB1_23 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000003b9 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000003be cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000003c2 jb LBB1_31 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000003c8 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000003cd cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000003d1 jb LBB1_31 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000003d7 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000003dc cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000003e3 jb LBB1_31 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000003e9 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000003ee cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000003f5 jb LBB1_31 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000003fb movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x00000400 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x00000407 jb LBB1_31 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x0000040d movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x00000412 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000419 jb LBB1_31 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x0000041f movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x00000424 cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000042b jb LBB1_31 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000431 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00000436 cmpq $100000000, %rdi + 0x0f, 0x83, 0xd4, 0x08, 0x00, 0x00, //0x0000043d jae LBB1_129 + //0x00000443 LBB1_31 + 0x46, 0x8d, 0x34, 0x12, //0x00000443 leal (%rdx,%r10), %r14d + 0x42, 0x8d, 0x04, 0x12, //0x00000447 leal (%rdx,%r10), %eax + 0x83, 0xc0, 0x05, //0x0000044b addl $5, %eax + 0x83, 0xf8, 0x1b, //0x0000044e cmpl $27, %eax + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000451 jb LBB1_39 + 0x4d, 0x8d, 0x67, 0x01, //0x00000457 leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x0000045b movq %r12, %rsi + 0xe8, 0x7d, 0x87, 0x00, 0x00, //0x0000045e callq _format_significand + 0x48, 0x89, 0xc3, //0x00000463 movq %rax, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000466 movq $-48(%rbp), %rdi + 0x48, 0x29, 0xf8, //0x0000046a subq %rdi, %rax + 0x4c, 0x29, 0xe8, //0x0000046d subq %r13, %rax + //0x00000470 .p2align 4, 0x90 + //0x00000470 LBB1_33 + 0x48, 0x83, 0xc0, 0xff, //0x00000470 addq $-1, %rax + 0x80, 0x7b, 0xff, 0x30, //0x00000474 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000478 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000047c je LBB1_33 + 0x41, 0x8a, 0x4f, 0x01, //0x00000482 movb $1(%r15), %cl + 0x41, 0x88, 0x0f, //0x00000486 movb %cl, (%r15) + 0x48, 0x83, 0xf8, 0x02, //0x00000489 cmpq $2, %rax + 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000048d jl LBB1_36 + 0x48, 0x83, 0xc3, 0x01, //0x00000493 addq $1, %rbx + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000497 movb $46, (%r12) + //0x0000049c LBB1_36 + 0xc6, 0x03, 0x65, //0x0000049c movb $101, (%rbx) + 0x45, 0x85, 0xf6, //0x0000049f testl %r14d, %r14d + 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x000004a2 jle LBB1_51 + 0x41, 0x83, 0xc6, 0xff, //0x000004a8 addl $-1, %r14d + 0xc6, 0x43, 0x01, 0x2b, //0x000004ac movb $43, $1(%rbx) + 0x44, 0x89, 0xf0, //0x000004b0 movl %r14d, %eax + 0x83, 0xf8, 0x64, //0x000004b3 cmpl $100, %eax + 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x000004b6 jl LBB1_52 + //0x000004bc LBB1_38 + 0x89, 0xc1, //0x000004bc movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000004be movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x000004c3 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x000004c7 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x000004cb leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x000004ce leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004d1 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x16, 0xbf, 0x00, 0x00, //0x000004d3 leaq $48918(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004da movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004de movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004e2 orb $48, %al + 0x88, 0x43, 0x04, //0x000004e4 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004e7 addq $5, %rbx + 0xe9, 0xf0, 0x07, 0x00, 0x00, //0x000004eb jmp LBB1_127 + //0x000004f0 LBB1_39 + 0x45, 0x85, 0xd2, //0x000004f0 testl %r10d, %r10d + 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000004f3 js LBB1_54 + 0x4d, 0x63, 0xf6, //0x000004f9 movslq %r14d, %r14 + 0x4b, 0x8d, 0x1c, 0x37, //0x000004fc leaq (%r15,%r14), %rbx + 0x4c, 0x89, 0xfe, //0x00000500 movq %r15, %rsi + 0xe8, 0x58, 0x08, 0x00, 0x00, //0x00000503 callq _format_integer + 0x48, 0x39, 0xd8, //0x00000508 cmpq %rbx, %rax + 0x0f, 0x83, 0xcb, 0x07, 0x00, 0x00, //0x0000050b jae LBB1_104 + 0x4d, 0x01, 0xf7, //0x00000511 addq %r14, %r15 + 0x4d, 0x89, 0xf8, //0x00000514 movq %r15, %r8 + 0x49, 0x29, 0xc0, //0x00000517 subq %rax, %r8 + 0x49, 0x83, 0xf8, 0x10, //0x0000051a cmpq $16, %r8 + 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x0000051e jae LBB1_70 + //0x00000524 LBB1_42 + 0x48, 0x89, 0xc1, //0x00000524 movq %rax, %rcx + 0xe9, 0xaf, 0x03, 0x00, 0x00, //0x00000527 jmp LBB1_86 + //0x0000052c LBB1_22 + 0x88, 0xd0, //0x0000052c movb %dl, %al + 0x48, 0x01, 0xc7, //0x0000052e addq %rax, %rdi + 0x41, 0x83, 0xc2, 0x01, //0x00000531 addl $1, %r10d + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000535 movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x0000053f leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x00000547 cmpq %rax, %rdi + 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000054a ja LBB1_15 + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000550 jmp LBB1_23 + //0x00000555 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000555 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000558 movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000562 addq $1410065535, %rax + 0x49, 0x89, 0xf6, //0x00000568 movq %rsi, %r14 + 0x48, 0x39, 0xc7, //0x0000056b cmpq %rax, %rdi + 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000056e jbe LBB1_61 + 0x48, 0x89, 0xf8, //0x00000574 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000577 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000057b movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000580 cmpq $48828125, %rax + 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000586 jb LBB1_69 + 0x48, 0x89, 0xf8, //0x0000058c movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000058f shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000593 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000598 cmpq $244140625, %rax + 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000059e jb LBB1_69 + 0x48, 0x89, 0xf8, //0x000005a4 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000005a7 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000005ab movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000005b0 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x000005b6 jb LBB1_69 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000005bc movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000005c1 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005cb cmpq %rax, %rdi + 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x000005ce jb LBB1_69 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005d4 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005d9 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005e3 cmpq %rax, %rdi + 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000005e6 jb LBB1_69 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005ec movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005f6 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005f9 movl $17, %edx + //0x000005fe LBB1_50 + 0x83, 0xda, 0x00, //0x000005fe sbbl $0, %edx + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00000601 jmp LBB1_69 + //0x00000606 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x00000606 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000060a movl $1, %eax + 0x44, 0x29, 0xf0, //0x0000060f subl %r14d, %eax + 0x83, 0xf8, 0x64, //0x00000612 cmpl $100, %eax + 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x00000615 jge LBB1_38 + //0x0000061b LBB1_52 + 0x83, 0xf8, 0x0a, //0x0000061b cmpl $10, %eax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x0000061e jl LBB1_60 + 0x89, 0xc0, //0x00000624 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xc3, 0xbd, 0x00, 0x00, //0x00000626 leaq $48579(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x0000062d movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00000631 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000635 addq $4, %rbx + 0xe9, 0xa2, 0x06, 0x00, 0x00, //0x00000639 jmp LBB1_127 + //0x0000063e LBB1_54 + 0x45, 0x85, 0xf6, //0x0000063e testl %r14d, %r14d + 0x0f, 0x8f, 0xda, 0x03, 0x00, 0x00, //0x00000641 jg LBB1_97 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000647 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000064d addq $2, %r15 + 0x45, 0x85, 0xf6, //0x00000651 testl %r14d, %r14d + 0x0f, 0x89, 0xc7, 0x03, 0x00, 0x00, //0x00000654 jns LBB1_97 + 0x41, 0x89, 0xd0, //0x0000065a movl %edx, %r8d + 0x41, 0xf7, 0xd0, //0x0000065d notl %r8d + 0x45, 0x29, 0xd0, //0x00000660 subl %r10d, %r8d + 0x31, 0xc0, //0x00000663 xorl %eax, %eax + 0x41, 0x83, 0xf8, 0x7f, //0x00000665 cmpl $127, %r8d + 0x0f, 0x82, 0x94, 0x03, 0x00, 0x00, //0x00000669 jb LBB1_95 + 0x49, 0x83, 0xc0, 0x01, //0x0000066f addq $1, %r8 + 0x4c, 0x89, 0xc0, //0x00000673 movq %r8, %rax + 0x4c, 0x21, 0xe0, //0x00000676 andq %r12, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000679 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xce, //0x0000067d movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00000680 shrq $7, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00000684 addq $1, %rsi + 0x41, 0x89, 0xf1, //0x00000688 movl %esi, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000068b andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000068f cmpq $384, %rcx + 0x0f, 0x83, 0x61, 0x02, 0x00, 0x00, //0x00000696 jae LBB1_89 + 0x31, 0xc9, //0x0000069c xorl %ecx, %ecx + 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000069e jmp LBB1_91 + //0x000006a3 LBB1_60 + 0x04, 0x30, //0x000006a3 addb $48, %al + 0x88, 0x43, 0x02, //0x000006a5 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x000006a8 addq $3, %rbx + 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x000006ac jmp LBB1_127 + //0x000006b1 LBB1_61 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000006b1 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x000006b6 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x000006ba jb LBB1_69 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000006c0 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x000006c5 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000006c9 jb LBB1_69 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000006cf movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006d4 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006db jb LBB1_69 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006e1 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006e6 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006ed jb LBB1_69 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006f3 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006f8 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006ff jb LBB1_69 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x00000705 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x0000070a cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00000711 jb LBB1_69 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x00000717 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x0000071c cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00000723 jb LBB1_69 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000729 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x0000072e cmpq $100000000, %rdi + 0x0f, 0x83, 0x06, 0x06, 0x00, 0x00, //0x00000735 jae LBB1_132 + //0x0000073b LBB1_69 + 0x4c, 0x89, 0xfe, //0x0000073b movq %r15, %rsi + 0xe8, 0x1d, 0x06, 0x00, 0x00, //0x0000073e callq _format_integer + 0x48, 0x89, 0xc3, //0x00000743 movq %rax, %rbx + 0x44, 0x29, 0xf3, //0x00000746 subl %r14d, %ebx + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000749 jmp LBB1_128 + //0x0000074e LBB1_70 + 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x0000074e cmpq $128, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000755 jae LBB1_72 + 0x31, 0xd2, //0x0000075b xorl %edx, %edx + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x0000075d jmp LBB1_82 + //0x00000762 LBB1_72 + 0x4c, 0x89, 0xc2, //0x00000762 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0x80, //0x00000765 andq $-128, %rdx + 0x48, 0x8d, 0x4a, 0x80, //0x00000769 leaq $-128(%rdx), %rcx + 0x48, 0x89, 0xcf, //0x0000076d movq %rcx, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x00000770 shrq $7, %rdi + 0x48, 0x83, 0xc7, 0x01, //0x00000774 addq $1, %rdi + 0x89, 0xfe, //0x00000778 movl %edi, %esi + 0x83, 0xe6, 0x03, //0x0000077a andl $3, %esi + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000077d cmpq $384, %rcx + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000784 jae LBB1_74 + 0x31, 0xc9, //0x0000078a xorl %ecx, %ecx + 0xe9, 0xb3, 0x00, 0x00, 0x00, //0x0000078c jmp LBB1_76 + //0x00000791 LBB1_74 + 0x48, 0x83, 0xe7, 0xfc, //0x00000791 andq $-4, %rdi + 0x48, 0xf7, 0xdf, //0x00000795 negq %rdi + 0x31, 0xc9, //0x00000798 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xde, 0xf8, 0xff, 0xff, //0x0000079a vmovdqa $-1826(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000007a2 .p2align 4, 0x90 + //0x000007b0 LBB1_75 + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x000007b0 vmovdqu %ymm0, (%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x20, //0x000007b5 vmovdqu %ymm0, $32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x40, //0x000007bb vmovdqu %ymm0, $64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x60, //0x000007c1 vmovdqu %ymm0, $96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x000007c7 vmovdqu %ymm0, $128(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x000007d0 vmovdqu %ymm0, $160(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x000007d9 vmovdqu %ymm0, $192(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000007e2 vmovdqu %ymm0, $224(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0x01, 0x00, 0x00, //0x000007eb vmovdqu %ymm0, $256(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0x01, 0x00, 0x00, //0x000007f4 vmovdqu %ymm0, $288(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0x01, 0x00, 0x00, //0x000007fd vmovdqu %ymm0, $320(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0x01, 0x00, 0x00, //0x00000806 vmovdqu %ymm0, $352(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x01, 0x00, 0x00, //0x0000080f vmovdqu %ymm0, $384(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x01, 0x00, 0x00, //0x00000818 vmovdqu %ymm0, $416(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x01, 0x00, 0x00, //0x00000821 vmovdqu %ymm0, $448(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x01, 0x00, 0x00, //0x0000082a vmovdqu %ymm0, $480(%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000833 addq $512, %rcx + 0x48, 0x83, 0xc7, 0x04, //0x0000083a addq $4, %rdi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x0000083e jne LBB1_75 + //0x00000844 LBB1_76 + 0x48, 0x85, 0xf6, //0x00000844 testq %rsi, %rsi + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000847 je LBB1_79 + 0x48, 0x01, 0xc1, //0x0000084d addq %rax, %rcx + 0x48, 0x83, 0xc1, 0x60, //0x00000850 addq $96, %rcx + 0x48, 0xc1, 0xe6, 0x07, //0x00000854 shlq $7, %rsi + 0x31, 0xff, //0x00000858 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x1e, 0xf8, 0xff, 0xff, //0x0000085a vmovdqa $-2018(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 + //0x00000870 LBB1_78 + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xa0, //0x00000870 vmovdqu %ymm0, $-96(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xc0, //0x00000876 vmovdqu %ymm0, $-64(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xe0, //0x0000087c vmovdqu %ymm0, $-32(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x04, 0x39, //0x00000882 vmovdqu %ymm0, (%rcx,%rdi) + 0x48, 0x83, 0xef, 0x80, //0x00000887 subq $-128, %rdi + 0x48, 0x39, 0xfe, //0x0000088b cmpq %rdi, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000088e jne LBB1_78 + //0x00000894 LBB1_79 + 0x49, 0x39, 0xd0, //0x00000894 cmpq %rdx, %r8 + 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00000897 je LBB1_104 + 0x41, 0xf6, 0xc0, 0x70, //0x0000089d testb $112, %r8b + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x000008a1 je LBB1_88 + //0x000008a7 LBB1_82 + 0x4c, 0x89, 0xc6, //0x000008a7 movq %r8, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x000008aa andq $-16, %rsi + 0x48, 0x89, 0xc1, //0x000008ae movq %rax, %rcx + 0x48, 0x01, 0xf1, //0x000008b1 addq %rsi, %rcx + 0xc5, 0xf9, 0x6f, 0x05, 0xe4, 0xf7, 0xff, 0xff, //0x000008b4 vmovdqa $-2076(%rip), %xmm0 /* LCPI1_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, //0x000008bc .p2align 4, 0x90 + //0x000008c0 LBB1_83 + 0xc5, 0xfa, 0x7f, 0x04, 0x10, //0x000008c0 vmovdqu %xmm0, (%rax,%rdx) + 0x48, 0x83, 0xc2, 0x10, //0x000008c5 addq $16, %rdx + 0x48, 0x39, 0xd6, //0x000008c9 cmpq %rdx, %rsi + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000008cc jne LBB1_83 + 0x49, 0x39, 0xf0, //0x000008d2 cmpq %rsi, %r8 + 0x0f, 0x84, 0x01, 0x04, 0x00, 0x00, //0x000008d5 je LBB1_104 + //0x000008db LBB1_86 + 0x48, 0x8b, 0x7d, 0xd0, //0x000008db movq $-48(%rbp), %rdi + 0x90, //0x000008df .p2align 4, 0x90 + //0x000008e0 LBB1_87 + 0xc6, 0x01, 0x30, //0x000008e0 movb $48, (%rcx) + 0x48, 0x83, 0xc1, 0x01, //0x000008e3 addq $1, %rcx + 0x4c, 0x39, 0xf9, //0x000008e7 cmpq %r15, %rcx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000008ea jne LBB1_87 + 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x000008f0 jmp LBB1_127 + //0x000008f5 LBB1_88 + 0x48, 0x01, 0xd0, //0x000008f5 addq %rdx, %rax + 0xe9, 0x27, 0xfc, 0xff, 0xff, //0x000008f8 jmp LBB1_42 + //0x000008fd LBB1_89 + 0x48, 0x8b, 0x4d, 0xd0, //0x000008fd movq $-48(%rbp), %rcx + 0x4a, 0x8d, 0x1c, 0x29, //0x00000901 leaq (%rcx,%r13), %rbx + 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x00000905 addq $482, %rbx + 0x48, 0x83, 0xe6, 0xfc, //0x0000090c andq $-4, %rsi + 0x48, 0xf7, 0xde, //0x00000910 negq %rsi + 0x31, 0xc9, //0x00000913 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x63, 0xf7, 0xff, 0xff, //0x00000915 vmovdqa $-2205(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x0000091d LBB1_90 + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xfe, 0xff, 0xff, //0x0000091d vmovdqu %ymm0, $-480(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xfe, 0xff, 0xff, //0x00000926 vmovdqu %ymm0, $-448(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xfe, 0xff, 0xff, //0x0000092f vmovdqu %ymm0, $-416(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x80, 0xfe, 0xff, 0xff, //0x00000938 vmovdqu %ymm0, $-384(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xa0, 0xfe, 0xff, 0xff, //0x00000941 vmovdqu %ymm0, $-352(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xc0, 0xfe, 0xff, 0xff, //0x0000094a vmovdqu %ymm0, $-320(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xe0, 0xfe, 0xff, 0xff, //0x00000953 vmovdqu %ymm0, $-288(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x00, 0xff, 0xff, 0xff, //0x0000095c vmovdqu %ymm0, $-256(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x00000965 vmovdqu %ymm0, $-224(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x0000096e vmovdqu %ymm0, $-192(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x00000977 vmovdqu %ymm0, $-160(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0x80, //0x00000980 vmovdqu %ymm0, $-128(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xa0, //0x00000986 vmovdqu %ymm0, $-96(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xc0, //0x0000098c vmovdqu %ymm0, $-64(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xe0, //0x00000992 vmovdqu %ymm0, $-32(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x0b, //0x00000998 vmovdqu %ymm0, (%rbx,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000099d addq $512, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x000009a4 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x000009a8 jne LBB1_90 + //0x000009ae LBB1_91 + 0x4d, 0x85, 0xc9, //0x000009ae testq %r9, %r9 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x000009b1 je LBB1_94 + 0x4c, 0x01, 0xe9, //0x000009b7 addq %r13, %rcx + 0x48, 0x8b, 0x75, 0xd0, //0x000009ba movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf1, //0x000009be addq %rsi, %rcx + 0x48, 0x83, 0xc1, 0x62, //0x000009c1 addq $98, %rcx + 0x49, 0xc1, 0xe1, 0x07, //0x000009c5 shlq $7, %r9 + 0x31, 0xf6, //0x000009c9 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0xad, 0xf6, 0xff, 0xff, //0x000009cb vmovdqa $-2387(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000009d3 LBB1_93 + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xa0, //0x000009d3 vmovdqu %ymm0, $-96(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xc0, //0x000009d9 vmovdqu %ymm0, $-64(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xe0, //0x000009df vmovdqu %ymm0, $-32(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x04, 0x31, //0x000009e5 vmovdqu %ymm0, (%rcx,%rsi) + 0x48, 0x83, 0xee, 0x80, //0x000009ea subq $-128, %rsi + 0x49, 0x39, 0xf1, //0x000009ee cmpq %rsi, %r9 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000009f1 jne LBB1_93 + //0x000009f7 LBB1_94 + 0x49, 0x01, 0xc7, //0x000009f7 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x000009fa cmpq %rax, %r8 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x000009fd je LBB1_97 + //0x00000a03 LBB1_95 + 0x44, 0x01, 0xf0, //0x00000a03 addl %r14d, %eax + 0xf7, 0xd8, //0x00000a06 negl %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000a08 .p2align 4, 0x90 + //0x00000a10 LBB1_96 + 0x41, 0xc6, 0x07, 0x30, //0x00000a10 movb $48, (%r15) + 0x49, 0x83, 0xc7, 0x01, //0x00000a14 addq $1, %r15 + 0x83, 0xc0, 0xff, //0x00000a18 addl $-1, %eax + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00000a1b jne LBB1_96 + //0x00000a21 LBB1_97 + 0x4c, 0x89, 0xfe, //0x00000a21 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x00000a24 vzeroupper + 0xe8, 0xb4, 0x81, 0x00, 0x00, //0x00000a27 callq _format_significand + 0x89, 0xc2, //0x00000a2c movl %eax, %edx + 0x44, 0x28, 0xfa, //0x00000a2e subb %r15b, %dl + 0x44, 0x28, 0xf2, //0x00000a31 subb %r14b, %dl + 0x80, 0xc2, 0x01, //0x00000a34 addb $1, %dl + 0x41, 0x89, 0xc2, //0x00000a37 movl %eax, %r10d + 0x45, 0x29, 0xf2, //0x00000a3a subl %r14d, %r10d + 0x45, 0x29, 0xfa, //0x00000a3d subl %r15d, %r10d + 0x41, 0x83, 0xc2, 0x01, //0x00000a40 addl $1, %r10d + 0x47, 0x8d, 0x04, 0x3e, //0x00000a44 leal (%r14,%r15), %r8d + 0x41, 0x89, 0xc1, //0x00000a48 movl %eax, %r9d + 0x41, 0xf7, 0xd1, //0x00000a4b notl %r9d + 0x45, 0x01, 0xc1, //0x00000a4e addl %r8d, %r9d + 0x41, 0x29, 0xc0, //0x00000a51 subl %eax, %r8d + 0x41, 0x83, 0xc0, 0xfe, //0x00000a54 addl $-2, %r8d + 0x31, 0xc9, //0x00000a58 xorl %ecx, %ecx + 0x44, 0x89, 0xc7, //0x00000a5a movl %r8d, %edi + 0x48, 0x89, 0xc3, //0x00000a5d movq %rax, %rbx + //0x00000a60 .p2align 4, 0x90 + //0x00000a60 LBB1_98 + 0x48, 0x83, 0xc3, 0xff, //0x00000a60 addq $-1, %rbx + 0x80, 0xc2, 0x03, //0x00000a64 addb $3, %dl + 0x83, 0xc7, 0x01, //0x00000a67 addl $1, %edi + 0x80, 0x7c, 0x08, 0xff, 0x30, //0x00000a6a cmpb $48, $-1(%rax,%rcx) + 0x48, 0x8d, 0x49, 0xff, //0x00000a6f leaq $-1(%rcx), %rcx + 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000a73 je LBB1_98 + 0x48, 0x8d, 0x1c, 0x08, //0x00000a79 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000a7d addq $1, %rbx + 0x45, 0x85, 0xf6, //0x00000a81 testl %r14d, %r14d + 0x0f, 0x8e, 0x52, 0x02, 0x00, 0x00, //0x00000a84 jle LBB1_104 + 0x89, 0xc6, //0x00000a8a movl %eax, %esi + 0x44, 0x29, 0xfe, //0x00000a8c subl %r15d, %esi + 0x01, 0xce, //0x00000a8f addl %ecx, %esi + 0x83, 0xc6, 0x01, //0x00000a91 addl $1, %esi + 0x41, 0x39, 0xf6, //0x00000a94 cmpl %esi, %r14d + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000a97 jge LBB1_105 + 0x45, 0x89, 0xd1, //0x00000a9d movl %r10d, %r9d + 0x49, 0x8d, 0x34, 0x09, //0x00000aa0 leaq (%r9,%rcx), %rsi + 0x85, 0xf6, //0x00000aa4 testl %esi, %esi + 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000aa6 jle LBB1_116 + 0x41, 0x89, 0xf0, //0x00000aac movl %esi, %r8d + 0x49, 0x8d, 0x58, 0xff, //0x00000aaf leaq $-1(%r8), %rbx + 0x48, 0x83, 0xfb, 0x03, //0x00000ab3 cmpq $3, %rbx + 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000ab7 jae LBB1_110 + 0x31, 0xdb, //0x00000abd xorl %ebx, %ebx + 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000abf jmp LBB1_113 + //0x00000ac4 LBB1_105 + 0x44, 0x89, 0xca, //0x00000ac4 movl %r9d, %edx + 0x48, 0x29, 0xca, //0x00000ac7 subq %rcx, %rdx + 0x85, 0xd2, //0x00000aca testl %edx, %edx + 0x0f, 0x8e, 0x0a, 0x02, 0x00, 0x00, //0x00000acc jle LBB1_104 + 0x45, 0x89, 0xc3, //0x00000ad2 movl %r8d, %r11d + 0x4d, 0x89, 0xd8, //0x00000ad5 movq %r11, %r8 + 0x49, 0x29, 0xc8, //0x00000ad8 subq %rcx, %r8 + 0x31, 0xf6, //0x00000adb xorl %esi, %esi + 0x41, 0x83, 0xf8, 0x7f, //0x00000add cmpl $127, %r8d + 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00000ae1 jb LBB1_125 + 0x49, 0x29, 0xcb, //0x00000ae7 subq %rcx, %r11 + 0x45, 0x89, 0xc0, //0x00000aea movl %r8d, %r8d + 0x49, 0x83, 0xc0, 0x01, //0x00000aed addq $1, %r8 + 0x4d, 0x21, 0xc4, //0x00000af1 andq %r8, %r12 + 0x41, 0x89, 0xf9, //0x00000af4 movl %edi, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x00000af7 addq $1, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x00000afb andq $-128, %r9 + 0x49, 0x8d, 0x74, 0x24, 0x80, //0x00000aff leaq $-128(%r12), %rsi + 0x49, 0x89, 0xf2, //0x00000b04 movq %rsi, %r10 + 0x49, 0xc1, 0xea, 0x07, //0x00000b07 shrq $7, %r10 + 0x49, 0x83, 0xc2, 0x01, //0x00000b0b addq $1, %r10 + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000b0f cmpq $384, %rsi + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000b16 jae LBB1_117 + 0x31, 0xff, //0x00000b1c xorl %edi, %edi + 0xe9, 0x40, 0x01, 0x00, 0x00, //0x00000b1e jmp LBB1_119 + //0x00000b23 LBB1_110 + 0x49, 0x01, 0xc9, //0x00000b23 addq %rcx, %r9 + 0x41, 0x83, 0xe1, 0xfc, //0x00000b26 andl $-4, %r9d + 0x49, 0xf7, 0xd9, //0x00000b2a negq %r9 + 0x31, 0xdb, //0x00000b2d xorl %ebx, %ebx + 0x90, //0x00000b2f .p2align 4, 0x90 + //0x00000b30 LBB1_111 + 0x48, 0x8d, 0x34, 0x18, //0x00000b30 leaq (%rax,%rbx), %rsi + 0x8b, 0x7c, 0x31, 0xfd, //0x00000b34 movl $-3(%rcx,%rsi), %edi + 0x89, 0x7c, 0x31, 0xfe, //0x00000b38 movl %edi, $-2(%rcx,%rsi) + 0x48, 0x83, 0xc3, 0xfc, //0x00000b3c addq $-4, %rbx + 0x49, 0x39, 0xd9, //0x00000b40 cmpq %rbx, %r9 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b43 jne LBB1_111 + 0x48, 0xf7, 0xdb, //0x00000b49 negq %rbx + //0x00000b4c LBB1_113 + 0x41, 0xf6, 0xc0, 0x03, //0x00000b4c testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000b50 je LBB1_116 + 0x44, 0x0f, 0xb6, 0xc2, //0x00000b56 movzbl %dl, %r8d + 0x41, 0x83, 0xe0, 0x03, //0x00000b5a andl $3, %r8d + 0x49, 0xf7, 0xd8, //0x00000b5e negq %r8 + 0x48, 0x89, 0xc6, //0x00000b61 movq %rax, %rsi + 0x48, 0x29, 0xde, //0x00000b64 subq %rbx, %rsi + 0x31, 0xff, //0x00000b67 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000b69 .p2align 4, 0x90 + //0x00000b70 LBB1_115 + 0x48, 0x8d, 0x1c, 0x3e, //0x00000b70 leaq (%rsi,%rdi), %rbx + 0x0f, 0xb6, 0x14, 0x19, //0x00000b74 movzbl (%rcx,%rbx), %edx + 0x88, 0x54, 0x19, 0x01, //0x00000b78 movb %dl, $1(%rcx,%rbx) + 0x48, 0x83, 0xc7, 0xff, //0x00000b7c addq $-1, %rdi + 0x49, 0x39, 0xf8, //0x00000b80 cmpq %rdi, %r8 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b83 jne LBB1_115 + //0x00000b89 LBB1_116 + 0x49, 0x63, 0xd6, //0x00000b89 movslq %r14d, %rdx + 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000b8c movb $46, (%r15,%rdx) + 0x48, 0x8d, 0x1c, 0x08, //0x00000b91 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x02, //0x00000b95 addq $2, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000b99 movq $-48(%rbp), %rdi + 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x00000b9d jmp LBB1_127 + //0x00000ba2 LBB1_117 + 0x44, 0x89, 0xdb, //0x00000ba2 movl %r11d, %ebx + 0x48, 0x83, 0xc3, 0x01, //0x00000ba5 addq $1, %rbx + 0x48, 0x83, 0xe3, 0x80, //0x00000ba9 andq $-128, %rbx + 0x48, 0x83, 0xc3, 0x80, //0x00000bad addq $-128, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000bb1 shrq $7, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000bb5 addq $1, %rbx + 0x48, 0x83, 0xe3, 0xfc, //0x00000bb9 andq $-4, %rbx + 0x48, 0xf7, 0xdb, //0x00000bbd negq %rbx + 0x31, 0xff, //0x00000bc0 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0xb6, 0xf4, 0xff, 0xff, //0x00000bc2 vmovdqa $-2890(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000bca LBB1_118 + 0x48, 0x8d, 0x34, 0x38, //0x00000bca leaq (%rax,%rdi), %rsi + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x01, //0x00000bce vmovdqu %ymm0, $1(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x21, //0x00000bd4 vmovdqu %ymm0, $33(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x41, //0x00000bda vmovdqu %ymm0, $65(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x61, //0x00000be0 vmovdqu %ymm0, $97(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000be6 vmovdqu %ymm0, $129(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000bef vmovdqu %ymm0, $161(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000bf8 vmovdqu %ymm0, $193(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000c01 vmovdqu %ymm0, $225(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x01, 0x01, 0x00, 0x00, //0x00000c0a vmovdqu %ymm0, $257(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x21, 0x01, 0x00, 0x00, //0x00000c13 vmovdqu %ymm0, $289(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x41, 0x01, 0x00, 0x00, //0x00000c1c vmovdqu %ymm0, $321(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x61, 0x01, 0x00, 0x00, //0x00000c25 vmovdqu %ymm0, $353(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x01, 0x00, 0x00, //0x00000c2e vmovdqu %ymm0, $385(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x01, 0x00, 0x00, //0x00000c37 vmovdqu %ymm0, $417(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x01, 0x00, 0x00, //0x00000c40 vmovdqu %ymm0, $449(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x01, 0x00, 0x00, //0x00000c49 vmovdqu %ymm0, $481(%rcx,%rsi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000c52 addq $512, %rdi + 0x48, 0x83, 0xc3, 0x04, //0x00000c59 addq $4, %rbx + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00000c5d jne LBB1_118 + //0x00000c63 LBB1_119 + 0x49, 0x01, 0xc1, //0x00000c63 addq %rax, %r9 + 0x41, 0xf6, 0xc2, 0x03, //0x00000c66 testb $3, %r10b + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00000c6a je LBB1_122 + 0x41, 0x83, 0xc3, 0x01, //0x00000c70 addl $1, %r11d + 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00000c74 andl $384, %r11d + 0x41, 0x83, 0xc3, 0x80, //0x00000c7b addl $-128, %r11d + 0x41, 0xc1, 0xeb, 0x07, //0x00000c7f shrl $7, %r11d + 0x41, 0x80, 0xc3, 0x01, //0x00000c83 addb $1, %r11b + 0x41, 0x0f, 0xb6, 0xf3, //0x00000c87 movzbl %r11b, %esi + 0x83, 0xe6, 0x03, //0x00000c8b andl $3, %esi + 0x48, 0xc1, 0xe6, 0x07, //0x00000c8e shlq $7, %rsi + 0x48, 0x01, 0xf8, //0x00000c92 addq %rdi, %rax + 0x48, 0x83, 0xc0, 0x61, //0x00000c95 addq $97, %rax + 0x31, 0xff, //0x00000c99 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0xdd, 0xf3, 0xff, 0xff, //0x00000c9b vmovdqa $-3107(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000ca3 LBB1_121 + 0x48, 0x8d, 0x1c, 0x38, //0x00000ca3 leaq (%rax,%rdi), %rbx + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000ca7 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x00000cad vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000cb3 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000cb9 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x83, 0xef, 0x80, //0x00000cbe subq $-128, %rdi + 0x48, 0x39, 0xfe, //0x00000cc2 cmpq %rdi, %rsi + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00000cc5 jne LBB1_121 + //0x00000ccb LBB1_122 + 0x4a, 0x8d, 0x1c, 0x09, //0x00000ccb leaq (%rcx,%r9), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000ccf addq $1, %rbx + 0x4d, 0x39, 0xe0, //0x00000cd3 cmpq %r12, %r8 + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00000cd6 jne LBB1_124 + //0x00000cdc LBB1_104 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000cdc movq $-48(%rbp), %rdi + //0x00000ce0 LBB1_127 + 0x29, 0xfb, //0x00000ce0 subl %edi, %ebx + //0x00000ce2 LBB1_128 + 0x89, 0xd8, //0x00000ce2 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000ce4 addq $8, %rsp + 0x5b, //0x00000ce8 popq %rbx + 0x41, 0x5c, //0x00000ce9 popq %r12 + 0x41, 0x5d, //0x00000ceb popq %r13 + 0x41, 0x5e, //0x00000ced popq %r14 + 0x41, 0x5f, //0x00000cef popq %r15 + 0x5d, //0x00000cf1 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000cf2 vzeroupper + 0xc3, //0x00000cf5 retq + //0x00000cf6 LBB1_124 + 0x44, 0x89, 0xe6, //0x00000cf6 movl %r12d, %esi + //0x00000cf9 LBB1_125 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000cf9 movq $-48(%rbp), %rdi + 0x90, 0x90, 0x90, //0x00000cfd .p2align 4, 0x90 + //0x00000d00 LBB1_126 + 0xc6, 0x03, 0x30, //0x00000d00 movb $48, (%rbx) + 0x48, 0x83, 0xc3, 0x01, //0x00000d03 addq $1, %rbx + 0x83, 0xc6, 0x01, //0x00000d07 addl $1, %esi + 0x39, 0xd6, //0x00000d0a cmpl %edx, %esi + 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000d0c jl LBB1_126 + 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x00000d12 jmp LBB1_127 + //0x00000d17 LBB1_129 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000d17 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000d1e movl $10, %edx + 0xe9, 0x51, 0xf6, 0xff, 0xff, //0x00000d23 jmp LBB1_21 + //0x00000d28 LBB1_130 + 0x31, 0xdb, //0x00000d28 xorl %ebx, %ebx + 0xe9, 0xb3, 0xff, 0xff, 0xff, //0x00000d2a jmp LBB1_128 + //0x00000d2f LBB1_131 + 0x48, 0x89, 0x75, 0xd0, //0x00000d2f movq %rsi, $-48(%rbp) + 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000d33 movl $-1074, %r9d + 0x48, 0x89, 0xd7, //0x00000d39 movq %rdx, %rdi + 0xe9, 0x0e, 0xf4, 0xff, 0xff, //0x00000d3c jmp LBB1_8 + //0x00000d41 LBB1_132 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000d41 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000d48 movl $10, %edx + 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x00000d4d jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000d52 .p2align 4, 0x90 + //0x00000d60 _format_integer + 0x55, //0x00000d60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000d61 movq %rsp, %rbp + 0x53, //0x00000d64 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000d65 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000d68 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000d6b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000d6e shrq $32, %rax + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000d72 jne LBB2_2 + 0x4d, 0x89, 0xc3, //0x00000d78 movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d7b cmpl $10000, %edi + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000d81 jae LBB2_5 + //0x00000d87 LBB2_4 + 0x89, 0xfa, //0x00000d87 movl %edi, %edx + 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000d89 jmp LBB2_7 + //0x00000d8e LBB2_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000d8e movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000d98 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000d9b mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000d9e shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000da2 imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000da8 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000daa movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000db0 movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000db3 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000db7 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000dbb imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000dc1 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000dc3 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000dc6 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000dca shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000dce imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000dd4 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000dd6 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000dd9 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000ddc imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000de3 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000de7 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000deb subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000ded movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000df1 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000df4 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000df7 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000dfd shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000e00 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000e03 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000e05 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0xe0, 0xb5, 0x00, 0x00, //0x00000e09 leaq $46560(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000e10 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000e15 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000e1a movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000e1f movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000e24 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000e29 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000e2e leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000e32 movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000e36 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000e3b movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e3e cmpl $10000, %edi + 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000e44 jb LBB2_4 + //0x00000e4a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000e4a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0x99, 0xb5, 0x00, 0x00, //0x00000e50 leaq $46489(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e57 .p2align 4, 0x90 + //0x00000e60 LBB2_6 + 0x89, 0xfa, //0x00000e60 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000e62 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000e66 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000e6a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000e70 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000e72 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000e79 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000e7d imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000e80 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000e82 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000e87 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000e8c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000e91 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000e96 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000e9a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000ea0 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000ea2 ja LBB2_6 + //0x00000ea8 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000ea8 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000eab jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000eb1 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000eb4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000eb7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ebd shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000ec0 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000ec3 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000ec5 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x21, 0xb5, 0x00, 0x00, //0x00000ec8 leaq $46369(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000ecf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000ed3 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000ed8 addq $-2, %r11 + 0x89, 0xc2, //0x00000edc movl %eax, %edx + //0x00000ede LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000ede cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000ee1 jb LBB2_11 + 0x89, 0xd0, //0x00000ee7 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x00, 0xb5, 0x00, 0x00, //0x00000ee9 leaq $46336(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000ef0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000ef4 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000ef9 movq %r8, %rax + 0x5b, //0x00000efc popq %rbx + 0x5d, //0x00000efd popq %rbp + 0xc3, //0x00000efe retq + //0x00000eff LBB2_11 + 0x80, 0xc2, 0x30, //0x00000eff addb $48, %dl + 0x88, 0x16, //0x00000f02 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000f04 movq %r8, %rax + 0x5b, //0x00000f07 popq %rbx + 0x5d, //0x00000f08 popq %rbp + 0xc3, //0x00000f09 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f0a .p2align 4, 0x90 + //0x00000f10 _i64toa + 0x55, //0x00000f10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000f11 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000f14 testq %rsi, %rsi + 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000f17 js LBB3_12 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000f1d cmpq $9999, %rsi + 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000f24 ja LBB3_9 + 0x0f, 0xb7, 0xc6, //0x00000f2a movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000f2d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f30 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f36 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000f39 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000f3d imull $100, %eax, %eax + 0x89, 0xf1, //0x00000f40 movl %esi, %ecx + 0x29, 0xc1, //0x00000f42 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x00000f44 movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x00000f47 addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000f4a cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000f50 jb LBB3_4 + 0x48, 0x8d, 0x05, 0x93, 0xb4, 0x00, 0x00, //0x00000f56 leaq $46227(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x00000f5d movb (%rdx,%rax), %al + 0x88, 0x07, //0x00000f60 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000f62 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000f67 jmp LBB3_5 + //0x00000f6c LBB3_4 + 0x31, 0xc0, //0x00000f6c xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x00000f6e cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000f71 jb LBB3_6 + //0x00000f77 LBB3_5 + 0x0f, 0xb7, 0xd2, //0x00000f77 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000f7a orq $1, %rdx + 0x48, 0x8d, 0x35, 0x6b, 0xb4, 0x00, 0x00, //0x00000f7e leaq $46187(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000f85 movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00000f88 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00000f8a addl $1, %eax + 0x88, 0x14, 0x37, //0x00000f8d movb %dl, (%rdi,%rsi) + //0x00000f90 LBB3_7 + 0x48, 0x8d, 0x15, 0x59, 0xb4, 0x00, 0x00, //0x00000f90 leaq $46169(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x00000f97 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00000f9a movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00000f9c addl $1, %eax + 0x88, 0x14, 0x37, //0x00000f9f movb %dl, (%rdi,%rsi) + //0x00000fa2 LBB3_8 + 0x0f, 0xb7, 0xc9, //0x00000fa2 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x00000fa5 orq $1, %rcx + 0x48, 0x8d, 0x15, 0x40, 0xb4, 0x00, 0x00, //0x00000fa9 leaq $46144(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00000fb0 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x00000fb3 movl %eax, %edx + 0x83, 0xc0, 0x01, //0x00000fb5 addl $1, %eax + 0x88, 0x0c, 0x17, //0x00000fb8 movb %cl, (%rdi,%rdx) + 0x5d, //0x00000fbb popq %rbp + 0xc3, //0x00000fbc retq + //0x00000fbd LBB3_6 + 0x31, 0xc0, //0x00000fbd xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x00000fbf cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000fc2 jae LBB3_7 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000fc8 jmp LBB3_8 + //0x00000fcd LBB3_12 + 0xc6, 0x07, 0x2d, //0x00000fcd movb $45, (%rdi) + 0x48, 0x83, 0xc7, 0x01, //0x00000fd0 addq $1, %rdi + 0x48, 0xf7, 0xde, //0x00000fd4 negq %rsi + 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00000fd7 callq _u64toa + 0x83, 0xc0, 0x01, //0x00000fdc addl $1, %eax + 0x5d, //0x00000fdf popq %rbp + 0xc3, //0x00000fe0 retq + //0x00000fe1 LBB3_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000fe1 cmpq $99999999, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000fe8 ja LBB3_10 + 0x5d, //0x00000fee popq %rbp + 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00000fef jmp _u32toa_medium + //0x00000ff4 LBB3_10 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000ff4 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000ffe cmpq %rax, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00001001 ja LBB3_11 + 0x5d, //0x00001007 popq %rbp + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x00001008 jmp _u64toa_large_sse2 + //0x0000100d LBB3_11 + 0x5d, //0x0000100d popq %rbp + 0xe9, 0xad, 0x03, 0x00, 0x00, //0x0000100e jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001013 .p2align 4, 0x90 + //0x00001020 _u64toa + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00001020 cmpq $9999, %rsi + 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00001027 ja LBB4_8 + 0x55, //0x0000102d pushq %rbp + 0x48, 0x89, 0xe5, //0x0000102e movq %rsp, %rbp + 0x0f, 0xb7, 0xc6, //0x00001031 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00001034 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001037 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000103d shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00001040 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00001044 imull $100, %eax, %eax + 0x89, 0xf1, //0x00001047 movl %esi, %ecx + 0x29, 0xc1, //0x00001049 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x0000104b movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x0000104e addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00001051 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001057 jb LBB4_3 + 0x48, 0x8d, 0x05, 0x8c, 0xb3, 0x00, 0x00, //0x0000105d leaq $45964(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x00001064 movb (%rdx,%rax), %al + 0x88, 0x07, //0x00001067 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001069 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000106e jmp LBB4_4 + //0x00001073 LBB4_3 + 0x31, 0xc0, //0x00001073 xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x00001075 cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001078 jb LBB4_5 + //0x0000107e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x0000107e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00001081 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x64, 0xb3, 0x00, 0x00, //0x00001085 leaq $45924(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x0000108c movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x0000108f movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001091 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001094 movb %dl, (%rdi,%rsi) + //0x00001097 LBB4_6 + 0x48, 0x8d, 0x15, 0x52, 0xb3, 0x00, 0x00, //0x00001097 leaq $45906(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x0000109e movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x000010a1 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x000010a3 addl $1, %eax + 0x88, 0x14, 0x37, //0x000010a6 movb %dl, (%rdi,%rsi) + //0x000010a9 LBB4_7 + 0x0f, 0xb7, 0xc9, //0x000010a9 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x000010ac orq $1, %rcx + 0x48, 0x8d, 0x15, 0x39, 0xb3, 0x00, 0x00, //0x000010b0 leaq $45881(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x000010b7 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x000010ba movl %eax, %edx + 0x83, 0xc0, 0x01, //0x000010bc addl $1, %eax + 0x88, 0x0c, 0x17, //0x000010bf movb %cl, (%rdi,%rdx) + 0x5d, //0x000010c2 popq %rbp + 0xc3, //0x000010c3 retq + //0x000010c4 LBB4_5 + 0x31, 0xc0, //0x000010c4 xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x000010c6 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x000010c9 jae LBB4_6 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x000010cf jmp LBB4_7 + //0x000010d4 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000010d4 cmpq $99999999, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000010db ja LBB4_9 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000010e1 jmp _u32toa_medium + //0x000010e6 LBB4_9 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010e6 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x000010f0 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000010f3 ja LBB4_10 + 0xe9, 0x72, 0x01, 0x00, 0x00, //0x000010f9 jmp _u64toa_large_sse2 + //0x000010fe LBB4_10 + 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000010fe jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001103 .p2align 4, 0x90 + //0x00001110 _u32toa_medium + 0x55, //0x00001110 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001111 movq %rsp, %rbp + 0x89, 0xf2, //0x00001114 movl %esi, %edx + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00001116 movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xca, //0x0000111b imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000111f shrq $45, %rcx + 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x00001123 imull $10000, %ecx, %r8d + 0x89, 0xf0, //0x0000112a movl %esi, %eax + 0x44, 0x29, 0xc0, //0x0000112c subl %r8d, %eax + 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x0000112f imulq $1125899907, %rdx, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x00001136 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x0000113a andl $-2, %r10d + 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x0000113e imulq $1374389535, %rcx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00001145 shrq $37, %rdx + 0x6b, 0xd2, 0x64, //0x00001149 imull $100, %edx, %edx + 0x29, 0xd1, //0x0000114c subl %edx, %ecx + 0x48, 0x01, 0xc9, //0x0000114e addq %rcx, %rcx + 0x0f, 0xb7, 0xd0, //0x00001151 movzwl %ax, %edx + 0xc1, 0xea, 0x02, //0x00001154 shrl $2, %edx + 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x00001157 imull $5243, %edx, %edx + 0xc1, 0xea, 0x11, //0x0000115d shrl $17, %edx + 0x4c, 0x8d, 0x04, 0x12, //0x00001160 leaq (%rdx,%rdx), %r8 + 0x6b, 0xd2, 0x64, //0x00001164 imull $100, %edx, %edx + 0x29, 0xd0, //0x00001167 subl %edx, %eax + 0x44, 0x0f, 0xb7, 0xc8, //0x00001169 movzwl %ax, %r9d + 0x4d, 0x01, 0xc9, //0x0000116d addq %r9, %r9 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00001170 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00001176 jb LBB5_2 + 0x48, 0x8d, 0x05, 0x6d, 0xb2, 0x00, 0x00, //0x0000117c leaq $45677(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00001183 movb (%r10,%rax), %al + 0x88, 0x07, //0x00001187 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001189 movl $1, %eax + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000118e jmp LBB5_3 + //0x00001193 LBB5_2 + 0x31, 0xc0, //0x00001193 xorl %eax, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001195 cmpl $1000000, %esi + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000119b jb LBB5_4 + //0x000011a1 LBB5_3 + 0x44, 0x89, 0xd2, //0x000011a1 movl %r10d, %edx + 0x48, 0x83, 0xca, 0x01, //0x000011a4 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x41, 0xb2, 0x00, 0x00, //0x000011a8 leaq $45633(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x000011af movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x000011b2 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x000011b4 addl $1, %eax + 0x88, 0x14, 0x37, //0x000011b7 movb %dl, (%rdi,%rsi) + //0x000011ba LBB5_5 + 0x48, 0x8d, 0x15, 0x2f, 0xb2, 0x00, 0x00, //0x000011ba leaq $45615(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x000011c1 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x000011c4 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x000011c6 addl $1, %eax + 0x88, 0x14, 0x37, //0x000011c9 movb %dl, (%rdi,%rsi) + //0x000011cc LBB5_6 + 0x89, 0xc9, //0x000011cc movl %ecx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x000011ce orq $1, %rcx + 0x48, 0x8d, 0x15, 0x17, 0xb2, 0x00, 0x00, //0x000011d2 leaq $45591(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x000011d9 movb (%rcx,%rdx), %cl + 0x89, 0xc6, //0x000011dc movl %eax, %esi + 0x88, 0x0c, 0x37, //0x000011de movb %cl, (%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x10, //0x000011e1 movb (%r8,%rdx), %cl + 0x88, 0x4c, 0x37, 0x01, //0x000011e5 movb %cl, $1(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc8, //0x000011e9 movzwl %r8w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x000011ed orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x000011f1 movb (%rcx,%rdx), %cl + 0x88, 0x4c, 0x37, 0x02, //0x000011f4 movb %cl, $2(%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x11, //0x000011f8 movb (%r9,%rdx), %cl + 0x88, 0x4c, 0x37, 0x03, //0x000011fc movb %cl, $3(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc9, //0x00001200 movzwl %r9w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x00001204 orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x00001208 movb (%rcx,%rdx), %cl + 0x83, 0xc0, 0x05, //0x0000120b addl $5, %eax + 0x88, 0x4c, 0x37, 0x04, //0x0000120e movb %cl, $4(%rdi,%rsi) + 0x5d, //0x00001212 popq %rbp + 0xc3, //0x00001213 retq + //0x00001214 LBB5_4 + 0x31, 0xc0, //0x00001214 xorl %eax, %eax + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00001216 cmpl $100000, %esi + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x0000121c jae LBB5_5 + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00001222 jmp LBB5_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001227 .p2align 4, 0x00 + //0x00001230 LCPI6_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001230 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001238 .quad 3518437209 + //0x00001240 LCPI6_3 + 0x0a, 0x00, //0x00001240 .word 10 + 0x0a, 0x00, //0x00001242 .word 10 + 0x0a, 0x00, //0x00001244 .word 10 + 0x0a, 0x00, //0x00001246 .word 10 + 0x0a, 0x00, //0x00001248 .word 10 + 0x0a, 0x00, //0x0000124a .word 10 + 0x0a, 0x00, //0x0000124c .word 10 + 0x0a, 0x00, //0x0000124e .word 10 + //0x00001250 LCPI6_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001250 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00001260 .p2align 3, 0x00 + //0x00001260 LCPI6_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001260 .quad -9223315738079846203 + //0x00001268 LCPI6_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001268 .quad -9223336852348469120 + //0x00001270 .p2align 4, 0x90 + //0x00001270 _u64toa_large_sse2 + 0x55, //0x00001270 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001271 movq %rsp, %rbp + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001274 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000127e movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001281 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001284 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001288 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000128e subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001290 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0x94, 0xff, 0xff, 0xff, //0x00001294 vmovdqa $-108(%rip), %xmm1 /* LCPI6_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000129c vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000012a0 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000012a5 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000012aa vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000012af vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000012b3 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000012b7 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000012bb vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000012c0 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000012c5 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0x8e, 0xff, 0xff, 0xff, //0x000012ca vmovddup $-114(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000012d2 vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0x8a, 0xff, 0xff, 0xff, //0x000012d6 vmovddup $-118(%rip), %xmm4 /* LCPI6_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000012de vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x56, 0xff, 0xff, 0xff, //0x000012e2 vmovdqa $-170(%rip), %xmm5 /* LCPI6_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000012ea vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000012ee vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000012f3 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000012f7 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000012fb vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000012ff vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001304 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x00001308 vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x0000130c vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001310 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001315 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000131a vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x0000131f vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001323 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001327 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000132b vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00001330 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001334 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x10, 0xff, 0xff, 0xff, //0x00001338 vpaddb $-240(%rip), %xmm0, %xmm1 /* LCPI6_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x00001340 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00001344 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00001348 vpmovmskb %xmm0, %eax + 0xf7, 0xd0, //0x0000134c notl %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x0000134e orl $32768, %eax + 0x0f, 0xbc, 0xc8, //0x00001353 bsfl %eax, %ecx + 0xb8, 0x10, 0x00, 0x00, 0x00, //0x00001356 movl $16, %eax + 0x29, 0xc8, //0x0000135b subl %ecx, %eax + 0x48, 0xc1, 0xe1, 0x04, //0x0000135d shlq $4, %rcx + 0x48, 0x8d, 0x15, 0xe8, 0xd7, 0x00, 0x00, //0x00001361 leaq $55272(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x11, //0x00001368 vpshufb (%rcx,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x0000136e vmovdqu %xmm0, (%rdi) + 0x5d, //0x00001372 popq %rbp + 0xc3, //0x00001373 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001374 .p2align 4, 0x00 + //0x00001380 LCPI7_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001380 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001388 .quad 3518437209 + //0x00001390 LCPI7_3 + 0x0a, 0x00, //0x00001390 .word 10 + 0x0a, 0x00, //0x00001392 .word 10 + 0x0a, 0x00, //0x00001394 .word 10 + 0x0a, 0x00, //0x00001396 .word 10 + 0x0a, 0x00, //0x00001398 .word 10 + 0x0a, 0x00, //0x0000139a .word 10 + 0x0a, 0x00, //0x0000139c .word 10 + 0x0a, 0x00, //0x0000139e .word 10 + //0x000013a0 LCPI7_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000013a0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000013b0 .p2align 3, 0x00 + //0x000013b0 LCPI7_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x000013b0 .quad -9223315738079846203 + //0x000013b8 LCPI7_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x000013b8 .quad -9223336852348469120 + //0x000013c0 .p2align 4, 0x90 + //0x000013c0 _u64toa_xlarge_sse2 + 0x55, //0x000013c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000013c1 movq %rsp, %rbp + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x000013c4 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x000013ce movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x000013d1 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x000013d4 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000013d8 movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x000013e2 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x000013e6 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x000013e9 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000013ec ja LBB7_2 + 0x80, 0xc2, 0x30, //0x000013f2 addb $48, %dl + 0x88, 0x17, //0x000013f5 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000013f7 movl $1, %ecx + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000013fc jmp LBB7_7 + //0x00001401 LBB7_2 + 0x83, 0xfa, 0x63, //0x00001401 cmpl $99, %edx + 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x00001404 ja LBB7_4 + 0x89, 0xd0, //0x0000140a movl %edx, %eax + 0x48, 0x8d, 0x0d, 0xdd, 0xaf, 0x00, 0x00, //0x0000140c leaq $45021(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001413 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x00001417 movw %ax, (%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000141a movl $2, %ecx + 0xe9, 0x82, 0x00, 0x00, 0x00, //0x0000141f jmp LBB7_7 + //0x00001424 LBB7_4 + 0x89, 0xd0, //0x00001424 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x00001426 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00001429 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x0000142f shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x00001432 cmpl $999, %edx + 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00001438 ja LBB7_6 + 0x83, 0xc0, 0x30, //0x0000143e addl $48, %eax + 0x88, 0x07, //0x00001441 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x00001443 movzwl %dx, %eax + 0x89, 0xc1, //0x00001446 movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x00001448 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x0000144b imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001451 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x00001454 imull $100, %ecx, %ecx + 0x29, 0xc8, //0x00001457 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001459 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x8d, 0xaf, 0x00, 0x00, //0x0000145c leaq $44941(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001463 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x47, 0x01, //0x00001467 movw %ax, $1(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000146b movl $3, %ecx + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001470 jmp LBB7_7 + //0x00001475 LBB7_6 + 0x6b, 0xc8, 0x64, //0x00001475 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001478 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x0000147a movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x6c, 0xaf, 0x00, 0x00, //0x0000147d leaq $44908(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001484 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x00001488 movw %ax, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000148b movzwl %dx, %eax + 0x8a, 0x14, 0x41, //0x0000148e movb (%rcx,%rax,2), %dl + 0x48, 0x01, 0xc0, //0x00001491 addq %rax, %rax + 0x88, 0x57, 0x02, //0x00001494 movb %dl, $2(%rdi) + 0x0f, 0xb7, 0xc0, //0x00001497 movzwl %ax, %eax + 0x8a, 0x44, 0x08, 0x01, //0x0000149a movb $1(%rax,%rcx), %al + 0x88, 0x47, 0x03, //0x0000149e movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x000014a1 movl $4, %ecx + //0x000014a6 LBB7_7 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000014a6 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x000014b0 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x000014b3 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x000014b6 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x000014ba vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xba, 0xfe, 0xff, 0xff, //0x000014be vmovdqa $-326(%rip), %xmm1 /* LCPI7_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x000014c6 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x000014ca vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x000014cf movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x000014d4 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x000014d9 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x000014dd vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000014e1 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000014e5 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000014ea vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000014ef vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x15, 0xb4, 0xfe, 0xff, 0xff, //0x000014f4 vmovddup $-332(%rip), %xmm2 /* LCPI7_1+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x000014fc vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x12, 0x25, 0xb0, 0xfe, 0xff, 0xff, //0x00001500 vmovddup $-336(%rip), %xmm4 /* LCPI7_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x00001508 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x7c, 0xfe, 0xff, 0xff, //0x0000150c vmovdqa $-388(%rip), %xmm5 /* LCPI7_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x00001514 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x00001518 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x0000151d vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001521 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x00001527 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x00001529 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x0000152d vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x00001531 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x00001536 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x0000153a vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x0000153e vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001542 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001547 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000154c vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00001551 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001555 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x00001559 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000155d vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00001562 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001566 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x2e, 0xfe, 0xff, 0xff, //0x0000156a vpaddb $-466(%rip), %xmm0, %xmm0 /* LCPI7_4+0(%rip) */ + 0x89, 0xc8, //0x00001572 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x00001574 vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00001579 orl $16, %ecx + 0x89, 0xc8, //0x0000157c movl %ecx, %eax + 0x5d, //0x0000157e popq %rbp + 0xc3, //0x0000157f retq + //0x00001580 .p2align 4, 0x00 + //0x00001580 LCPI8_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001580 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00001590 LCPI8_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001590 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000015a0 LCPI8_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000015a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000015b0 .p2align 4, 0x90 + //0x000015b0 _quote + 0x55, //0x000015b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000015b1 movq %rsp, %rbp + 0x41, 0x57, //0x000015b4 pushq %r15 + 0x41, 0x56, //0x000015b6 pushq %r14 + 0x41, 0x55, //0x000015b8 pushq %r13 + 0x41, 0x54, //0x000015ba pushq %r12 + 0x53, //0x000015bc pushq %rbx + 0x48, 0x83, 0xec, 0x20, //0x000015bd subq $32, %rsp + 0x49, 0x89, 0xcb, //0x000015c1 movq %rcx, %r11 + 0x49, 0x89, 0xd7, //0x000015c4 movq %rdx, %r15 + 0x4c, 0x8b, 0x11, //0x000015c7 movq (%rcx), %r10 + 0x41, 0xf6, 0xc0, 0x01, //0x000015ca testb $1, %r8b + 0x48, 0x89, 0xf0, //0x000015ce movq %rsi, %rax + 0x48, 0x8d, 0x0d, 0x08, 0xd6, 0x00, 0x00, //0x000015d1 leaq $54792(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x25, 0x01, 0xe6, 0x00, 0x00, //0x000015d8 leaq $58881(%rip), %r12 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xe1, //0x000015df cmoveq %rcx, %r12 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x000015e3 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xca, //0x000015eb cmpq %rcx, %r10 + 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x000015ee jge LBB8_56 + 0x4d, 0x89, 0xfe, //0x000015f4 movq %r15, %r14 + 0x49, 0x89, 0xf9, //0x000015f7 movq %rdi, %r9 + 0x48, 0x85, 0xc0, //0x000015fa testq %rax, %rax + 0x0f, 0x84, 0xcc, 0x03, 0x00, 0x00, //0x000015fd je LBB8_80 + 0x4c, 0x89, 0x5d, 0xc8, //0x00001603 movq %r11, $-56(%rbp) + 0xc5, 0xf9, 0x6f, 0x05, 0x71, 0xff, 0xff, 0xff, //0x00001607 vmovdqa $-143(%rip), %xmm0 /* LCPI8_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x0000160f vmovdqa $-135(%rip), %xmm1 /* LCPI8_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x00001617 vmovdqa $-127(%rip), %xmm2 /* LCPI8_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x0000161f vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x48, 0x89, 0xf9, //0x00001623 movq %rdi, %rcx + 0x4c, 0x89, 0x7d, 0xd0, //0x00001626 movq %r15, $-48(%rbp) + 0x4d, 0x89, 0xfe, //0x0000162a movq %r15, %r14 + 0x4c, 0x89, 0x65, 0xc0, //0x0000162d movq %r12, $-64(%rbp) + //0x00001631 LBB8_3 + 0x49, 0x89, 0xc9, //0x00001631 movq %rcx, %r9 + 0x48, 0x83, 0xf8, 0x10, //0x00001634 cmpq $16, %rax + 0x0f, 0x9d, 0xc3, //0x00001638 setge %bl + 0x4d, 0x89, 0xd4, //0x0000163b movq %r10, %r12 + 0x4d, 0x89, 0xf7, //0x0000163e movq %r14, %r15 + 0x49, 0x89, 0xc3, //0x00001641 movq %rax, %r11 + 0x49, 0x89, 0xcd, //0x00001644 movq %rcx, %r13 + 0x0f, 0x8c, 0x77, 0x00, 0x00, 0x00, //0x00001647 jl LBB8_10 + 0x49, 0x83, 0xfa, 0x10, //0x0000164d cmpq $16, %r10 + 0x0f, 0x8c, 0x6d, 0x00, 0x00, 0x00, //0x00001651 jl LBB8_10 + 0x45, 0x31, 0xff, //0x00001657 xorl %r15d, %r15d + 0x48, 0x89, 0xc1, //0x0000165a movq %rax, %rcx + 0x4c, 0x89, 0xd2, //0x0000165d movq %r10, %rdx + //0x00001660 .p2align 4, 0x90 + //0x00001660 LBB8_6 + 0xc4, 0x81, 0x7a, 0x6f, 0x24, 0x39, //0x00001660 vmovdqu (%r9,%r15), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x00001666 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x0000166a vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x0000166e vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x00001672 vpor %xmm6, %xmm7, %xmm6 + 0xc4, 0x81, 0x7a, 0x7f, 0x24, 0x3e, //0x00001676 vmovdqu %xmm4, (%r14,%r15) + 0xc5, 0xd9, 0x64, 0xe3, //0x0000167c vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd1, 0xdb, 0xe4, //0x00001680 vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x00001684 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xf4, //0x00001688 vpmovmskb %xmm4, %esi + 0x85, 0xf6, //0x0000168c testl %esi, %esi + 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x0000168e jne LBB8_23 + 0x4c, 0x8d, 0x59, 0xf0, //0x00001694 leaq $-16(%rcx), %r11 + 0x4c, 0x8d, 0x62, 0xf0, //0x00001698 leaq $-16(%rdx), %r12 + 0x49, 0x83, 0xc7, 0x10, //0x0000169c addq $16, %r15 + 0x48, 0x83, 0xf9, 0x20, //0x000016a0 cmpq $32, %rcx + 0x0f, 0x9d, 0xc3, //0x000016a4 setge %bl + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x000016a7 jl LBB8_9 + 0x4c, 0x89, 0xd9, //0x000016ad movq %r11, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x000016b0 cmpq $31, %rdx + 0x4c, 0x89, 0xe2, //0x000016b4 movq %r12, %rdx + 0x0f, 0x8f, 0xa3, 0xff, 0xff, 0xff, //0x000016b7 jg LBB8_6 + //0x000016bd LBB8_9 + 0x4f, 0x8d, 0x2c, 0x39, //0x000016bd leaq (%r9,%r15), %r13 + 0x4d, 0x01, 0xf7, //0x000016c1 addq %r14, %r15 + //0x000016c4 LBB8_10 + 0x84, 0xdb, //0x000016c4 testb %bl, %bl + 0x0f, 0x84, 0x67, 0x00, 0x00, 0x00, //0x000016c6 je LBB8_14 + 0xc4, 0xc1, 0x7a, 0x6f, 0x65, 0x00, //0x000016cc vmovdqu (%r13), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x000016d2 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x000016d6 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x000016da vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x000016de vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xd9, 0x64, 0xfb, //0x000016e2 vpcmpgtb %xmm3, %xmm4, %xmm7 + 0xc5, 0xd1, 0xdb, 0xef, //0x000016e6 vpand %xmm7, %xmm5, %xmm5 + 0xc5, 0xc9, 0xeb, 0xed, //0x000016ea vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xf9, 0xd7, 0xcd, //0x000016ee vpmovmskb %xmm5, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x000016f2 orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xd9, //0x000016f8 bsfl %ecx, %r11d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe1, //0x000016fc vmovq %xmm4, %rcx + 0x4d, 0x39, 0xdc, //0x00001701 cmpq %r11, %r12 + 0x0f, 0x8d, 0xc1, 0x00, 0x00, 0x00, //0x00001704 jge LBB8_24 + 0x49, 0x83, 0xfc, 0x08, //0x0000170a cmpq $8, %r12 + 0x0f, 0x82, 0xf6, 0x00, 0x00, 0x00, //0x0000170e jb LBB8_28 + 0x49, 0x89, 0x0f, //0x00001714 movq %rcx, (%r15) + 0x4d, 0x8d, 0x5d, 0x08, //0x00001717 leaq $8(%r13), %r11 + 0x49, 0x83, 0xc7, 0x08, //0x0000171b addq $8, %r15 + 0x49, 0x8d, 0x5c, 0x24, 0xf8, //0x0000171f leaq $-8(%r12), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00001724 cmpq $4, %rbx + 0x0f, 0x8d, 0xec, 0x00, 0x00, 0x00, //0x00001728 jge LBB8_29 + 0xe9, 0xf9, 0x00, 0x00, 0x00, //0x0000172e jmp LBB8_30 + //0x00001733 LBB8_14 + 0x4d, 0x85, 0xdb, //0x00001733 testq %r11, %r11 + 0x0f, 0x8e, 0x67, 0x00, 0x00, 0x00, //0x00001736 jle LBB8_21 + 0x4d, 0x85, 0xe4, //0x0000173c testq %r12, %r12 + 0x0f, 0x8e, 0x5e, 0x00, 0x00, 0x00, //0x0000173f jle LBB8_21 + 0x4c, 0x89, 0x4d, 0xb8, //0x00001745 movq %r9, $-72(%rbp) + 0x45, 0x31, 0xc9, //0x00001749 xorl %r9d, %r9d + 0x31, 0xc9, //0x0000174c xorl %ecx, %ecx + 0x90, 0x90, //0x0000174e .p2align 4, 0x90 + //0x00001750 LBB8_17 + 0x43, 0x0f, 0xb6, 0x74, 0x0d, 0x00, //0x00001750 movzbl (%r13,%r9), %esi + 0x48, 0x89, 0xf3, //0x00001756 movq %rsi, %rbx + 0x48, 0xc1, 0xe3, 0x04, //0x00001759 shlq $4, %rbx + 0x48, 0x8d, 0x15, 0x7c, 0xd4, 0x00, 0x00, //0x0000175d leaq $54396(%rip), %rdx /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x13, 0x00, //0x00001764 cmpq $0, (%rbx,%rdx) + 0x0f, 0x85, 0x8c, 0x00, 0x00, 0x00, //0x00001769 jne LBB8_27 + 0x4d, 0x8d, 0x04, 0x0b, //0x0000176f leaq (%r11,%rcx), %r8 + 0x43, 0x88, 0x34, 0x0f, //0x00001773 movb %sil, (%r15,%r9) + 0x48, 0x8d, 0x59, 0xff, //0x00001777 leaq $-1(%rcx), %rbx + 0x49, 0x83, 0xf8, 0x02, //0x0000177b cmpq $2, %r8 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000177f jl LBB8_20 + 0x4c, 0x01, 0xe1, //0x00001785 addq %r12, %rcx + 0x49, 0x83, 0xc1, 0x01, //0x00001788 addq $1, %r9 + 0x48, 0x83, 0xf9, 0x01, //0x0000178c cmpq $1, %rcx + 0x48, 0x89, 0xd9, //0x00001790 movq %rbx, %rcx + 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001793 jg LBB8_17 + //0x00001799 LBB8_20 + 0x49, 0x29, 0xdd, //0x00001799 subq %rbx, %r13 + 0x49, 0x01, 0xdb, //0x0000179c addq %rbx, %r11 + 0x4c, 0x8b, 0x4d, 0xb8, //0x0000179f movq $-72(%rbp), %r9 + //0x000017a3 LBB8_21 + 0x4d, 0x85, 0xdb, //0x000017a3 testq %r11, %r11 + 0x4c, 0x8b, 0x65, 0xc0, //0x000017a6 movq $-64(%rbp), %r12 + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x000017aa je LBB8_26 + 0x49, 0xf7, 0xd5, //0x000017b0 notq %r13 + 0x4d, 0x01, 0xcd, //0x000017b3 addq %r9, %r13 + 0xe9, 0x27, 0x01, 0x00, 0x00, //0x000017b6 jmp LBB8_41 + //0x000017bb LBB8_23 + 0x66, 0x0f, 0xbc, 0xce, //0x000017bb bsfw %si, %cx + 0x44, 0x0f, 0xb7, 0xe9, //0x000017bf movzwl %cx, %r13d + 0x4d, 0x01, 0xfd, //0x000017c3 addq %r15, %r13 + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x000017c6 jmp LBB8_40 + //0x000017cb LBB8_24 + 0x41, 0x83, 0xfb, 0x08, //0x000017cb cmpl $8, %r11d + 0x0f, 0x82, 0xa3, 0x00, 0x00, 0x00, //0x000017cf jb LBB8_34 + 0x49, 0x89, 0x0f, //0x000017d5 movq %rcx, (%r15) + 0x4d, 0x8d, 0x65, 0x08, //0x000017d8 leaq $8(%r13), %r12 + 0x49, 0x83, 0xc7, 0x08, //0x000017dc addq $8, %r15 + 0x49, 0x8d, 0x5b, 0xf8, //0x000017e0 leaq $-8(%r11), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000017e4 cmpq $4, %rbx + 0x0f, 0x8d, 0x9a, 0x00, 0x00, 0x00, //0x000017e8 jge LBB8_35 + 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x000017ee jmp LBB8_36 + //0x000017f3 LBB8_26 + 0x4d, 0x29, 0xcd, //0x000017f3 subq %r9, %r13 + 0xe9, 0xe7, 0x00, 0x00, 0x00, //0x000017f6 jmp LBB8_41 + //0x000017fb LBB8_27 + 0x4c, 0x8b, 0x4d, 0xb8, //0x000017fb movq $-72(%rbp), %r9 + 0x4d, 0x29, 0xcd, //0x000017ff subq %r9, %r13 + 0x49, 0x29, 0xcd, //0x00001802 subq %rcx, %r13 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x00001805 jmp LBB8_40 + //0x0000180a LBB8_28 + 0x4d, 0x89, 0xeb, //0x0000180a movq %r13, %r11 + 0x4c, 0x89, 0xe3, //0x0000180d movq %r12, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00001810 cmpq $4, %rbx + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x00001814 jl LBB8_30 + //0x0000181a LBB8_29 + 0x41, 0x8b, 0x0b, //0x0000181a movl (%r11), %ecx + 0x41, 0x89, 0x0f, //0x0000181d movl %ecx, (%r15) + 0x49, 0x83, 0xc3, 0x04, //0x00001820 addq $4, %r11 + 0x49, 0x83, 0xc7, 0x04, //0x00001824 addq $4, %r15 + 0x48, 0x83, 0xc3, 0xfc, //0x00001828 addq $-4, %rbx + //0x0000182c LBB8_30 + 0x48, 0x83, 0xfb, 0x02, //0x0000182c cmpq $2, %rbx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00001830 jb LBB8_31 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001836 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x0f, //0x0000183a movw %cx, (%r15) + 0x49, 0x83, 0xc3, 0x02, //0x0000183e addq $2, %r11 + 0x49, 0x83, 0xc7, 0x02, //0x00001842 addq $2, %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00001846 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000184a testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000184d jne LBB8_32 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001853 jmp LBB8_33 + //0x00001858 LBB8_31 + 0x48, 0x85, 0xdb, //0x00001858 testq %rbx, %rbx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000185b je LBB8_33 + //0x00001861 LBB8_32 + 0x41, 0x8a, 0x0b, //0x00001861 movb (%r11), %cl + 0x41, 0x88, 0x0f, //0x00001864 movb %cl, (%r15) + //0x00001867 LBB8_33 + 0x4d, 0x01, 0xec, //0x00001867 addq %r13, %r12 + 0x49, 0xf7, 0xd4, //0x0000186a notq %r12 + 0x4d, 0x01, 0xcc, //0x0000186d addq %r9, %r12 + 0x4d, 0x89, 0xe5, //0x00001870 movq %r12, %r13 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00001873 jmp LBB8_40 + //0x00001878 LBB8_34 + 0x4d, 0x89, 0xec, //0x00001878 movq %r13, %r12 + 0x4c, 0x89, 0xdb, //0x0000187b movq %r11, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x0000187e cmpq $4, %rbx + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001882 jl LBB8_36 + //0x00001888 LBB8_35 + 0x41, 0x8b, 0x0c, 0x24, //0x00001888 movl (%r12), %ecx + 0x41, 0x89, 0x0f, //0x0000188c movl %ecx, (%r15) + 0x49, 0x83, 0xc4, 0x04, //0x0000188f addq $4, %r12 + 0x49, 0x83, 0xc7, 0x04, //0x00001893 addq $4, %r15 + 0x48, 0x83, 0xc3, 0xfc, //0x00001897 addq $-4, %rbx + //0x0000189b LBB8_36 + 0x48, 0x83, 0xfb, 0x02, //0x0000189b cmpq $2, %rbx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x0000189f jb LBB8_37 + 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x000018a5 movzwl (%r12), %ecx + 0x66, 0x41, 0x89, 0x0f, //0x000018aa movw %cx, (%r15) + 0x49, 0x83, 0xc4, 0x02, //0x000018ae addq $2, %r12 + 0x49, 0x83, 0xc7, 0x02, //0x000018b2 addq $2, %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x000018b6 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x000018ba testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000018bd jne LBB8_38 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000018c3 jmp LBB8_39 + //0x000018c8 LBB8_37 + 0x48, 0x85, 0xdb, //0x000018c8 testq %rbx, %rbx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000018cb je LBB8_39 + //0x000018d1 LBB8_38 + 0x41, 0x8a, 0x0c, 0x24, //0x000018d1 movb (%r12), %cl + 0x41, 0x88, 0x0f, //0x000018d5 movb %cl, (%r15) + //0x000018d8 LBB8_39 + 0x4d, 0x29, 0xcd, //0x000018d8 subq %r9, %r13 + 0x4d, 0x01, 0xdd, //0x000018db addq %r11, %r13 + //0x000018de LBB8_40 + 0x4c, 0x8b, 0x65, 0xc0, //0x000018de movq $-64(%rbp), %r12 + //0x000018e2 LBB8_41 + 0x49, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000018e2 movabsq $12884901889, %r11 + 0x4d, 0x85, 0xed, //0x000018ec testq %r13, %r13 + 0x0f, 0x88, 0x4f, 0x03, 0x00, 0x00, //0x000018ef js LBB8_83 + 0x4d, 0x01, 0xee, //0x000018f5 addq %r13, %r14 + 0x4c, 0x39, 0xe8, //0x000018f8 cmpq %r13, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000018fb je LBB8_79 + 0x4d, 0x29, 0xea, //0x00001901 subq %r13, %r10 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001904 jmp LBB8_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001909 .p2align 4, 0x90 + //0x00001910 LBB8_44 + 0x49, 0x01, 0xf6, //0x00001910 addq %rsi, %r14 + 0x49, 0x83, 0xc5, 0x01, //0x00001913 addq $1, %r13 + 0x4c, 0x39, 0xe8, //0x00001917 cmpq %r13, %rax + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x0000191a je LBB8_79 + //0x00001920 LBB8_45 + 0x43, 0x0f, 0xb6, 0x0c, 0x29, //0x00001920 movzbl (%r9,%r13), %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00001925 shlq $4, %rcx + 0x49, 0x8b, 0x14, 0x0c, //0x00001929 movq (%r12,%rcx), %rdx + 0x85, 0xd2, //0x0000192d testl %edx, %edx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000192f je LBB8_53 + 0x48, 0x63, 0xf2, //0x00001935 movslq %edx, %rsi + 0x49, 0x29, 0xf2, //0x00001938 subq %rsi, %r10 + 0x0f, 0x8c, 0xdd, 0x02, 0x00, 0x00, //0x0000193b jl LBB8_81 + 0x48, 0xc1, 0xe2, 0x20, //0x00001941 shlq $32, %rdx + 0x49, 0x8d, 0x1c, 0x0c, //0x00001945 leaq (%r12,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x08, //0x00001949 addq $8, %rbx + 0x4c, 0x39, 0xda, //0x0000194d cmpq %r11, %rdx + 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001950 jl LBB8_49 + 0x8b, 0x13, //0x00001956 movl (%rbx), %edx + 0x41, 0x89, 0x16, //0x00001958 movl %edx, (%r14) + 0x49, 0x8d, 0x1c, 0x0c, //0x0000195b leaq (%r12,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x0c, //0x0000195f addq $12, %rbx + 0x4d, 0x8d, 0x46, 0x04, //0x00001963 leaq $4(%r14), %r8 + 0x48, 0x8d, 0x4e, 0xfc, //0x00001967 leaq $-4(%rsi), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000196b cmpq $2, %rcx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000196f jae LBB8_50 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001975 jmp LBB8_51 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000197a .p2align 4, 0x90 + //0x00001980 LBB8_49 + 0x4d, 0x89, 0xf0, //0x00001980 movq %r14, %r8 + 0x48, 0x89, 0xf1, //0x00001983 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00001986 cmpq $2, %rcx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x0000198a jb LBB8_51 + //0x00001990 LBB8_50 + 0x0f, 0xb7, 0x13, //0x00001990 movzwl (%rbx), %edx + 0x66, 0x41, 0x89, 0x10, //0x00001993 movw %dx, (%r8) + 0x48, 0x83, 0xc3, 0x02, //0x00001997 addq $2, %rbx + 0x49, 0x83, 0xc0, 0x02, //0x0000199b addq $2, %r8 + 0x48, 0x83, 0xc1, 0xfe, //0x0000199f addq $-2, %rcx + //0x000019a3 LBB8_51 + 0x48, 0x85, 0xc9, //0x000019a3 testq %rcx, %rcx + 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x000019a6 je LBB8_44 + 0x0f, 0xb6, 0x0b, //0x000019ac movzbl (%rbx), %ecx + 0x41, 0x88, 0x08, //0x000019af movb %cl, (%r8) + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x000019b2 jmp LBB8_44 + //0x000019b7 LBB8_53 + 0x4b, 0x8d, 0x0c, 0x29, //0x000019b7 leaq (%r9,%r13), %rcx + 0x4c, 0x29, 0xe8, //0x000019bb subq %r13, %rax + 0x0f, 0x85, 0x6d, 0xfc, 0xff, 0xff, //0x000019be jne LBB8_3 + //0x000019c4 LBB8_79 + 0x4d, 0x01, 0xe9, //0x000019c4 addq %r13, %r9 + 0x4c, 0x8b, 0x5d, 0xc8, //0x000019c7 movq $-56(%rbp), %r11 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000019cb movq $-48(%rbp), %r15 + //0x000019cf LBB8_80 + 0x4d, 0x29, 0xfe, //0x000019cf subq %r15, %r14 + 0x4d, 0x89, 0x33, //0x000019d2 movq %r14, (%r11) + 0x49, 0x29, 0xf9, //0x000019d5 subq %rdi, %r9 + 0x4c, 0x89, 0xc8, //0x000019d8 movq %r9, %rax + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000019db jmp LBB8_82 + //0x000019e0 LBB8_56 + 0xc5, 0xf9, 0x6f, 0x05, 0x98, 0xfb, 0xff, 0xff, //0x000019e0 vmovdqa $-1128(%rip), %xmm0 /* LCPI8_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa0, 0xfb, 0xff, 0xff, //0x000019e8 vmovdqa $-1120(%rip), %xmm1 /* LCPI8_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xa8, 0xfb, 0xff, 0xff, //0x000019f0 vmovdqa $-1112(%rip), %xmm2 /* LCPI8_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x000019f8 vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x4c, 0x8d, 0x0d, 0xdd, 0xf1, 0x00, 0x00, //0x000019fc leaq $61917(%rip), %r9 /* __EscTab+0(%rip) */ + 0x4c, 0x89, 0xfe, //0x00001a03 movq %r15, %rsi + 0x48, 0x89, 0xc3, //0x00001a06 movq %rax, %rbx + //0x00001a09 LBB8_57 + 0x48, 0x83, 0xfb, 0x10, //0x00001a09 cmpq $16, %rbx + 0x0f, 0x8c, 0x5d, 0x00, 0x00, 0x00, //0x00001a0d jl LBB8_62 + 0x49, 0x89, 0xda, //0x00001a13 movq %rbx, %r10 + 0x49, 0xf7, 0xda, //0x00001a16 negq %r10 + 0x48, 0x83, 0xc3, 0x10, //0x00001a19 addq $16, %rbx + 0x90, 0x90, 0x90, //0x00001a1d .p2align 4, 0x90 + //0x00001a20 LBB8_59 + 0xc5, 0xfa, 0x6f, 0x27, //0x00001a20 vmovdqu (%rdi), %xmm4 + 0xc5, 0xf9, 0x64, 0xec, //0x00001a24 vpcmpgtb %xmm4, %xmm0, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00001a28 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xd9, 0x74, 0xfa, //0x00001a2c vpcmpeqb %xmm2, %xmm4, %xmm7 + 0xc5, 0xc1, 0xeb, 0xf6, //0x00001a30 vpor %xmm6, %xmm7, %xmm6 + 0xc5, 0xfa, 0x7f, 0x26, //0x00001a34 vmovdqu %xmm4, (%rsi) + 0xc5, 0xd9, 0x64, 0xe3, //0x00001a38 vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xd1, 0xdb, 0xe4, //0x00001a3c vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xc9, 0xeb, 0xe4, //0x00001a40 vpor %xmm4, %xmm6, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x00001a44 vpmovmskb %xmm4, %ecx + 0x85, 0xc9, //0x00001a48 testl %ecx, %ecx + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001a4a jne LBB8_72 + 0x48, 0x83, 0xc7, 0x10, //0x00001a50 addq $16, %rdi + 0x48, 0x83, 0xc6, 0x10, //0x00001a54 addq $16, %rsi + 0x49, 0x83, 0xc2, 0x10, //0x00001a58 addq $16, %r10 + 0x48, 0x83, 0xc3, 0xf0, //0x00001a5c addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x20, //0x00001a60 cmpq $32, %rbx + 0x0f, 0x8d, 0xb6, 0xff, 0xff, 0xff, //0x00001a64 jge LBB8_59 + 0x49, 0xf7, 0xda, //0x00001a6a negq %r10 + 0x4c, 0x89, 0xd3, //0x00001a6d movq %r10, %rbx + //0x00001a70 LBB8_62 + 0x48, 0x83, 0xfb, 0x08, //0x00001a70 cmpq $8, %rbx + 0x0f, 0x8c, 0x75, 0x00, 0x00, 0x00, //0x00001a74 jl LBB8_66 + 0x0f, 0xb6, 0x0f, //0x00001a7a movzbl (%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001a7d movzbl $1(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001a81 movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001a85 addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001a87 orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x02, //0x00001a8b movzbl $2(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001a8f movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001a93 shlb $2, %cl + 0x08, 0xd1, //0x00001a96 orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x03, //0x00001a98 movzbl $3(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001a9c movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001aa0 shlb $3, %dl + 0x08, 0xca, //0x00001aa3 orb %cl, %dl + 0x48, 0x8b, 0x0f, //0x00001aa5 movq (%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00001aa8 movq %rcx, (%rsi) + 0x0f, 0x85, 0x2e, 0x01, 0x00, 0x00, //0x00001aab jne LBB8_76 + 0x0f, 0xb6, 0x4f, 0x04, //0x00001ab1 movzbl $4(%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001ab5 movzbl $5(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001ab9 movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001abd addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001abf orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x06, //0x00001ac3 movzbl $6(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001ac7 movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001acb shlb $2, %cl + 0x08, 0xd1, //0x00001ace orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x07, //0x00001ad0 movzbl $7(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001ad4 movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001ad8 shlb $3, %dl + 0x08, 0xca, //0x00001adb orb %cl, %dl + 0x0f, 0x85, 0x10, 0x01, 0x00, 0x00, //0x00001add jne LBB8_77 + 0x48, 0x83, 0xc6, 0x08, //0x00001ae3 addq $8, %rsi + 0x48, 0x83, 0xc7, 0x08, //0x00001ae7 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00001aeb addq $-8, %rbx + //0x00001aef LBB8_66 + 0x48, 0x83, 0xfb, 0x04, //0x00001aef cmpq $4, %rbx + 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001af3 jl LBB8_69 + 0x0f, 0xb6, 0x0f, //0x00001af9 movzbl (%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001afc movzbl $1(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001b00 movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001b04 addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001b06 orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x02, //0x00001b0a movzbl $2(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001b0e movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001b12 shlb $2, %cl + 0x08, 0xd1, //0x00001b15 orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x03, //0x00001b17 movzbl $3(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001b1b movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001b1f shlb $3, %dl + 0x08, 0xca, //0x00001b22 orb %cl, %dl + 0x8b, 0x0f, //0x00001b24 movl (%rdi), %ecx + 0x89, 0x0e, //0x00001b26 movl %ecx, (%rsi) + 0x0f, 0x85, 0xb1, 0x00, 0x00, 0x00, //0x00001b28 jne LBB8_76 + 0x48, 0x83, 0xc6, 0x04, //0x00001b2e addq $4, %rsi + 0x48, 0x83, 0xc7, 0x04, //0x00001b32 addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00001b36 addq $-4, %rbx + //0x00001b3a LBB8_69 + 0x48, 0x85, 0xdb, //0x00001b3a testq %rbx, %rbx + 0x0f, 0x8e, 0xd0, 0x00, 0x00, 0x00, //0x00001b3d jle LBB8_78 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b43 .p2align 4, 0x90 + //0x00001b50 LBB8_70 + 0x0f, 0xb6, 0x0f, //0x00001b50 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b53 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001b58 jne LBB8_73 + 0x48, 0x83, 0xc7, 0x01, //0x00001b5e addq $1, %rdi + 0x88, 0x0e, //0x00001b62 movb %cl, (%rsi) + 0x48, 0x83, 0xc6, 0x01, //0x00001b64 addq $1, %rsi + 0x48, 0x8d, 0x4b, 0xff, //0x00001b68 leaq $-1(%rbx), %rcx + 0x48, 0x83, 0xfb, 0x01, //0x00001b6c cmpq $1, %rbx + 0x48, 0x89, 0xcb, //0x00001b70 movq %rcx, %rbx + 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001b73 jg LBB8_70 + 0xe9, 0x95, 0x00, 0x00, 0x00, //0x00001b79 jmp LBB8_78 + //0x00001b7e LBB8_72 + 0x66, 0x0f, 0xbc, 0xc9, //0x00001b7e bsfw %cx, %cx + 0x0f, 0xb7, 0xc9, //0x00001b82 movzwl %cx, %ecx + 0x48, 0x01, 0xcf, //0x00001b85 addq %rcx, %rdi + 0x49, 0x01, 0xca, //0x00001b88 addq %rcx, %r10 + 0x49, 0xf7, 0xda, //0x00001b8b negq %r10 + 0x48, 0x01, 0xce, //0x00001b8e addq %rcx, %rsi + 0x4c, 0x89, 0xd3, //0x00001b91 movq %r10, %rbx + //0x00001b94 LBB8_73 + 0x8a, 0x0f, //0x00001b94 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b96 .p2align 4, 0x90 + //0x00001ba0 LBB8_74 + 0x48, 0x89, 0xf2, //0x00001ba0 movq %rsi, %rdx + 0x0f, 0xb6, 0xc9, //0x00001ba3 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00001ba6 shlq $4, %rcx + 0x49, 0x63, 0x34, 0x0c, //0x00001baa movslq (%r12,%rcx), %rsi + 0x49, 0x8b, 0x4c, 0x0c, 0x08, //0x00001bae movq $8(%r12,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001bb3 movq %rcx, (%rdx) + 0x48, 0x01, 0xd6, //0x00001bb6 addq %rdx, %rsi + 0x48, 0x83, 0xfb, 0x02, //0x00001bb9 cmpq $2, %rbx + 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x00001bbd jl LBB8_78 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001bc3 movzbl $1(%rdi), %ecx + 0x48, 0x83, 0xc7, 0x01, //0x00001bc7 addq $1, %rdi + 0x48, 0x83, 0xc3, 0xff, //0x00001bcb addq $-1, %rbx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001bcf cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00001bd4 jne LBB8_74 + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00001bda jmp LBB8_57 + //0x00001bdf LBB8_76 + 0x0f, 0xb6, 0xca, //0x00001bdf movzbl %dl, %ecx + 0x0f, 0xbc, 0xc9, //0x00001be2 bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001be5 addq %rcx, %rdi + 0x48, 0x29, 0xcb, //0x00001be8 subq %rcx, %rbx + 0x48, 0x01, 0xce, //0x00001beb addq %rcx, %rsi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001bee jmp LBB8_73 + //0x00001bf3 LBB8_77 + 0x0f, 0xb6, 0xca, //0x00001bf3 movzbl %dl, %ecx + 0x0f, 0xbc, 0xc9, //0x00001bf6 bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001bf9 leaq $4(%rcx), %rdx + 0x48, 0x01, 0xcf, //0x00001bfd addq %rcx, %rdi + 0x48, 0x83, 0xc7, 0x04, //0x00001c00 addq $4, %rdi + 0x48, 0x29, 0xd3, //0x00001c04 subq %rdx, %rbx + 0x48, 0x01, 0xce, //0x00001c07 addq %rcx, %rsi + 0x48, 0x83, 0xc6, 0x04, //0x00001c0a addq $4, %rsi + 0xe9, 0x81, 0xff, 0xff, 0xff, //0x00001c0e jmp LBB8_73 + //0x00001c13 LBB8_78 + 0x4c, 0x29, 0xfe, //0x00001c13 subq %r15, %rsi + 0x49, 0x89, 0x33, //0x00001c16 movq %rsi, (%r11) + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001c19 jmp LBB8_82 + //0x00001c1e LBB8_81 + 0x4c, 0x2b, 0x75, 0xd0, //0x00001c1e subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00001c22 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00001c26 movq %r14, (%rax) + 0x4c, 0x29, 0xcf, //0x00001c29 subq %r9, %rdi + 0x49, 0xf7, 0xd5, //0x00001c2c notq %r13 + 0x49, 0x01, 0xfd, //0x00001c2f addq %rdi, %r13 + 0x4c, 0x89, 0xe8, //0x00001c32 movq %r13, %rax + //0x00001c35 LBB8_82 + 0x48, 0x83, 0xc4, 0x20, //0x00001c35 addq $32, %rsp + 0x5b, //0x00001c39 popq %rbx + 0x41, 0x5c, //0x00001c3a popq %r12 + 0x41, 0x5d, //0x00001c3c popq %r13 + 0x41, 0x5e, //0x00001c3e popq %r14 + 0x41, 0x5f, //0x00001c40 popq %r15 + 0x5d, //0x00001c42 popq %rbp + 0xc3, //0x00001c43 retq + //0x00001c44 LBB8_83 + 0x48, 0x8b, 0x4d, 0xd0, //0x00001c44 movq $-48(%rbp), %rcx + 0x4c, 0x01, 0xe9, //0x00001c48 addq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00001c4b notq %rcx + 0x4c, 0x01, 0xf1, //0x00001c4e addq %r14, %rcx + 0x48, 0x8b, 0x45, 0xc8, //0x00001c51 movq $-56(%rbp), %rax + 0x48, 0x89, 0x08, //0x00001c55 movq %rcx, (%rax) + 0x4c, 0x29, 0xcf, //0x00001c58 subq %r9, %rdi + 0x4c, 0x01, 0xef, //0x00001c5b addq %r13, %rdi + 0x48, 0x89, 0xf8, //0x00001c5e movq %rdi, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00001c61 jmp LBB8_82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c66 .p2align 4, 0x00 + //0x00001c70 LCPI9_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001c70 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001c80 .p2align 4, 0x90 + //0x00001c80 _unquote + 0x55, //0x00001c80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001c81 movq %rsp, %rbp + 0x41, 0x57, //0x00001c84 pushq %r15 + 0x41, 0x56, //0x00001c86 pushq %r14 + 0x41, 0x55, //0x00001c88 pushq %r13 + 0x41, 0x54, //0x00001c8a pushq %r12 + 0x53, //0x00001c8c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00001c8d subq $56, %rsp + 0x48, 0x85, 0xf6, //0x00001c91 testq %rsi, %rsi + 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00001c94 je LBB9_1 + 0x48, 0x89, 0x4d, 0xd0, //0x00001c9a movq %rcx, $-48(%rbp) + 0x45, 0x89, 0xc2, //0x00001c9e movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00001ca1 andl $1, %r10d + 0x4c, 0x8d, 0x35, 0x34, 0xf0, 0x00, 0x00, //0x00001ca5 leaq $61492(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xbc, 0xff, 0xff, 0xff, //0x00001cac vmovdqa $-68(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x49, 0x89, 0xff, //0x00001cb4 movq %rdi, %r15 + 0x49, 0x89, 0xf5, //0x00001cb7 movq %rsi, %r13 + 0x49, 0x89, 0xd4, //0x00001cba movq %rdx, %r12 + 0x4c, 0x89, 0x45, 0xc0, //0x00001cbd movq %r8, $-64(%rbp) + //0x00001cc1 LBB9_4 + 0x41, 0x80, 0x3f, 0x5c, //0x00001cc1 cmpb $92, (%r15) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00001cc5 jne LBB9_6 + 0x45, 0x31, 0xdb, //0x00001ccb xorl %r11d, %r11d + 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x00001cce jmp LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cd3 .p2align 4, 0x90 + //0x00001ce0 LBB9_6 + 0x4d, 0x89, 0xe9, //0x00001ce0 movq %r13, %r9 + 0x4c, 0x89, 0xe1, //0x00001ce3 movq %r12, %rcx + 0x4d, 0x89, 0xfb, //0x00001ce6 movq %r15, %r11 + 0x49, 0x83, 0xfd, 0x10, //0x00001ce9 cmpq $16, %r13 + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x00001ced jl LBB9_12 + 0x31, 0xc9, //0x00001cf3 xorl %ecx, %ecx + 0x4c, 0x89, 0xe8, //0x00001cf5 movq %r13, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cf8 .p2align 4, 0x90 + //0x00001d00 LBB9_8 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x0f, //0x00001d00 vmovdqu (%r15,%rcx), %xmm0 + 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x0c, //0x00001d06 vmovdqu %xmm0, (%r12,%rcx) + 0xc5, 0xf9, 0x74, 0xc1, //0x00001d0c vpcmpeqb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00001d10 vpmovmskb %xmm0, %ebx + 0x85, 0xdb, //0x00001d14 testl %ebx, %ebx + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00001d16 jne LBB9_9 + 0x4c, 0x8d, 0x48, 0xf0, //0x00001d1c leaq $-16(%rax), %r9 + 0x48, 0x83, 0xc1, 0x10, //0x00001d20 addq $16, %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x00001d24 cmpq $31, %rax + 0x4c, 0x89, 0xc8, //0x00001d28 movq %r9, %rax + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001d2b jg LBB9_8 + 0x4d, 0x8d, 0x1c, 0x0f, //0x00001d31 leaq (%r15,%rcx), %r11 + 0x4c, 0x01, 0xe1, //0x00001d35 addq %r12, %rcx + //0x00001d38 LBB9_12 + 0x4d, 0x85, 0xc9, //0x00001d38 testq %r9, %r9 + 0x0f, 0x84, 0x84, 0x05, 0x00, 0x00, //0x00001d3b je LBB9_2 + 0x31, 0xc0, //0x00001d41 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d43 .p2align 4, 0x90 + //0x00001d50 LBB9_14 + 0x41, 0x0f, 0xb6, 0x1c, 0x03, //0x00001d50 movzbl (%r11,%rax), %ebx + 0x80, 0xfb, 0x5c, //0x00001d55 cmpb $92, %bl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001d58 je LBB9_16 + 0x88, 0x1c, 0x01, //0x00001d5e movb %bl, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00001d61 addq $1, %rax + 0x49, 0x39, 0xc1, //0x00001d65 cmpq %rax, %r9 + 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x00001d68 jne LBB9_14 + 0xe9, 0x52, 0x05, 0x00, 0x00, //0x00001d6e jmp LBB9_2 + //0x00001d73 LBB9_16 + 0x4d, 0x29, 0xfb, //0x00001d73 subq %r15, %r11 + 0x49, 0x01, 0xc3, //0x00001d76 addq %rax, %r11 + 0x49, 0x83, 0xfb, 0xff, //0x00001d79 cmpq $-1, %r11 + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00001d7d jne LBB9_18 + 0xe9, 0x3d, 0x05, 0x00, 0x00, //0x00001d83 jmp LBB9_2 + //0x00001d88 LBB9_9 + 0x66, 0x0f, 0xbc, 0xc3, //0x00001d88 bsfw %bx, %ax + 0x44, 0x0f, 0xb7, 0xd8, //0x00001d8c movzwl %ax, %r11d + 0x49, 0x01, 0xcb, //0x00001d90 addq %rcx, %r11 + 0x49, 0x83, 0xfb, 0xff, //0x00001d93 cmpq $-1, %r11 + 0x0f, 0x84, 0x28, 0x05, 0x00, 0x00, //0x00001d97 je LBB9_2 + 0x90, 0x90, 0x90, //0x00001d9d .p2align 4, 0x90 + //0x00001da0 LBB9_18 + 0x49, 0x8d, 0x4b, 0x02, //0x00001da0 leaq $2(%r11), %rcx + 0x49, 0x29, 0xcd, //0x00001da4 subq %rcx, %r13 + 0x0f, 0x88, 0x4c, 0x06, 0x00, 0x00, //0x00001da7 js LBB9_19 + 0x4d, 0x01, 0xdf, //0x00001dad addq %r11, %r15 + 0x49, 0x83, 0xc7, 0x02, //0x00001db0 addq $2, %r15 + 0x4d, 0x85, 0xd2, //0x00001db4 testq %r10, %r10 + 0x0f, 0x85, 0x4b, 0x02, 0x00, 0x00, //0x00001db7 jne LBB9_21 + //0x00001dbd LBB9_32 + 0x4d, 0x01, 0xdc, //0x00001dbd addq %r11, %r12 + 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00001dc0 movzbl $-1(%r15), %eax + 0x42, 0x8a, 0x04, 0x30, //0x00001dc5 movb (%rax,%r14), %al + 0x3c, 0xff, //0x00001dc9 cmpb $-1, %al + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00001dcb je LBB9_38 + 0x84, 0xc0, //0x00001dd1 testb %al, %al + 0x0f, 0x84, 0x3b, 0x06, 0x00, 0x00, //0x00001dd3 je LBB9_34 + 0x41, 0x88, 0x04, 0x24, //0x00001dd9 movb %al, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x00001ddd addq $1, %r12 + 0x4d, 0x85, 0xed, //0x00001de1 testq %r13, %r13 + 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001de4 jne LBB9_4 + 0xe9, 0x1d, 0x06, 0x00, 0x00, //0x00001dea jmp LBB9_37 + 0x90, //0x00001def .p2align 4, 0x90 + //0x00001df0 LBB9_38 + 0x49, 0x83, 0xfd, 0x03, //0x00001df0 cmpq $3, %r13 + 0x0f, 0x8e, 0xff, 0x05, 0x00, 0x00, //0x00001df4 jle LBB9_19 + 0x41, 0x8b, 0x1f, //0x00001dfa movl (%r15), %ebx + 0x89, 0xd9, //0x00001dfd movl %ebx, %ecx + 0xf7, 0xd1, //0x00001dff notl %ecx + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001e01 leal $-808464432(%rbx), %eax + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001e07 andl $-2139062144, %ecx + 0x85, 0xc1, //0x00001e0d testl %eax, %ecx + 0x0f, 0x85, 0xc8, 0x04, 0x00, 0x00, //0x00001e0f jne LBB9_43 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00001e15 leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00001e1b orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001e1d testl $-2139062144, %eax + 0x0f, 0x85, 0xb5, 0x04, 0x00, 0x00, //0x00001e22 jne LBB9_43 + 0x89, 0xd8, //0x00001e28 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001e2a andl $2139062143, %eax + 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001e2f movl $-1061109568, %r11d + 0x41, 0x29, 0xc3, //0x00001e35 subl %eax, %r11d + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00001e38 leal $1179010630(%rax), %r9d + 0x41, 0x21, 0xcb, //0x00001e3f andl %ecx, %r11d + 0x45, 0x85, 0xcb, //0x00001e42 testl %r9d, %r11d + 0x0f, 0x85, 0x92, 0x04, 0x00, 0x00, //0x00001e45 jne LBB9_43 + 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001e4b movl $-522133280, %r9d + 0x41, 0x29, 0xc1, //0x00001e51 subl %eax, %r9d + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001e54 addl $960051513, %eax + 0x44, 0x21, 0xc9, //0x00001e59 andl %r9d, %ecx + 0x85, 0xc1, //0x00001e5c testl %eax, %ecx + 0x0f, 0x85, 0x79, 0x04, 0x00, 0x00, //0x00001e5e jne LBB9_43 + 0x0f, 0xcb, //0x00001e64 bswapl %ebx + 0x89, 0xd9, //0x00001e66 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001e68 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e6b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e6d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e73 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e76 andl $252645135, %ebx + 0x01, 0xcb, //0x00001e7c addl %ecx, %ebx + 0x89, 0xd9, //0x00001e7e movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001e80 shrl $4, %ecx + 0x09, 0xd9, //0x00001e83 orl %ebx, %ecx + 0x89, 0xc8, //0x00001e85 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00001e87 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e8a andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x00001e8f movzbl %cl, %ebx + 0x09, 0xc3, //0x00001e92 orl %eax, %ebx + 0x4d, 0x8d, 0x4f, 0x04, //0x00001e94 leaq $4(%r15), %r9 + 0x49, 0x8d, 0x45, 0xfc, //0x00001e98 leaq $-4(%r13), %rax + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e9c cmpl $128, %ebx + 0x0f, 0x82, 0xb3, 0x01, 0x00, 0x00, //0x00001ea2 jb LBB9_58 + 0x41, 0xf6, 0xc0, 0x02, //0x00001ea8 testb $2, %r8b + 0x0f, 0x84, 0xbc, 0x01, 0x00, 0x00, //0x00001eac je LBB9_69 + 0x4d, 0x89, 0xcf, //0x00001eb2 movq %r9, %r15 + 0x41, 0x89, 0xde, //0x00001eb5 movl %ebx, %r14d + 0x49, 0x89, 0xc5, //0x00001eb8 movq %rax, %r13 + //0x00001ebb LBB9_63 + 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x00001ebb cmpl $2047, %r14d + 0x0f, 0x86, 0xa1, 0x02, 0x00, 0x00, //0x00001ec2 jbe LBB9_71 + 0x44, 0x89, 0xf0, //0x00001ec8 movl %r14d, %eax + 0x25, 0x00, 0xf8, 0xff, 0xff, //0x00001ecb andl $-2048, %eax + 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x00001ed0 cmpl $55296, %eax + 0x0f, 0x85, 0xc5, 0x01, 0x00, 0x00, //0x00001ed5 jne LBB9_74 + 0x4d, 0x85, 0xd2, //0x00001edb testq %r10, %r10 + 0x48, 0x89, 0x7d, 0xc8, //0x00001ede movq %rdi, $-56(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00001ee2 movq %rsi, $-72(%rbp) + 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00001ee6 jne LBB9_66 + 0x4c, 0x89, 0x55, 0xb0, //0x00001eec movq %r10, $-80(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00001ef0 movq %rdx, $-88(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00001ef4 cmpq $6, %r13 + 0x0f, 0x8c, 0xea, 0x00, 0x00, 0x00, //0x00001ef8 jl LBB9_98 + //0x00001efe LBB9_95 + 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00001efe cmpl $56319, %r14d + 0x0f, 0x87, 0xdd, 0x00, 0x00, 0x00, //0x00001f05 ja LBB9_98 + 0x41, 0x80, 0x3f, 0x5c, //0x00001f0b cmpb $92, (%r15) + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00001f0f jne LBB9_98 + 0x41, 0x80, 0x7f, 0x01, 0x75, //0x00001f15 cmpb $117, $1(%r15) + 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00001f1a jne LBB9_98 + 0x49, 0x8d, 0x7f, 0x02, //0x00001f20 leaq $2(%r15), %rdi + 0xe8, 0x77, 0x06, 0x00, 0x00, //0x00001f24 callq _unhex16_is + 0x84, 0xc0, //0x00001f29 testb %al, %al + 0x0f, 0x84, 0x47, 0x05, 0x00, 0x00, //0x00001f2b je LBB9_104 + 0x41, 0x8b, 0x47, 0x02, //0x00001f31 movl $2(%r15), %eax + 0x0f, 0xc8, //0x00001f35 bswapl %eax + 0x89, 0xc1, //0x00001f37 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001f39 shrl $4, %ecx + 0xf7, 0xd1, //0x00001f3c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001f3e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001f44 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001f47 andl $252645135, %eax + 0x01, 0xc8, //0x00001f4c addl %ecx, %eax + 0x89, 0xc1, //0x00001f4e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001f50 shrl $4, %ecx + 0x09, 0xc1, //0x00001f53 orl %eax, %ecx + 0x89, 0xc8, //0x00001f55 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00001f57 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001f5a andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x00001f5f movzbl %cl, %ebx + 0x09, 0xc3, //0x00001f62 orl %eax, %ebx + 0x49, 0x83, 0xc7, 0x06, //0x00001f64 addq $6, %r15 + 0x49, 0x83, 0xc5, 0xfa, //0x00001f68 addq $-6, %r13 + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001f6c andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001f72 cmpl $14417920, %ecx + 0x48, 0x8b, 0x7d, 0xc8, //0x00001f78 movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00001f7c movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x75, 0xb8, //0x00001f80 movq $-72(%rbp), %rsi + 0xc5, 0xf9, 0x6f, 0x0d, 0xe4, 0xfc, 0xff, 0xff, //0x00001f84 vmovdqa $-796(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00001f8c je LBB9_115 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001f92 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001f99 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00001f9f addq $3, %r12 + 0x41, 0x89, 0xde, //0x00001fa3 movl %ebx, %r14d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001fa6 cmpl $128, %ebx + 0x4c, 0x8b, 0x55, 0xb0, //0x00001fac movq $-80(%rbp), %r10 + 0x0f, 0x83, 0x05, 0xff, 0xff, 0xff, //0x00001fb0 jae LBB9_63 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00001fb6 jmp LBB9_59 + //0x00001fbb LBB9_66 + 0x4d, 0x85, 0xed, //0x00001fbb testq %r13, %r13 + 0x0f, 0x8e, 0x8e, 0x04, 0x00, 0x00, //0x00001fbe jle LBB9_67 + 0x41, 0x80, 0x3f, 0x5c, //0x00001fc4 cmpb $92, (%r15) + 0x0f, 0x85, 0x76, 0x02, 0x00, 0x00, //0x00001fc8 jne LBB9_100 + 0x49, 0x83, 0xc5, 0xff, //0x00001fce addq $-1, %r13 + 0x49, 0x83, 0xc7, 0x01, //0x00001fd2 addq $1, %r15 + 0x4c, 0x89, 0x55, 0xb0, //0x00001fd6 movq %r10, $-80(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00001fda movq %rdx, $-88(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00001fde cmpq $6, %r13 + 0x0f, 0x8d, 0x16, 0xff, 0xff, 0xff, //0x00001fe2 jge LBB9_95 + //0x00001fe8 LBB9_98 + 0xf6, 0x45, 0xc0, 0x02, //0x00001fe8 testb $2, $-64(%rbp) + 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00001fec je LBB9_81 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001ff2 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001ff9 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00001fff addq $3, %r12 + 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00002003 jmp LBB9_90 + //0x00002008 LBB9_21 + 0x45, 0x85, 0xed, //0x00002008 testl %r13d, %r13d + 0x0f, 0x84, 0xe8, 0x03, 0x00, 0x00, //0x0000200b je LBB9_19 + 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00002011 cmpb $92, $-1(%r15) + 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00002016 jne LBB9_23 + 0x41, 0x80, 0x3f, 0x5c, //0x0000201c cmpb $92, (%r15) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00002020 jne LBB9_31 + 0x41, 0x83, 0xfd, 0x01, //0x00002026 cmpl $1, %r13d + 0x0f, 0x8e, 0xc9, 0x03, 0x00, 0x00, //0x0000202a jle LBB9_19 + 0x41, 0x8a, 0x4f, 0x01, //0x00002030 movb $1(%r15), %cl + 0x80, 0xf9, 0x22, //0x00002034 cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00002037 je LBB9_30 + 0x80, 0xf9, 0x5c, //0x0000203d cmpb $92, %cl + 0x0f, 0x85, 0x00, 0x04, 0x00, 0x00, //0x00002040 jne LBB9_29 + //0x00002046 LBB9_30 + 0x49, 0x83, 0xc7, 0x01, //0x00002046 addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x0000204a addq $-1, %r13 + //0x0000204e LBB9_31 + 0x49, 0x83, 0xc7, 0x01, //0x0000204e addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x00002052 addq $-1, %r13 + 0xe9, 0x62, 0xfd, 0xff, 0xff, //0x00002056 jmp LBB9_32 + //0x0000205b LBB9_58 + 0x49, 0x89, 0xc5, //0x0000205b movq %rax, %r13 + 0x4d, 0x89, 0xcf, //0x0000205e movq %r9, %r15 + //0x00002061 LBB9_59 + 0x41, 0x88, 0x1c, 0x24, //0x00002061 movb %bl, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x00002065 addq $1, %r12 + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00002069 jmp LBB9_60 + //0x0000206e LBB9_69 + 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x0000206e cmpl $2048, %ebx + 0x0f, 0x82, 0xe6, 0x00, 0x00, 0x00, //0x00002074 jb LBB9_70 + 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x0000207a andl $16252928, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x00002080 cmpl $14155776, %ecx + 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x00002086 je LBB9_75 + 0x49, 0x89, 0xc5, //0x0000208c movq %rax, %r13 + 0x41, 0x89, 0xde, //0x0000208f movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002092 movq %r9, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002095 .p2align 4, 0x90 + //0x000020a0 LBB9_74 + 0x44, 0x89, 0xf0, //0x000020a0 movl %r14d, %eax + 0xc1, 0xe8, 0x0c, //0x000020a3 shrl $12, %eax + 0x0c, 0xe0, //0x000020a6 orb $-32, %al + 0x41, 0x88, 0x04, 0x24, //0x000020a8 movb %al, (%r12) + 0x44, 0x89, 0xf0, //0x000020ac movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x000020af shrl $6, %eax + 0x24, 0x3f, //0x000020b2 andb $63, %al + 0x0c, 0x80, //0x000020b4 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x01, //0x000020b6 movb %al, $1(%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x000020bb andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x000020bf orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x02, //0x000020c3 movb %r14b, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x000020c8 addq $3, %r12 + //0x000020cc LBB9_60 + 0x4c, 0x8b, 0x45, 0xc0, //0x000020cc movq $-64(%rbp), %r8 + 0x4c, 0x8d, 0x35, 0x09, 0xec, 0x00, 0x00, //0x000020d0 leaq $60425(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0x4d, 0x85, 0xed, //0x000020d7 testq %r13, %r13 + 0x0f, 0x85, 0xe1, 0xfb, 0xff, 0xff, //0x000020da jne LBB9_4 + 0xe9, 0x27, 0x03, 0x00, 0x00, //0x000020e0 jmp LBB9_37 + //0x000020e5 LBB9_115 + 0x89, 0xd8, //0x000020e5 movl %ebx, %eax + 0x44, 0x89, 0xf3, //0x000020e7 movl %r14d, %ebx + //0x000020ea LBB9_89 + 0xc1, 0xe3, 0x0a, //0x000020ea shll $10, %ebx + 0x89, 0xc1, //0x000020ed movl %eax, %ecx + 0x01, 0xd9, //0x000020ef addl %ebx, %ecx + 0x01, 0xd8, //0x000020f1 addl %ebx, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000020f3 addl $-56613888, %eax + 0x89, 0xc2, //0x000020f8 movl %eax, %edx + 0xc1, 0xea, 0x12, //0x000020fa shrl $18, %edx + 0x80, 0xca, 0xf0, //0x000020fd orb $-16, %dl + 0x41, 0x88, 0x14, 0x24, //0x00002100 movb %dl, (%r12) + 0x89, 0xc2, //0x00002104 movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x00002106 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00002109 andb $63, %dl + 0x80, 0xca, 0x80, //0x0000210c orb $-128, %dl + 0x41, 0x88, 0x54, 0x24, 0x01, //0x0000210f movb %dl, $1(%r12) + 0xc1, 0xe8, 0x06, //0x00002114 shrl $6, %eax + 0x24, 0x3f, //0x00002117 andb $63, %al + 0x0c, 0x80, //0x00002119 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x02, //0x0000211b movb %al, $2(%r12) + 0x80, 0xe1, 0x3f, //0x00002120 andb $63, %cl + 0x80, 0xc9, 0x80, //0x00002123 orb $-128, %cl + 0x41, 0x88, 0x4c, 0x24, 0x03, //0x00002126 movb %cl, $3(%r12) + 0x49, 0x83, 0xc4, 0x04, //0x0000212b addq $4, %r12 + //0x0000212f LBB9_90 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000212f movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00002133 movq $-88(%rbp), %rdx + 0x4c, 0x8b, 0x55, 0xb0, //0x00002137 movq $-80(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb8, //0x0000213b movq $-72(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xc0, //0x0000213f movq $-64(%rbp), %r8 + 0x4c, 0x8d, 0x35, 0x96, 0xeb, 0x00, 0x00, //0x00002143 leaq $60310(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x1e, 0xfb, 0xff, 0xff, //0x0000214a vmovdqa $-1250(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x4d, 0x85, 0xed, //0x00002152 testq %r13, %r13 + 0x0f, 0x85, 0x66, 0xfb, 0xff, 0xff, //0x00002155 jne LBB9_4 + 0xe9, 0xac, 0x02, 0x00, 0x00, //0x0000215b jmp LBB9_37 + //0x00002160 LBB9_70 + 0x49, 0x89, 0xc5, //0x00002160 movq %rax, %r13 + 0x41, 0x89, 0xde, //0x00002163 movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002166 movq %r9, %r15 + //0x00002169 LBB9_71 + 0x44, 0x89, 0xf0, //0x00002169 movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x0000216c shrl $6, %eax + 0x0c, 0xc0, //0x0000216f orb $-64, %al + 0x41, 0x88, 0x04, 0x24, //0x00002171 movb %al, (%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x00002175 andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x00002179 orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x01, //0x0000217d movb %r14b, $1(%r12) + 0x49, 0x83, 0xc4, 0x02, //0x00002182 addq $2, %r12 + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00002186 jmp LBB9_60 + //0x0000218b LBB9_75 + 0x48, 0x89, 0x45, 0xa0, //0x0000218b movq %rax, $-96(%rbp) + 0x4d, 0x89, 0xce, //0x0000218f movq %r9, %r14 + 0x48, 0x89, 0x75, 0xb8, //0x00002192 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00002196 movq %rdx, $-88(%rbp) + 0x48, 0x89, 0x7d, 0xc8, //0x0000219a movq %rdi, $-56(%rbp) + 0x4c, 0x89, 0x55, 0xb0, //0x0000219e movq %r10, $-80(%rbp) + 0x4d, 0x85, 0xd2, //0x000021a2 testq %r10, %r10 + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x000021a5 jne LBB9_76 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x000021ab cmpq $6, $-96(%rbp) + 0x0f, 0x8c, 0xe4, 0x00, 0x00, 0x00, //0x000021b0 jl LBB9_80 + //0x000021b6 LBB9_82 + 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x000021b6 cmpl $56319, %ebx + 0x0f, 0x87, 0xd8, 0x00, 0x00, 0x00, //0x000021bc ja LBB9_80 + 0x41, 0x80, 0x3e, 0x5c, //0x000021c2 cmpb $92, (%r14) + 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x000021c6 jne LBB9_80 + 0x41, 0x80, 0x7e, 0x01, 0x75, //0x000021cc cmpb $117, $1(%r14) + 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x000021d1 jne LBB9_80 + 0x49, 0x8d, 0x7e, 0x02, //0x000021d7 leaq $2(%r14), %rdi + 0xe8, 0xc0, 0x03, 0x00, 0x00, //0x000021db callq _unhex16_is + 0x84, 0xc0, //0x000021e0 testb %al, %al + 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x000021e2 je LBB9_86 + 0x4d, 0x89, 0xf7, //0x000021e8 movq %r14, %r15 + 0x41, 0x8b, 0x4e, 0x02, //0x000021eb movl $2(%r14), %ecx + 0x0f, 0xc9, //0x000021ef bswapl %ecx + 0x89, 0xc8, //0x000021f1 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x000021f3 shrl $4, %eax + 0xf7, 0xd0, //0x000021f6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000021f8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000021fd leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002200 andl $252645135, %ecx + 0x01, 0xc1, //0x00002206 addl %eax, %ecx + 0x89, 0xc8, //0x00002208 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000220a shrl $4, %eax + 0x09, 0xc8, //0x0000220d orl %ecx, %eax + 0x49, 0x83, 0xc7, 0x06, //0x0000220f addq $6, %r15 + 0x89, 0xc1, //0x00002213 movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002215 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000221b cmpl $14417920, %ecx + 0x0f, 0x85, 0x3b, 0x03, 0x00, 0x00, //0x00002221 jne LBB9_117 + 0x89, 0xc1, //0x00002227 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00002229 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000222c andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x00002232 movzbl %al, %eax + 0x09, 0xc8, //0x00002235 orl %ecx, %eax + 0x4c, 0x8b, 0x6d, 0xa0, //0x00002237 movq $-96(%rbp), %r13 + 0x49, 0x83, 0xc5, 0xfa, //0x0000223b addq $-6, %r13 + 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x0000223f jmp LBB9_89 + //0x00002244 LBB9_100 + 0xf6, 0x45, 0xc0, 0x02, //0x00002244 testb $2, $-64(%rbp) + 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00002248 je LBB9_101 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000224e movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002255 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x0000225b addq $3, %r12 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000225f movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x75, 0xb8, //0x00002263 movq $-72(%rbp), %rsi + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002267 jmp LBB9_60 + //0x0000226c LBB9_76 + 0x49, 0x83, 0xfd, 0x05, //0x0000226c cmpq $5, %r13 + 0x0f, 0x8c, 0x0c, 0x03, 0x00, 0x00, //0x00002270 jl LBB9_91 + 0x41, 0x80, 0x3e, 0x5c, //0x00002276 cmpb $92, (%r14) + 0x0f, 0x85, 0xee, 0x02, 0x00, 0x00, //0x0000227a jne LBB9_102 + 0x49, 0x83, 0xc5, 0xfb, //0x00002280 addq $-5, %r13 + 0x49, 0x83, 0xc7, 0x05, //0x00002284 addq $5, %r15 + 0x4c, 0x89, 0x6d, 0xa0, //0x00002288 movq %r13, $-96(%rbp) + 0x4d, 0x89, 0xfe, //0x0000228c movq %r15, %r14 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000228f cmpq $6, $-96(%rbp) + 0x0f, 0x8d, 0x1c, 0xff, 0xff, 0xff, //0x00002294 jge LBB9_82 + //0x0000229a LBB9_80 + 0x4d, 0x89, 0xf7, //0x0000229a movq %r14, %r15 + //0x0000229d LBB9_81 + 0x48, 0x8b, 0x45, 0xb0, //0x0000229d movq $-80(%rbp), %rax + 0x48, 0x03, 0x45, 0xc8, //0x000022a1 addq $-56(%rbp), %rax + 0x49, 0x29, 0xc7, //0x000022a5 subq %rax, %r15 + //0x000022a8 LBB9_118 + 0x49, 0x83, 0xc7, 0xfc, //0x000022a8 addq $-4, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x000022ac movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x000022b0 movq %r15, (%rax) + //0x000022b3 LBB9_119 + 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x000022b3 movq $-4, %r12 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x000022ba jmp LBB9_120 + //0x000022bf LBB9_1 + 0x45, 0x31, 0xed, //0x000022bf xorl %r13d, %r13d + 0x49, 0x89, 0xd4, //0x000022c2 movq %rdx, %r12 + //0x000022c5 LBB9_2 + 0x4d, 0x01, 0xec, //0x000022c5 addq %r13, %r12 + 0x49, 0x29, 0xd4, //0x000022c8 subq %rdx, %r12 + //0x000022cb LBB9_120 + 0x4c, 0x89, 0xe0, //0x000022cb movq %r12, %rax + 0x48, 0x83, 0xc4, 0x38, //0x000022ce addq $56, %rsp + 0x5b, //0x000022d2 popq %rbx + 0x41, 0x5c, //0x000022d3 popq %r12 + 0x41, 0x5d, //0x000022d5 popq %r13 + 0x41, 0x5e, //0x000022d7 popq %r14 + 0x41, 0x5f, //0x000022d9 popq %r15 + 0x5d, //0x000022db popq %rbp + 0xc3, //0x000022dc retq + //0x000022dd LBB9_43 + 0x4c, 0x89, 0xf8, //0x000022dd movq %r15, %rax + 0x48, 0x29, 0xf8, //0x000022e0 subq %rdi, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x000022e3 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x000022e7 movq %rax, (%rsi) + 0x41, 0x8a, 0x0f, //0x000022ea movb (%r15), %cl + 0x8d, 0x51, 0xd0, //0x000022ed leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x000022f0 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000022f3 jb LBB9_46 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000022f9 movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002300 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002303 cmpb $37, %cl + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x00002306 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000230c movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x0000230f movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002319 btq %rcx, %rdx + 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x0000231d jae LBB9_120 + //0x00002323 LBB9_46 + 0x48, 0x8d, 0x48, 0x01, //0x00002323 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002327 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x01, //0x0000232a movb $1(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000232e leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002331 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002334 jbe LBB9_49 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000233a movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002341 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002344 cmpb $37, %cl + 0x0f, 0x87, 0x7e, 0xff, 0xff, 0xff, //0x00002347 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000234d movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002350 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000235a btq %rcx, %rdx + 0x0f, 0x83, 0x67, 0xff, 0xff, 0xff, //0x0000235e jae LBB9_120 + //0x00002364 LBB9_49 + 0x48, 0x8d, 0x48, 0x02, //0x00002364 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002368 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x0000236b movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000236f leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002372 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002375 jb LBB9_52 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000237b movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002382 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002385 cmpb $37, %cl + 0x0f, 0x87, 0x3d, 0xff, 0xff, 0xff, //0x00002388 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000238e movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002391 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000239b btq %rcx, %rdx + 0x0f, 0x83, 0x26, 0xff, 0xff, 0xff, //0x0000239f jae LBB9_120 + //0x000023a5 LBB9_52 + 0x48, 0x8d, 0x48, 0x03, //0x000023a5 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x000023a9 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x000023ac movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x000023b0 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x000023b3 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000023b6 jb LBB9_56 + //0x000023bc LBB9_54 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023bc movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000023c3 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000023c6 cmpb $37, %cl + 0x0f, 0x87, 0xfc, 0xfe, 0xff, 0xff, //0x000023c9 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000023cf movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000023d2 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000023dc btq %rcx, %rdx + 0x0f, 0x83, 0xe5, 0xfe, 0xff, 0xff, //0x000023e0 jae LBB9_120 + //0x000023e6 LBB9_56 + 0x48, 0x83, 0xc0, 0x04, //0x000023e6 addq $4, %rax + 0x48, 0x89, 0x06, //0x000023ea movq %rax, (%rsi) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023ed movq $-2, %r12 + 0xe9, 0xd2, 0xfe, 0xff, 0xff, //0x000023f4 jmp LBB9_120 + //0x000023f9 LBB9_19 + 0x48, 0x8b, 0x45, 0xd0, //0x000023f9 movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x000023fd movq %rsi, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002400 movq $-1, %r12 + 0xe9, 0xbf, 0xfe, 0xff, 0xff, //0x00002407 jmp LBB9_120 + //0x0000240c LBB9_37 + 0x45, 0x31, 0xed, //0x0000240c xorl %r13d, %r13d + 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x0000240f jmp LBB9_2 + //0x00002414 LBB9_34 + 0x48, 0xf7, 0xd7, //0x00002414 notq %rdi + 0x49, 0x01, 0xff, //0x00002417 addq %rdi, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x0000241a movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x0000241e movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x00002421 movq $-3, %r12 + 0xe9, 0x9e, 0xfe, 0xff, 0xff, //0x00002428 jmp LBB9_120 + //0x0000242d LBB9_23 + 0x48, 0xf7, 0xd7, //0x0000242d notq %rdi + 0x49, 0x01, 0xff, //0x00002430 addq %rdi, %r15 + //0x00002433 LBB9_24 + 0x48, 0x8b, 0x45, 0xd0, //0x00002433 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00002437 movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000243a movq $-2, %r12 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00002441 jmp LBB9_120 + //0x00002446 LBB9_29 + 0x49, 0x29, 0xff, //0x00002446 subq %rdi, %r15 + 0x49, 0x83, 0xc7, 0x01, //0x00002449 addq $1, %r15 + 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x0000244d jmp LBB9_24 + //0x00002452 LBB9_67 + 0xf6, 0x45, 0xc0, 0x02, //0x00002452 testb $2, $-64(%rbp) + 0x0f, 0x84, 0x26, 0x01, 0x00, 0x00, //0x00002456 je LBB9_91 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000245c movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002463 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002469 addq $3, %r12 + 0x45, 0x31, 0xed, //0x0000246d xorl %r13d, %r13d + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00002470 jmp LBB9_2 + //0x00002475 LBB9_86 + 0x4d, 0x89, 0xf7, //0x00002475 movq %r14, %r15 + //0x00002478 LBB9_104 + 0x4c, 0x89, 0xf8, //0x00002478 movq %r15, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x0000247b subq $-56(%rbp), %rax + 0x48, 0x83, 0xc0, 0x02, //0x0000247f addq $2, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x00002483 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x00002487 movq %rax, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x0000248a movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000248e leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002491 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002494 jb LBB9_107 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000249a movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000024a1 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000024a4 cmpb $37, %cl + 0x0f, 0x87, 0x1e, 0xfe, 0xff, 0xff, //0x000024a7 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000024ad movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024b0 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000024ba btq %rcx, %rdx + 0x0f, 0x83, 0x07, 0xfe, 0xff, 0xff, //0x000024be jae LBB9_120 + //0x000024c4 LBB9_107 + 0x48, 0x8d, 0x48, 0x01, //0x000024c4 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x000024c8 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x000024cb movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x000024cf leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x000024d2 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x000024d5 jbe LBB9_110 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024db movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000024e2 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000024e5 cmpb $37, %cl + 0x0f, 0x87, 0xdd, 0xfd, 0xff, 0xff, //0x000024e8 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000024ee movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024f1 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000024fb btq %rcx, %rdx + 0x0f, 0x83, 0xc6, 0xfd, 0xff, 0xff, //0x000024ff jae LBB9_120 + //0x00002505 LBB9_110 + 0x48, 0x8d, 0x48, 0x02, //0x00002505 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002509 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x04, //0x0000250c movb $4(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002510 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002513 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002516 jb LBB9_113 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000251c movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002523 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002526 cmpb $37, %cl + 0x0f, 0x87, 0x9c, 0xfd, 0xff, 0xff, //0x00002529 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000252f movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002532 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000253c btq %rcx, %rdx + 0x0f, 0x83, 0x85, 0xfd, 0xff, 0xff, //0x00002540 jae LBB9_120 + //0x00002546 LBB9_113 + 0x48, 0x8d, 0x48, 0x03, //0x00002546 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x0000254a movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x05, //0x0000254d movb $5(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002551 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002554 cmpb $10, %dl + 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002557 jae LBB9_54 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000255d jmp LBB9_56 + //0x00002562 LBB9_117 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00002562 subq $-56(%rbp), %r15 + 0xe9, 0x3d, 0xfd, 0xff, 0xff, //0x00002566 jmp LBB9_118 + //0x0000256b LBB9_101 + 0x4d, 0x89, 0xfe, //0x0000256b movq %r15, %r14 + //0x0000256e LBB9_102 + 0x4c, 0x2b, 0x75, 0xc8, //0x0000256e subq $-56(%rbp), %r14 + 0x49, 0x83, 0xc6, 0xfc, //0x00002572 addq $-4, %r14 + 0x48, 0x8b, 0x45, 0xd0, //0x00002576 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000257a movq %r14, (%rax) + 0xe9, 0x31, 0xfd, 0xff, 0xff, //0x0000257d jmp LBB9_119 + //0x00002582 LBB9_91 + 0x48, 0x8b, 0x45, 0xd0, //0x00002582 movq $-48(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xb8, //0x00002586 movq $-72(%rbp), %rcx + 0x48, 0x89, 0x08, //0x0000258a movq %rcx, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000258d movq $-1, %r12 + 0xe9, 0x32, 0xfd, 0xff, 0xff, //0x00002594 jmp LBB9_120 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002599 .p2align 4, 0x90 + //0x000025a0 _unhex16_is + 0x55, //0x000025a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000025a1 movq %rsp, %rbp + 0x8b, 0x07, //0x000025a4 movl (%rdi), %eax + 0x89, 0xc1, //0x000025a6 movl %eax, %ecx + 0xf7, 0xd1, //0x000025a8 notl %ecx + 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x000025aa leal $-808464432(%rax), %edx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000025b0 andl $-2139062144, %ecx + 0x85, 0xd1, //0x000025b6 testl %edx, %ecx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025b8 je LBB10_2 + 0x31, 0xc0, //0x000025be xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x000025c0 movzbl %al, %eax + 0x5d, //0x000025c3 popq %rbp + 0xc3, //0x000025c4 retq + //0x000025c5 LBB10_2 + 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x000025c5 leal $421075225(%rax), %edx + 0x09, 0xc2, //0x000025cb orl %eax, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x000025cd testl $-2139062144, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025d3 je LBB10_4 + 0x31, 0xc0, //0x000025d9 xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x000025db movzbl %al, %eax + 0x5d, //0x000025de popq %rbp + 0xc3, //0x000025df retq + //0x000025e0 LBB10_4 + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025e0 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025e5 movl $-1061109568, %edx + 0x29, 0xc2, //0x000025ea subl %eax, %edx + 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x000025ec leal $1179010630(%rax), %esi + 0x21, 0xca, //0x000025f2 andl %ecx, %edx + 0x85, 0xf2, //0x000025f4 testl %esi, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025f6 je LBB10_6 + 0x31, 0xc0, //0x000025fc xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x000025fe movzbl %al, %eax + 0x5d, //0x00002601 popq %rbp + 0xc3, //0x00002602 retq + //0x00002603 LBB10_6 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002603 movl $-522133280, %edx + 0x29, 0xc2, //0x00002608 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x0000260a addl $960051513, %eax + 0x21, 0xd1, //0x0000260f andl %edx, %ecx + 0x85, 0xc1, //0x00002611 testl %eax, %ecx + 0x0f, 0x94, 0xc0, //0x00002613 sete %al + 0x0f, 0xb6, 0xc0, //0x00002616 movzbl %al, %eax + 0x5d, //0x00002619 popq %rbp + 0xc3, //0x0000261a retq + 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000261b .p2align 4, 0x00 + //0x00002620 LCPI11_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002620 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002630 LCPI11_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002630 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002640 LCPI11_2 + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002640 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' + //0x00002650 LCPI11_3 + 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002650 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' + //0x00002660 .p2align 4, 0x90 + //0x00002660 _html_escape + 0x55, //0x00002660 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002661 movq %rsp, %rbp + 0x41, 0x57, //0x00002664 pushq %r15 + 0x41, 0x56, //0x00002666 pushq %r14 + 0x41, 0x55, //0x00002668 pushq %r13 + 0x41, 0x54, //0x0000266a pushq %r12 + 0x53, //0x0000266c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000266d subq $16, %rsp + 0x48, 0x89, 0x4d, 0xc8, //0x00002671 movq %rcx, $-56(%rbp) + 0x49, 0x89, 0xd6, //0x00002675 movq %rdx, %r14 + 0x48, 0x89, 0x55, 0xd0, //0x00002678 movq %rdx, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x0000267c movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x0000267f testq %rsi, %rsi + 0x0f, 0x8e, 0xa2, 0x04, 0x00, 0x00, //0x00002682 jle LBB11_70 + 0x48, 0x8b, 0x45, 0xc8, //0x00002688 movq $-56(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x0000268c movq (%rax), %r9 + 0xc5, 0xf9, 0x6f, 0x05, 0x89, 0xff, 0xff, 0xff, //0x0000268f vmovdqa $-119(%rip), %xmm0 /* LCPI11_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x91, 0xff, 0xff, 0xff, //0x00002697 vmovdqa $-111(%rip), %xmm1 /* LCPI11_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x99, 0xff, 0xff, 0xff, //0x0000269f vmovdqa $-103(%rip), %xmm2 /* LCPI11_2+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0xa1, 0xff, 0xff, 0xff, //0x000026a7 vmovdqa $-95(%rip), %xmm3 /* LCPI11_3+0(%rip) */ + 0x4c, 0x8d, 0x1d, 0x2a, 0xe7, 0x00, 0x00, //0x000026af leaq $59178(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x49, 0x89, 0xfc, //0x000026b6 movq %rdi, %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x000026b9 movq $-48(%rbp), %r14 + 0x90, 0x90, 0x90, //0x000026bd .p2align 4, 0x90 + //0x000026c0 LBB11_2 + 0x4d, 0x85, 0xc9, //0x000026c0 testq %r9, %r9 + 0x0f, 0x8e, 0x7f, 0x04, 0x00, 0x00, //0x000026c3 jle LBB11_3 + 0x48, 0x83, 0xfe, 0x10, //0x000026c9 cmpq $16, %rsi + 0x0f, 0x9d, 0xc0, //0x000026cd setge %al + 0x4d, 0x89, 0xcd, //0x000026d0 movq %r9, %r13 + 0x4d, 0x89, 0xf0, //0x000026d3 movq %r14, %r8 + 0x48, 0x89, 0xf3, //0x000026d6 movq %rsi, %rbx + 0x4d, 0x89, 0xe7, //0x000026d9 movq %r12, %r15 + 0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x000026dc jl LBB11_12 + 0x49, 0x83, 0xf9, 0x10, //0x000026e2 cmpq $16, %r9 + 0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x000026e6 jl LBB11_12 + 0x45, 0x31, 0xc0, //0x000026ec xorl %r8d, %r8d + 0x48, 0x89, 0xf2, //0x000026ef movq %rsi, %rdx + 0x4c, 0x89, 0xc9, //0x000026f2 movq %r9, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026f5 .p2align 4, 0x90 + //0x00002700 LBB11_7 + 0xc4, 0x81, 0x7a, 0x6f, 0x24, 0x04, //0x00002700 vmovdqu (%r12,%r8), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x00002706 vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x0000270a vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x0000270e vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xdb, 0xf2, //0x00002712 vpand %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x00002716 vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x0000271a vpor %xmm6, %xmm5, %xmm5 + 0xc4, 0x81, 0x7a, 0x7f, 0x24, 0x06, //0x0000271e vmovdqu %xmm4, (%r14,%r8) + 0xc5, 0xf9, 0xd7, 0xc5, //0x00002724 vpmovmskb %xmm5, %eax + 0x85, 0xc0, //0x00002728 testl %eax, %eax + 0x0f, 0x85, 0x50, 0x01, 0x00, 0x00, //0x0000272a jne LBB11_8 + 0x48, 0x8d, 0x5a, 0xf0, //0x00002730 leaq $-16(%rdx), %rbx + 0x4c, 0x8d, 0x69, 0xf0, //0x00002734 leaq $-16(%rcx), %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00002738 addq $16, %r8 + 0x48, 0x83, 0xfa, 0x20, //0x0000273c cmpq $32, %rdx + 0x0f, 0x9d, 0xc0, //0x00002740 setge %al + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002743 jl LBB11_11 + 0x48, 0x89, 0xda, //0x00002749 movq %rbx, %rdx + 0x48, 0x83, 0xf9, 0x1f, //0x0000274c cmpq $31, %rcx + 0x4c, 0x89, 0xe9, //0x00002750 movq %r13, %rcx + 0x0f, 0x8f, 0xa7, 0xff, 0xff, 0xff, //0x00002753 jg LBB11_7 + //0x00002759 LBB11_11 + 0x4f, 0x8d, 0x3c, 0x04, //0x00002759 leaq (%r12,%r8), %r15 + 0x4d, 0x01, 0xf0, //0x0000275d addq %r14, %r8 + //0x00002760 LBB11_12 + 0x84, 0xc0, //0x00002760 testb %al, %al + 0x0f, 0x84, 0x68, 0x00, 0x00, 0x00, //0x00002762 je LBB11_13 + 0xc4, 0xc1, 0x7a, 0x6f, 0x27, //0x00002768 vmovdqu (%r15), %xmm4 + 0xc5, 0xd9, 0x74, 0xe8, //0x0000276d vpcmpeqb %xmm0, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xf1, //0x00002771 vpcmpeqb %xmm1, %xmm4, %xmm6 + 0xc5, 0xc9, 0xeb, 0xed, //0x00002775 vpor %xmm5, %xmm6, %xmm5 + 0xc5, 0xd9, 0xdb, 0xf2, //0x00002779 vpand %xmm2, %xmm4, %xmm6 + 0xc5, 0xc9, 0x74, 0xf3, //0x0000277d vpcmpeqb %xmm3, %xmm6, %xmm6 + 0xc5, 0xd1, 0xeb, 0xee, //0x00002781 vpor %xmm6, %xmm5, %xmm5 + 0xc5, 0xf9, 0xd7, 0xc5, //0x00002785 vpmovmskb %xmm5, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x00002789 orl $65536, %eax + 0x44, 0x0f, 0xbc, 0xd0, //0x0000278e bsfl %eax, %r10d + 0xc4, 0xe1, 0xf9, 0x7e, 0xe0, //0x00002792 vmovq %xmm4, %rax + 0x4d, 0x39, 0xd5, //0x00002797 cmpq %r10, %r13 + 0x0f, 0x8d, 0xf9, 0x00, 0x00, 0x00, //0x0000279a jge LBB11_24 + 0x49, 0x83, 0xfd, 0x08, //0x000027a0 cmpq $8, %r13 + 0x0f, 0x82, 0x32, 0x01, 0x00, 0x00, //0x000027a4 jb LBB11_35 + 0x49, 0x89, 0x00, //0x000027aa movq %rax, (%r8) + 0x4d, 0x8d, 0x57, 0x08, //0x000027ad leaq $8(%r15), %r10 + 0x49, 0x83, 0xc0, 0x08, //0x000027b1 addq $8, %r8 + 0x49, 0x8d, 0x5d, 0xf8, //0x000027b5 leaq $-8(%r13), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000027b9 cmpq $4, %rbx + 0x0f, 0x8d, 0x29, 0x01, 0x00, 0x00, //0x000027bd jge LBB11_38 + 0xe9, 0x36, 0x01, 0x00, 0x00, //0x000027c3 jmp LBB11_39 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c8 .p2align 4, 0x90 + //0x000027d0 LBB11_13 + 0x48, 0x85, 0xdb, //0x000027d0 testq %rbx, %rbx + 0x0f, 0x8e, 0x87, 0x00, 0x00, 0x00, //0x000027d3 jle LBB11_21 + 0x4d, 0x85, 0xed, //0x000027d9 testq %r13, %r13 + 0x0f, 0x8e, 0x7e, 0x00, 0x00, 0x00, //0x000027dc jle LBB11_21 + 0x31, 0xd2, //0x000027e2 xorl %edx, %edx + 0x31, 0xc0, //0x000027e4 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027e6 .p2align 4, 0x90 + //0x000027f0 LBB11_16 + 0x45, 0x0f, 0xb6, 0x1c, 0x17, //0x000027f0 movzbl (%r15,%rdx), %r11d + 0x49, 0x83, 0xfb, 0x3e, //0x000027f5 cmpq $62, %r11 + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000027f9 ja LBB11_17 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000027ff movabsq $5764607797912141824, %rcx + 0x4c, 0x0f, 0xa3, 0xd9, //0x00002809 btq %r11, %rcx + 0x0f, 0x82, 0xae, 0x00, 0x00, 0x00, //0x0000280d jb LBB11_45 + //0x00002813 LBB11_17 + 0x41, 0x80, 0xfb, 0xe2, //0x00002813 cmpb $-30, %r11b + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00002817 je LBB11_45 + 0x4c, 0x8d, 0x14, 0x03, //0x0000281d leaq (%rbx,%rax), %r10 + 0x45, 0x88, 0x1c, 0x10, //0x00002821 movb %r11b, (%r8,%rdx) + 0x48, 0x8d, 0x48, 0xff, //0x00002825 leaq $-1(%rax), %rcx + 0x49, 0x83, 0xfa, 0x02, //0x00002829 cmpq $2, %r10 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000282d jl LBB11_20 + 0x4c, 0x01, 0xe8, //0x00002833 addq %r13, %rax + 0x48, 0x83, 0xc2, 0x01, //0x00002836 addq $1, %rdx + 0x48, 0x83, 0xf8, 0x01, //0x0000283a cmpq $1, %rax + 0x48, 0x89, 0xc8, //0x0000283e movq %rcx, %rax + 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00002841 jg LBB11_16 + //0x00002847 LBB11_20 + 0x49, 0x29, 0xcf, //0x00002847 subq %rcx, %r15 + 0x48, 0x01, 0xcb, //0x0000284a addq %rcx, %rbx + 0x4c, 0x8d, 0x1d, 0x8c, 0xe5, 0x00, 0x00, //0x0000284d leaq $58764(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002854 .p2align 4, 0x90 + //0x00002860 LBB11_21 + 0x48, 0x85, 0xdb, //0x00002860 testq %rbx, %rbx + 0x0f, 0x84, 0x5e, 0x01, 0x00, 0x00, //0x00002863 je LBB11_22 + 0x49, 0xf7, 0xd7, //0x00002869 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000286c addq %r12, %r15 + 0x4d, 0x85, 0xff, //0x0000286f testq %r15, %r15 + 0x0f, 0x89, 0x68, 0x01, 0x00, 0x00, //0x00002872 jns LBB11_49 + 0xe9, 0x88, 0x02, 0x00, 0x00, //0x00002878 jmp LBB11_48 + 0x90, 0x90, 0x90, //0x0000287d .p2align 4, 0x90 + //0x00002880 LBB11_8 + 0x66, 0x0f, 0xbc, 0xc0, //0x00002880 bsfw %ax, %ax + 0x44, 0x0f, 0xb7, 0xf8, //0x00002884 movzwl %ax, %r15d + 0x4d, 0x01, 0xc7, //0x00002888 addq %r8, %r15 + 0x4d, 0x85, 0xff, //0x0000288b testq %r15, %r15 + 0x0f, 0x89, 0x4c, 0x01, 0x00, 0x00, //0x0000288e jns LBB11_49 + 0xe9, 0x6c, 0x02, 0x00, 0x00, //0x00002894 jmp LBB11_48 + //0x00002899 LBB11_24 + 0x41, 0x83, 0xfa, 0x08, //0x00002899 cmpl $8, %r10d + 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x0000289d jb LBB11_25 + 0x49, 0x89, 0x00, //0x000028a3 movq %rax, (%r8) + 0x4d, 0x8d, 0x6f, 0x08, //0x000028a6 leaq $8(%r15), %r13 + 0x49, 0x83, 0xc0, 0x08, //0x000028aa addq $8, %r8 + 0x49, 0x8d, 0x5a, 0xf8, //0x000028ae leaq $-8(%r10), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000028b2 cmpq $4, %rbx + 0x0f, 0x8d, 0x85, 0x00, 0x00, 0x00, //0x000028b6 jge LBB11_28 + 0xe9, 0x93, 0x00, 0x00, 0x00, //0x000028bc jmp LBB11_29 + //0x000028c1 LBB11_45 + 0x4d, 0x29, 0xe7, //0x000028c1 subq %r12, %r15 + 0x49, 0x29, 0xc7, //0x000028c4 subq %rax, %r15 + 0x4c, 0x8d, 0x1d, 0x12, 0xe5, 0x00, 0x00, //0x000028c7 leaq $58642(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4d, 0x85, 0xff, //0x000028ce testq %r15, %r15 + 0x0f, 0x89, 0x09, 0x01, 0x00, 0x00, //0x000028d1 jns LBB11_49 + 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000028d7 jmp LBB11_48 + //0x000028dc LBB11_35 + 0x4d, 0x89, 0xfa, //0x000028dc movq %r15, %r10 + 0x4c, 0x89, 0xeb, //0x000028df movq %r13, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000028e2 cmpq $4, %rbx + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000028e6 jl LBB11_39 + //0x000028ec LBB11_38 + 0x41, 0x8b, 0x02, //0x000028ec movl (%r10), %eax + 0x41, 0x89, 0x00, //0x000028ef movl %eax, (%r8) + 0x49, 0x83, 0xc2, 0x04, //0x000028f2 addq $4, %r10 + 0x49, 0x83, 0xc0, 0x04, //0x000028f6 addq $4, %r8 + 0x48, 0x83, 0xc3, 0xfc, //0x000028fa addq $-4, %rbx + //0x000028fe LBB11_39 + 0x48, 0x83, 0xfb, 0x02, //0x000028fe cmpq $2, %rbx + 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x00002902 jae LBB11_40 + 0x48, 0x85, 0xdb, //0x00002908 testq %rbx, %rbx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000290b je LBB11_43 + //0x00002911 LBB11_42 + 0x41, 0x8a, 0x02, //0x00002911 movb (%r10), %al + 0x41, 0x88, 0x00, //0x00002914 movb %al, (%r8) + //0x00002917 LBB11_43 + 0x4d, 0x01, 0xfd, //0x00002917 addq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x0000291a notq %r13 + 0x4d, 0x01, 0xe5, //0x0000291d addq %r12, %r13 + 0x4d, 0x89, 0xef, //0x00002920 movq %r13, %r15 + 0x4d, 0x85, 0xff, //0x00002923 testq %r15, %r15 + 0x0f, 0x89, 0xb4, 0x00, 0x00, 0x00, //0x00002926 jns LBB11_49 + 0xe9, 0xd4, 0x01, 0x00, 0x00, //0x0000292c jmp LBB11_48 + //0x00002931 LBB11_25 + 0x4d, 0x89, 0xfd, //0x00002931 movq %r15, %r13 + 0x4c, 0x89, 0xd3, //0x00002934 movq %r10, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00002937 cmpq $4, %rbx + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x0000293b jl LBB11_29 + //0x00002941 LBB11_28 + 0x41, 0x8b, 0x45, 0x00, //0x00002941 movl (%r13), %eax + 0x41, 0x89, 0x00, //0x00002945 movl %eax, (%r8) + 0x49, 0x83, 0xc5, 0x04, //0x00002948 addq $4, %r13 + 0x49, 0x83, 0xc0, 0x04, //0x0000294c addq $4, %r8 + 0x48, 0x83, 0xc3, 0xfc, //0x00002950 addq $-4, %rbx + //0x00002954 LBB11_29 + 0x48, 0x83, 0xfb, 0x02, //0x00002954 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002958 jae LBB11_30 + 0x48, 0x85, 0xdb, //0x0000295e testq %rbx, %rbx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002961 je LBB11_33 + //0x00002967 LBB11_32 + 0x41, 0x8a, 0x45, 0x00, //0x00002967 movb (%r13), %al + 0x41, 0x88, 0x00, //0x0000296b movb %al, (%r8) + //0x0000296e LBB11_33 + 0x4d, 0x29, 0xe7, //0x0000296e subq %r12, %r15 + 0x4d, 0x01, 0xd7, //0x00002971 addq %r10, %r15 + 0x4d, 0x85, 0xff, //0x00002974 testq %r15, %r15 + 0x0f, 0x89, 0x63, 0x00, 0x00, 0x00, //0x00002977 jns LBB11_49 + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000297d jmp LBB11_48 + //0x00002982 LBB11_40 + 0x41, 0x0f, 0xb7, 0x02, //0x00002982 movzwl (%r10), %eax + 0x66, 0x41, 0x89, 0x00, //0x00002986 movw %ax, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x0000298a addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x0000298e addq $2, %r8 + 0x48, 0x83, 0xc3, 0xfe, //0x00002992 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x00002996 testq %rbx, %rbx + 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00002999 jne LBB11_42 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000299f jmp LBB11_43 + //0x000029a4 LBB11_30 + 0x41, 0x0f, 0xb7, 0x45, 0x00, //0x000029a4 movzwl (%r13), %eax + 0x66, 0x41, 0x89, 0x00, //0x000029a9 movw %ax, (%r8) + 0x49, 0x83, 0xc5, 0x02, //0x000029ad addq $2, %r13 + 0x49, 0x83, 0xc0, 0x02, //0x000029b1 addq $2, %r8 + 0x48, 0x83, 0xc3, 0xfe, //0x000029b5 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x000029b9 testq %rbx, %rbx + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x000029bc jne LBB11_32 + 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000029c2 jmp LBB11_33 + //0x000029c7 LBB11_22 + 0x4d, 0x29, 0xe7, //0x000029c7 subq %r12, %r15 + 0x4d, 0x85, 0xff, //0x000029ca testq %r15, %r15 + 0x0f, 0x88, 0x32, 0x01, 0x00, 0x00, //0x000029cd js LBB11_48 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029d3 .p2align 4, 0x90 + //0x000029e0 LBB11_49 + 0x4d, 0x01, 0xfc, //0x000029e0 addq %r15, %r12 + 0x4d, 0x01, 0xfe, //0x000029e3 addq %r15, %r14 + 0x4c, 0x29, 0xfe, //0x000029e6 subq %r15, %rsi + 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000029e9 jle LBB11_50 + 0x4d, 0x29, 0xf9, //0x000029ef subq %r15, %r9 + 0x41, 0x8a, 0x0c, 0x24, //0x000029f2 movb (%r12), %cl + 0x80, 0xf9, 0xe2, //0x000029f6 cmpb $-30, %cl + 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x000029f9 je LBB11_53 + 0x4c, 0x89, 0xe0, //0x000029ff movq %r12, %rax + //0x00002a02 LBB11_57 + 0x0f, 0xb6, 0xc9, //0x00002a02 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00002a05 shlq $4, %rcx + 0x4a, 0x8b, 0x14, 0x19, //0x00002a09 movq (%rcx,%r11), %rdx + 0x4c, 0x63, 0xfa, //0x00002a0d movslq %edx, %r15 + 0x4d, 0x29, 0xf9, //0x00002a10 subq %r15, %r9 + 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x00002a13 jl LBB11_58 + 0x48, 0xc1, 0xe2, 0x20, //0x00002a19 shlq $32, %rdx + 0x4e, 0x8d, 0x14, 0x19, //0x00002a1d leaq (%rcx,%r11), %r10 + 0x49, 0x83, 0xc2, 0x08, //0x00002a21 addq $8, %r10 + 0x48, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002a25 movabsq $12884901889, %rbx + 0x48, 0x39, 0xda, //0x00002a2f cmpq %rbx, %rdx + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002a32 jl LBB11_62 + 0x41, 0x8b, 0x12, //0x00002a38 movl (%r10), %edx + 0x41, 0x89, 0x16, //0x00002a3b movl %edx, (%r14) + 0x4e, 0x8d, 0x14, 0x19, //0x00002a3e leaq (%rcx,%r11), %r10 + 0x49, 0x83, 0xc2, 0x0c, //0x00002a42 addq $12, %r10 + 0x4d, 0x8d, 0x46, 0x04, //0x00002a46 leaq $4(%r14), %r8 + 0x49, 0x8d, 0x4f, 0xfc, //0x00002a4a leaq $-4(%r15), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00002a4e cmpq $2, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00002a52 jae LBB11_65 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002a58 jmp LBB11_66 + 0x90, 0x90, 0x90, //0x00002a5d .p2align 4, 0x90 + //0x00002a60 LBB11_62 + 0x4d, 0x89, 0xf0, //0x00002a60 movq %r14, %r8 + 0x4c, 0x89, 0xf9, //0x00002a63 movq %r15, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00002a66 cmpq $2, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002a6a jb LBB11_66 + //0x00002a70 LBB11_65 + 0x41, 0x0f, 0xb7, 0x12, //0x00002a70 movzwl (%r10), %edx + 0x66, 0x41, 0x89, 0x10, //0x00002a74 movw %dx, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x00002a78 addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x00002a7c addq $2, %r8 + 0x48, 0x83, 0xc1, 0xfe, //0x00002a80 addq $-2, %rcx + //0x00002a84 LBB11_66 + 0x48, 0x85, 0xc9, //0x00002a84 testq %rcx, %rcx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002a87 je LBB11_68 + 0x41, 0x8a, 0x0a, //0x00002a8d movb (%r10), %cl + 0x41, 0x88, 0x08, //0x00002a90 movb %cl, (%r8) + //0x00002a93 LBB11_68 + 0x4d, 0x01, 0xfe, //0x00002a93 addq %r15, %r14 + //0x00002a96 LBB11_69 + 0x48, 0x83, 0xc0, 0x01, //0x00002a96 addq $1, %rax + 0x48, 0x8d, 0x4e, 0xff, //0x00002a9a leaq $-1(%rsi), %rcx + 0x49, 0x89, 0xc4, //0x00002a9e movq %rax, %r12 + 0x48, 0x83, 0xfe, 0x01, //0x00002aa1 cmpq $1, %rsi + 0x48, 0x89, 0xce, //0x00002aa5 movq %rcx, %rsi + 0x0f, 0x8f, 0x12, 0xfc, 0xff, 0xff, //0x00002aa8 jg LBB11_2 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002aae jmp LBB11_70 + //0x00002ab3 LBB11_53 + 0x48, 0x83, 0xfe, 0x03, //0x00002ab3 cmpq $3, %rsi + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00002ab7 jl LBB11_59 + 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x00002abd cmpb $-128, $1(%r12) + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x00002ac3 jne LBB11_59 + 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x00002ac9 movb $2(%r12), %cl + 0x89, 0xc8, //0x00002ace movl %ecx, %eax + 0x24, 0xfe, //0x00002ad0 andb $-2, %al + 0x3c, 0xa8, //0x00002ad2 cmpb $-88, %al + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002ad4 jne LBB11_59 + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00002ada leaq $2(%r12), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002adf addq $-2, %rsi + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00002ae3 jmp LBB11_57 + //0x00002ae8 LBB11_59 + 0x4d, 0x85, 0xc9, //0x00002ae8 testq %r9, %r9 + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002aeb jle LBB11_3 + 0x41, 0xc6, 0x06, 0xe2, //0x00002af1 movb $-30, (%r14) + 0x49, 0x83, 0xc6, 0x01, //0x00002af5 addq $1, %r14 + 0x49, 0x83, 0xc1, 0xff, //0x00002af9 addq $-1, %r9 + 0x4c, 0x89, 0xe0, //0x00002afd movq %r12, %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00002b00 jmp LBB11_69 + //0x00002b05 LBB11_48 + 0x48, 0x8b, 0x4d, 0xd0, //0x00002b05 movq $-48(%rbp), %rcx + 0x4c, 0x01, 0xf9, //0x00002b09 addq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00002b0c notq %rcx + 0x4c, 0x01, 0xf1, //0x00002b0f addq %r14, %rcx + 0x48, 0x8b, 0x45, 0xc8, //0x00002b12 movq $-56(%rbp), %rax + 0x48, 0x89, 0x08, //0x00002b16 movq %rcx, (%rax) + 0x4c, 0x29, 0xe7, //0x00002b19 subq %r12, %rdi + 0x4c, 0x01, 0xff, //0x00002b1c addq %r15, %rdi + 0x48, 0x89, 0xf8, //0x00002b1f movq %rdi, %rax + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002b22 jmp LBB11_71 + //0x00002b27 LBB11_50 + 0x4c, 0x89, 0xe0, //0x00002b27 movq %r12, %rax + //0x00002b2a LBB11_70 + 0x4c, 0x2b, 0x75, 0xd0, //0x00002b2a subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x00002b2e movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x00002b32 movq %r14, (%rcx) + 0x48, 0x29, 0xf8, //0x00002b35 subq %rdi, %rax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00002b38 jmp LBB11_71 + //0x00002b3d LBB11_58 + 0x4c, 0x2b, 0x75, 0xd0, //0x00002b3d subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00002b41 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00002b45 movq %r14, (%rax) + //0x00002b48 LBB11_3 + 0x49, 0xf7, 0xd4, //0x00002b48 notq %r12 + 0x49, 0x01, 0xfc, //0x00002b4b addq %rdi, %r12 + 0x4c, 0x89, 0xe0, //0x00002b4e movq %r12, %rax + //0x00002b51 LBB11_71 + 0x48, 0x83, 0xc4, 0x10, //0x00002b51 addq $16, %rsp + 0x5b, //0x00002b55 popq %rbx + 0x41, 0x5c, //0x00002b56 popq %r12 + 0x41, 0x5d, //0x00002b58 popq %r13 + 0x41, 0x5e, //0x00002b5a popq %r14 + 0x41, 0x5f, //0x00002b5c popq %r15 + 0x5d, //0x00002b5e popq %rbp + 0xc3, //0x00002b5f retq + //0x00002b60 .p2align 4, 0x90 + //0x00002b60 _atof_eisel_lemire64 + 0x55, //0x00002b60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002b61 movq %rsp, %rbp + 0x41, 0x57, //0x00002b64 pushq %r15 + 0x41, 0x56, //0x00002b66 pushq %r14 + 0x41, 0x54, //0x00002b68 pushq %r12 + 0x53, //0x00002b6a pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00002b6b leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00002b71 cmpl $695, %eax + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00002b76 ja LBB12_1 + 0x49, 0x89, 0xc8, //0x00002b7c movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x00002b7f movl %edx, %r9d + 0x48, 0x85, 0xff, //0x00002b82 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002b85 je LBB12_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x00002b8b bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x00002b8f xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002b93 jmp LBB12_5 + //0x00002b98 LBB12_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002b98 movl $64, %r10d + //0x00002b9e LBB12_5 + 0x44, 0x89, 0xd1, //0x00002b9e movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x00002ba1 shlq %cl, %rdi + 0x89, 0xc1, //0x00002ba4 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00002ba6 shlq $4, %rcx + 0x4c, 0x8d, 0x25, 0x7f, 0x6c, 0x00, 0x00, //0x00002baa leaq $27775(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x00002bb1 movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00002bb4 mulq $8(%rcx,%r12) + 0x49, 0x89, 0xc7, //0x00002bb9 movq %rax, %r15 + 0x49, 0x89, 0xd3, //0x00002bbc movq %rdx, %r11 + 0x44, 0x89, 0xdb, //0x00002bbf movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002bc2 andl $511, %ebx + 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00002bc8 cmpq $511, %rbx + 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x00002bcf jne LBB12_11 + 0x49, 0x89, 0xfe, //0x00002bd5 movq %rdi, %r14 + 0x49, 0xf7, 0xd6, //0x00002bd8 notq %r14 + 0x4c, 0x89, 0xfa, //0x00002bdb movq %r15, %rdx + 0x4d, 0x39, 0xf7, //0x00002bde cmpq %r14, %r15 + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00002be1 jbe LBB12_13 + 0x48, 0x89, 0xf8, //0x00002be7 movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x21, //0x00002bea mulq (%rcx,%r12) + 0x4c, 0x01, 0xfa, //0x00002bee addq %r15, %rdx + 0x49, 0x83, 0xd3, 0x00, //0x00002bf1 adcq $0, %r11 + 0x44, 0x89, 0xd9, //0x00002bf5 movl %r11d, %ecx + 0xf7, 0xd1, //0x00002bf8 notl %ecx + 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x00002bfa testl $511, %ecx + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002c00 jne LBB12_12 + 0x48, 0x83, 0xfa, 0xff, //0x00002c06 cmpq $-1, %rdx + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002c0a jne LBB12_12 + 0x4c, 0x39, 0xf0, //0x00002c10 cmpq %r14, %rax + 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00002c13 ja LBB12_1 + //0x00002c19 LBB12_12 + 0x44, 0x89, 0xdb, //0x00002c19 movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002c1c andl $511, %ebx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002c22 jmp LBB12_13 + //0x00002c27 LBB12_11 + 0x4c, 0x89, 0xfa, //0x00002c27 movq %r15, %rdx + //0x00002c2a LBB12_13 + 0x4c, 0x89, 0xd8, //0x00002c2a movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00002c2d shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00002c31 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x00002c34 shrq %cl, %r11 + 0x48, 0x85, 0xd2, //0x00002c37 testq %rdx, %rdx + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c3a jne LBB12_17 + 0x48, 0x85, 0xdb, //0x00002c40 testq %rbx, %rbx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002c43 jne LBB12_17 + 0x44, 0x89, 0xd9, //0x00002c49 movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x00002c4c andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00002c4f cmpl $1, %ecx + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00002c52 je LBB12_1 + //0x00002c58 LBB12_17 + 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x00002c58 imull $217706, %esi, %ecx + 0xc1, 0xf9, 0x10, //0x00002c5e sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00002c61 addl $1087, %ecx + 0x48, 0x63, 0xf1, //0x00002c67 movslq %ecx, %rsi + 0x4c, 0x29, 0xd6, //0x00002c6a subq %r10, %rsi + 0x44, 0x89, 0xda, //0x00002c6d movl %r11d, %edx + 0x83, 0xe2, 0x01, //0x00002c70 andl $1, %edx + 0x4c, 0x01, 0xda, //0x00002c73 addq %r11, %rdx + 0x48, 0x89, 0xd1, //0x00002c76 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x36, //0x00002c79 shrq $54, %rcx + 0x48, 0x01, 0xf0, //0x00002c7d addq %rsi, %rax + 0x48, 0x83, 0xf9, 0x01, //0x00002c80 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0x00, //0x00002c84 sbbq $0, %rax + 0x48, 0x8d, 0x70, 0xff, //0x00002c88 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00002c8c cmpq $2045, %rsi + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x00002c93 jbe LBB12_19 + //0x00002c99 LBB12_1 + 0x31, 0xc0, //0x00002c99 xorl %eax, %eax + //0x00002c9b LBB12_20 + 0x5b, //0x00002c9b popq %rbx + 0x41, 0x5c, //0x00002c9c popq %r12 + 0x41, 0x5e, //0x00002c9e popq %r14 + 0x41, 0x5f, //0x00002ca0 popq %r15 + 0x5d, //0x00002ca2 popq %rbp + 0xc3, //0x00002ca3 retq + //0x00002ca4 LBB12_19 + 0x48, 0x83, 0xf9, 0x01, //0x00002ca4 cmpq $1, %rcx + 0xb1, 0x02, //0x00002ca8 movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002caa sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00002cad shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00002cb0 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002cb4 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00002cbe andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00002cc1 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002cc4 movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002cce orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002cd1 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x00002cd5 cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002cd9 movq %rax, (%r8) + 0xb0, 0x01, //0x00002cdc movb $1, %al + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00002cde jmp LBB12_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002ce3 .p2align 4, 0x90 + //0x00002cf0 _decimal_to_f64 + 0x55, //0x00002cf0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002cf1 movq %rsp, %rbp + 0x41, 0x57, //0x00002cf4 pushq %r15 + 0x41, 0x56, //0x00002cf6 pushq %r14 + 0x41, 0x55, //0x00002cf8 pushq %r13 + 0x41, 0x54, //0x00002cfa pushq %r12 + 0x53, //0x00002cfc pushq %rbx + 0x50, //0x00002cfd pushq %rax + 0x48, 0x89, 0xf3, //0x00002cfe movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00002d01 movq %rdi, %r15 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002d04 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x00002d0e cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002d12 je LBB13_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002d18 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x47, 0x14, //0x00002d22 movl $20(%r15), %eax + 0x45, 0x31, 0xe4, //0x00002d26 xorl %r12d, %r12d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x00002d29 cmpl $310, %eax + 0x0f, 0x8f, 0x4e, 0x03, 0x00, 0x00, //0x00002d2e jg LBB13_64 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002d34 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x00002d39 jge LBB13_5 + 0x45, 0x31, 0xf6, //0x00002d3f xorl %r14d, %r14d + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00002d42 jmp LBB13_64 + //0x00002d47 LBB13_4 + 0x45, 0x31, 0xf6, //0x00002d47 xorl %r14d, %r14d + 0x45, 0x31, 0xe4, //0x00002d4a xorl %r12d, %r12d + 0xe9, 0x30, 0x03, 0x00, 0x00, //0x00002d4d jmp LBB13_64 + //0x00002d52 LBB13_5 + 0x85, 0xc0, //0x00002d52 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x00002d54 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00002d58 jle LBB13_12 + 0x45, 0x31, 0xe4, //0x00002d5e xorl %r12d, %r12d + 0x4c, 0x8d, 0x35, 0x58, 0x96, 0x00, 0x00, //0x00002d61 leaq $38488(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d68 jmp LBB13_8 + 0x90, 0x90, 0x90, //0x00002d6d .p2align 4, 0x90 + //0x00002d70 LBB13_10 + 0x89, 0xc0, //0x00002d70 movl %eax, %eax + 0x41, 0x8b, 0x1c, 0x86, //0x00002d72 movl (%r14,%rax,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d76 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002d7b je LBB13_7 + //0x00002d81 LBB13_11 + 0x4c, 0x89, 0xff, //0x00002d81 movq %r15, %rdi + 0x89, 0xde, //0x00002d84 movl %ebx, %esi + 0xe8, 0x55, 0x62, 0x00, 0x00, //0x00002d86 callq _right_shift + //0x00002d8b LBB13_7 + 0x41, 0x01, 0xdc, //0x00002d8b addl %ebx, %r12d + 0x41, 0x8b, 0x47, 0x14, //0x00002d8e movl $20(%r15), %eax + 0x85, 0xc0, //0x00002d92 testl %eax, %eax + 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00002d94 jle LBB13_12 + //0x00002d9a LBB13_8 + 0x83, 0xf8, 0x08, //0x00002d9a cmpl $8, %eax + 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x00002d9d jle LBB13_10 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002da3 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002da8 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002dad jne LBB13_11 + 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00002db3 jmp LBB13_7 + //0x00002db8 LBB13_12 + 0x4c, 0x8d, 0x35, 0x01, 0x96, 0x00, 0x00, //0x00002db8 leaq $38401(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002dbf jmp LBB13_14 + //0x00002dc4 LBB13_18 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002dc4 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002dc9 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002dce je LBB13_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002dd4 .p2align 4, 0x90 + //0x00002de0 LBB13_20 + 0x4c, 0x89, 0xff, //0x00002de0 movq %r15, %rdi + 0x89, 0xde, //0x00002de3 movl %ebx, %esi + 0xe8, 0xd6, 0x5f, 0x00, 0x00, //0x00002de5 callq _left_shift + 0x41, 0x8b, 0x47, 0x14, //0x00002dea movl $20(%r15), %eax + //0x00002dee LBB13_13 + 0x41, 0x29, 0xdc, //0x00002dee subl %ebx, %r12d + //0x00002df1 LBB13_14 + 0x85, 0xc0, //0x00002df1 testl %eax, %eax + 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x00002df3 js LBB13_17 + 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x00002df9 jne LBB13_21 + 0x49, 0x8b, 0x0f, //0x00002dff movq (%r15), %rcx + 0x80, 0x39, 0x35, //0x00002e02 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002e05 jl LBB13_19 + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x00002e0b jmp LBB13_21 + //0x00002e10 .p2align 4, 0x90 + //0x00002e10 LBB13_17 + 0x83, 0xf8, 0xf8, //0x00002e10 cmpl $-8, %eax + 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x00002e13 jl LBB13_18 + //0x00002e19 LBB13_19 + 0x89, 0xc1, //0x00002e19 movl %eax, %ecx + 0xf7, 0xd9, //0x00002e1b negl %ecx + 0x41, 0x8b, 0x1c, 0x8e, //0x00002e1d movl (%r14,%rcx,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e21 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x00002e26 jne LBB13_20 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002e2c jmp LBB13_13 + //0x00002e31 LBB13_21 + 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x00002e31 cmpl $-1022, %r12d + 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x00002e38 jg LBB13_27 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e3e cmpl $0, $16(%r15) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e43 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00002e47 je LBB13_29 + 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x00002e4d cmpl $-1082, %r12d + 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00002e54 jg LBB13_30 + 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x00002e5a addl $961, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e61 .p2align 4, 0x90 + //0x00002e70 LBB13_25 + 0x4c, 0x89, 0xff, //0x00002e70 movq %r15, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002e73 movl $60, %esi + 0xe8, 0x63, 0x61, 0x00, 0x00, //0x00002e78 callq _right_shift + 0x41, 0x83, 0xc4, 0x3c, //0x00002e7d addl $60, %r12d + 0x41, 0x83, 0xfc, 0x88, //0x00002e81 cmpl $-120, %r12d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002e85 jl LBB13_25 + 0x41, 0x83, 0xc4, 0x3c, //0x00002e8b addl $60, %r12d + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002e8f jmp LBB13_31 + //0x00002e94 LBB13_27 + 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00002e94 cmpl $1024, %r12d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e9b movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0xa5, 0x01, 0x00, 0x00, //0x00002e9f jg LBB13_61 + 0x41, 0x83, 0xc4, 0xff, //0x00002ea5 addl $-1, %r12d + 0x45, 0x89, 0xe6, //0x00002ea9 movl %r12d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002eac jmp LBB13_32 + //0x00002eb1 LBB13_29 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002eb1 movl $-1022, %r14d + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00002eb7 jmp LBB13_34 + //0x00002ebc LBB13_30 + 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x00002ebc addl $1021, %r12d + //0x00002ec3 LBB13_31 + 0x41, 0xf7, 0xdc, //0x00002ec3 negl %r12d + 0x4c, 0x89, 0xff, //0x00002ec6 movq %r15, %rdi + 0x44, 0x89, 0xe6, //0x00002ec9 movl %r12d, %esi + 0xe8, 0x0f, 0x61, 0x00, 0x00, //0x00002ecc callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002ed1 movl $-1022, %r14d + //0x00002ed7 LBB13_32 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002ed7 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002edc je LBB13_34 + 0x4c, 0x89, 0xff, //0x00002ee2 movq %r15, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002ee5 movl $53, %esi + 0xe8, 0xd1, 0x5e, 0x00, 0x00, //0x00002eea callq _left_shift + //0x00002eef LBB13_34 + 0x41, 0x8b, 0x47, 0x14, //0x00002eef movl $20(%r15), %eax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ef3 movq $-1, %r12 + 0x83, 0xf8, 0x14, //0x00002efa cmpl $20, %eax + 0x0f, 0x8f, 0x60, 0x01, 0x00, 0x00, //0x00002efd jg LBB13_63 + 0x85, 0xc0, //0x00002f03 testl %eax, %eax + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002f05 jle LBB13_40 + 0x41, 0x8b, 0x57, 0x10, //0x00002f0b movl $16(%r15), %edx + 0x31, 0xf6, //0x00002f0f xorl %esi, %esi + 0x85, 0xd2, //0x00002f11 testl %edx, %edx + 0x0f, 0x4e, 0xd6, //0x00002f13 cmovlel %esi, %edx + 0x4c, 0x8d, 0x48, 0xff, //0x00002f16 leaq $-1(%rax), %r9 + 0x49, 0x39, 0xd1, //0x00002f1a cmpq %rdx, %r9 + 0x4c, 0x0f, 0x43, 0xca, //0x00002f1d cmovaeq %rdx, %r9 + 0x45, 0x8d, 0x41, 0x01, //0x00002f21 leal $1(%r9), %r8d + 0x45, 0x31, 0xe4, //0x00002f25 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f28 .p2align 4, 0x90 + //0x00002f30 LBB13_37 + 0x48, 0x39, 0xf2, //0x00002f30 cmpq %rsi, %rdx + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002f33 je LBB13_41 + 0x4b, 0x8d, 0x3c, 0xa4, //0x00002f39 leaq (%r12,%r12,4), %rdi + 0x49, 0x8b, 0x0f, //0x00002f3d movq (%r15), %rcx + 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x00002f40 movsbq (%rcx,%rsi), %rcx + 0x4c, 0x8d, 0x24, 0x79, //0x00002f45 leaq (%rcx,%rdi,2), %r12 + 0x49, 0x83, 0xc4, 0xd0, //0x00002f49 addq $-48, %r12 + 0x48, 0x83, 0xc6, 0x01, //0x00002f4d addq $1, %rsi + 0x48, 0x39, 0xf0, //0x00002f51 cmpq %rsi, %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00002f54 jne LBB13_37 + 0x45, 0x89, 0xc1, //0x00002f5a movl %r8d, %r9d + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002f5d jmp LBB13_41 + //0x00002f62 LBB13_40 + 0x45, 0x31, 0xc9, //0x00002f62 xorl %r9d, %r9d + 0x45, 0x31, 0xe4, //0x00002f65 xorl %r12d, %r12d + //0x00002f68 LBB13_41 + 0x44, 0x39, 0xc8, //0x00002f68 cmpl %r9d, %eax + 0x0f, 0x8e, 0x5f, 0x00, 0x00, 0x00, //0x00002f6b jle LBB13_49 + 0x89, 0xc6, //0x00002f71 movl %eax, %esi + 0x44, 0x29, 0xce, //0x00002f73 subl %r9d, %esi + 0x44, 0x89, 0xca, //0x00002f76 movl %r9d, %edx + 0xf7, 0xd2, //0x00002f79 notl %edx + 0x01, 0xc2, //0x00002f7b addl %eax, %edx + 0x83, 0xe6, 0x07, //0x00002f7d andl $7, %esi + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00002f80 je LBB13_46 + 0xf7, 0xde, //0x00002f86 negl %esi + 0x31, 0xff, //0x00002f88 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f8a .p2align 4, 0x90 + //0x00002f90 LBB13_44 + 0x4d, 0x01, 0xe4, //0x00002f90 addq %r12, %r12 + 0x4f, 0x8d, 0x24, 0xa4, //0x00002f93 leaq (%r12,%r12,4), %r12 + 0x83, 0xc7, 0xff, //0x00002f97 addl $-1, %edi + 0x39, 0xfe, //0x00002f9a cmpl %edi, %esi + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x00002f9c jne LBB13_44 + 0x41, 0x29, 0xf9, //0x00002fa2 subl %edi, %r9d + //0x00002fa5 LBB13_46 + 0x83, 0xfa, 0x07, //0x00002fa5 cmpl $7, %edx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00002fa8 jb LBB13_49 + 0x89, 0xc2, //0x00002fae movl %eax, %edx + 0x44, 0x29, 0xca, //0x00002fb0 subl %r9d, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002fb3 .p2align 4, 0x90 + //0x00002fc0 LBB13_48 + 0x4d, 0x69, 0xe4, 0x00, 0xe1, 0xf5, 0x05, //0x00002fc0 imulq $100000000, %r12, %r12 + 0x83, 0xc2, 0xf8, //0x00002fc7 addl $-8, %edx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002fca jne LBB13_48 + //0x00002fd0 LBB13_49 + 0x85, 0xc0, //0x00002fd0 testl %eax, %eax + 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00002fd2 js LBB13_57 + 0x41, 0x8b, 0x4f, 0x10, //0x00002fd8 movl $16(%r15), %ecx + 0x39, 0xc1, //0x00002fdc cmpl %eax, %ecx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002fde jle LBB13_57 + 0x49, 0x8b, 0x37, //0x00002fe4 movq (%r15), %rsi + 0x8a, 0x14, 0x06, //0x00002fe7 movb (%rsi,%rax), %dl + 0x80, 0xfa, 0x35, //0x00002fea cmpb $53, %dl + 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x00002fed jne LBB13_58 + 0x8d, 0x78, 0x01, //0x00002ff3 leal $1(%rax), %edi + 0x39, 0xcf, //0x00002ff6 cmpl %ecx, %edi + 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00002ff8 jne LBB13_58 + 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00002ffe cmpl $0, $28(%r15) + 0x0f, 0x95, 0xc1, //0x00003003 setne %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00003006 jne LBB13_59 + 0x85, 0xc0, //0x0000300c testl %eax, %eax + 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x0000300e jle LBB13_59 + 0x83, 0xc0, 0xff, //0x00003014 addl $-1, %eax + 0x8a, 0x0c, 0x06, //0x00003017 movb (%rsi,%rax), %cl + 0x80, 0xe1, 0x01, //0x0000301a andb $1, %cl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000301d jmp LBB13_59 + //0x00003022 LBB13_57 + 0x31, 0xc9, //0x00003022 xorl %ecx, %ecx + //0x00003024 LBB13_59 + 0x0f, 0xb6, 0xc1, //0x00003024 movzbl %cl, %eax + 0x49, 0x01, 0xc4, //0x00003027 addq %rax, %r12 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000302a movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc4, //0x00003034 cmpq %rax, %r12 + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003037 jne LBB13_63 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000303d cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003044 jle LBB13_62 + //0x0000304a LBB13_61 + 0x45, 0x31, 0xe4, //0x0000304a xorl %r12d, %r12d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000304d movabsq $9218868437227405312, %r14 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003057 jmp LBB13_64 + //0x0000305c LBB13_62 + 0x41, 0x83, 0xc6, 0x01, //0x0000305c addl $1, %r14d + 0x4d, 0x89, 0xec, //0x00003060 movq %r13, %r12 + //0x00003063 LBB13_63 + 0x4c, 0x89, 0xe0, //0x00003063 movq %r12, %rax + 0x4c, 0x21, 0xe8, //0x00003066 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003069 addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003070 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00003077 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x0000307b testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x0000307e cmoveq %rax, %r14 + //0x00003082 LBB13_64 + 0x49, 0x83, 0xc5, 0xff, //0x00003082 addq $-1, %r13 + 0x4d, 0x21, 0xe5, //0x00003086 andq %r12, %r13 + 0x4d, 0x09, 0xf5, //0x00003089 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000308c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00003096 orq %r13, %rax + 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003099 cmpl $0, $24(%r15) + 0x49, 0x0f, 0x44, 0xc5, //0x0000309e cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x000030a2 movq %rax, (%rbx) + 0x31, 0xc0, //0x000030a5 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x000030a7 addq $8, %rsp + 0x5b, //0x000030ab popq %rbx + 0x41, 0x5c, //0x000030ac popq %r12 + 0x41, 0x5d, //0x000030ae popq %r13 + 0x41, 0x5e, //0x000030b0 popq %r14 + 0x41, 0x5f, //0x000030b2 popq %r15 + 0x5d, //0x000030b4 popq %rbp + 0xc3, //0x000030b5 retq + //0x000030b6 LBB13_58 + 0x80, 0xfa, 0x35, //0x000030b6 cmpb $53, %dl + 0x0f, 0x9d, 0xc1, //0x000030b9 setge %cl + 0xe9, 0x63, 0xff, 0xff, 0xff, //0x000030bc jmp LBB13_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030c1 .p2align 4, 0x90 + //0x000030d0 _atof_native + 0x55, //0x000030d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000030d1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x000030d4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000030d8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x000030e0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x000030e4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x000030e8 testq %rcx, %rcx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000030eb je LBB14_5 + 0xc6, 0x02, 0x00, //0x000030f1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x000030f4 cmpq $1, %rcx + 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x000030f8 je LBB14_5 + 0xc6, 0x42, 0x01, 0x00, //0x000030fe movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00003102 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x00003107 jb LBB14_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x0000310d movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003112 .p2align 4, 0x90 + //0x00003120 LBB14_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00003120 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00003124 movb $0, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00003128 addq $1, %rax + 0x48, 0x39, 0x45, 0xe8, //0x0000312c cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003130 ja LBB14_4 + //0x00003136 LBB14_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00003136 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x0000313a vmovups %xmm0, $-16(%rbp) + 0x31, 0xd2, //0x0000313f xorl %edx, %edx + 0x80, 0x3f, 0x2d, //0x00003141 cmpb $45, (%rdi) + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003144 jne LBB14_7 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x0000314a movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003151 movl $1, %eax + 0x48, 0x39, 0xf0, //0x00003156 cmpq %rsi, %rax + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003159 jl LBB14_8 + 0xe9, 0xab, 0x01, 0x00, 0x00, //0x0000315f jmp LBB14_39 + //0x00003164 LBB14_7 + 0x31, 0xc0, //0x00003164 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00003166 cmpq %rsi, %rax + 0x0f, 0x8d, 0xa0, 0x01, 0x00, 0x00, //0x00003169 jge LBB14_39 + //0x0000316f LBB14_8 + 0x41, 0xb3, 0x01, //0x0000316f movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00003172 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00003175 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00003178 xorl %r8d, %r8d + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x0000317b jmp LBB14_12 + //0x00003180 LBB14_20 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003180 movl $1, $-4(%rbp) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003187 .p2align 4, 0x90 + //0x00003190 LBB14_11 + 0x48, 0x83, 0xc0, 0x01, //0x00003190 addq $1, %rax + 0x48, 0x39, 0xf0, //0x00003194 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00003197 setl %r11b + 0x48, 0x39, 0xc6, //0x0000319b cmpq %rax, %rsi + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000319e je LBB14_22 + //0x000031a4 LBB14_12 + 0x0f, 0xb6, 0x0c, 0x07, //0x000031a4 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x000031a8 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x000031ab cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x000031ae ja LBB14_17 + 0x80, 0xf9, 0x30, //0x000031b4 cmpb $48, %cl + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x000031b7 jne LBB14_19 + 0x45, 0x85, 0xd2, //0x000031bd testl %r10d, %r10d + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x000031c0 je LBB14_21 + 0x4d, 0x63, 0xd9, //0x000031c6 movslq %r9d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x000031c9 cmpq %r11, $-24(%rbp) + 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000031cd ja LBB14_9 + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000031d3 jmp LBB14_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031d8 .p2align 4, 0x90 + //0x000031e0 LBB14_17 + 0x80, 0xf9, 0x2e, //0x000031e0 cmpb $46, %cl + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000031e3 jne LBB14_23 + 0x44, 0x89, 0x55, 0xf4, //0x000031e9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000031ed movl $1, %r8d + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000031f3 jmp LBB14_11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031f8 .p2align 4, 0x90 + //0x00003200 LBB14_19 + 0x4d, 0x63, 0xda, //0x00003200 movslq %r10d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x00003203 cmpq %r11, $-24(%rbp) + 0x0f, 0x86, 0x73, 0xff, 0xff, 0xff, //0x00003207 jbe LBB14_20 + //0x0000320d LBB14_9 + 0x48, 0x8b, 0x55, 0xe0, //0x0000320d movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x1a, //0x00003211 movb %cl, (%rdx,%r11) + 0x44, 0x8b, 0x4d, 0xf0, //0x00003215 movl $-16(%rbp), %r9d + 0x41, 0x83, 0xc1, 0x01, //0x00003219 addl $1, %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x0000321d movl %r9d, $-16(%rbp) + //0x00003221 LBB14_10 + 0x45, 0x89, 0xca, //0x00003221 movl %r9d, %r10d + 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003224 jmp LBB14_11 + //0x00003229 LBB14_21 + 0x83, 0x45, 0xf4, 0xff, //0x00003229 addl $-1, $-12(%rbp) + 0x45, 0x31, 0xd2, //0x0000322d xorl %r10d, %r10d + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003230 jmp LBB14_11 + //0x00003235 LBB14_22 + 0x48, 0x89, 0xf0, //0x00003235 movq %rsi, %rax + //0x00003238 LBB14_23 + 0x45, 0x85, 0xc0, //0x00003238 testl %r8d, %r8d + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000323b je LBB14_25 + 0x41, 0xf6, 0xc3, 0x01, //0x00003241 testb $1, %r11b + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003245 jne LBB14_26 + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000324b jmp LBB14_40 + //0x00003250 LBB14_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00003250 movl %r9d, $-12(%rbp) + 0x41, 0xf6, 0xc3, 0x01, //0x00003254 testb $1, %r11b + 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003258 je LBB14_40 + //0x0000325e LBB14_26 + 0x89, 0xc2, //0x0000325e movl %eax, %edx + 0x8a, 0x0c, 0x17, //0x00003260 movb (%rdi,%rdx), %cl + 0x80, 0xc9, 0x20, //0x00003263 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00003266 cmpb $101, %cl + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003269 jne LBB14_40 + 0x8a, 0x4c, 0x17, 0x01, //0x0000326f movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00003273 cmpb $45, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003276 je LBB14_30 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000327c movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00003282 cmpb $43, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003285 jne LBB14_32 + 0x83, 0xc0, 0x02, //0x0000328b addl $2, %eax + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000328e jmp LBB14_31 + //0x00003293 LBB14_30 + 0x83, 0xc0, 0x02, //0x00003293 addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003296 movl $-1, %r8d + //0x0000329c LBB14_31 + 0x89, 0xc2, //0x0000329c movl %eax, %edx + 0x48, 0x63, 0xc2, //0x0000329e movslq %edx, %rax + 0x31, 0xd2, //0x000032a1 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x000032a3 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x000032a6 jl LBB14_33 + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x000032ac jmp LBB14_38 + //0x000032b1 LBB14_32 + 0x48, 0x83, 0xc2, 0x01, //0x000032b1 addq $1, %rdx + 0x48, 0x63, 0xc2, //0x000032b5 movslq %edx, %rax + 0x31, 0xd2, //0x000032b8 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x000032ba cmpq %rsi, %rax + 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x000032bd jge LBB14_38 + //0x000032c3 LBB14_33 + 0x31, 0xd2, //0x000032c3 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032c5 .p2align 4, 0x90 + //0x000032d0 LBB14_34 + 0x0f, 0xbe, 0x0c, 0x07, //0x000032d0 movsbl (%rdi,%rax), %ecx + 0x83, 0xf9, 0x30, //0x000032d4 cmpl $48, %ecx + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000032d7 jl LBB14_38 + 0x80, 0xf9, 0x39, //0x000032dd cmpb $57, %cl + 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x000032e0 jg LBB14_38 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000032e6 cmpl $9999, %edx + 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x000032ec jg LBB14_38 + 0x8d, 0x14, 0x92, //0x000032f2 leal (%rdx,%rdx,4), %edx + 0x8d, 0x14, 0x51, //0x000032f5 leal (%rcx,%rdx,2), %edx + 0x83, 0xc2, 0xd0, //0x000032f8 addl $-48, %edx + 0x48, 0x83, 0xc0, 0x01, //0x000032fb addq $1, %rax + 0x48, 0x39, 0xc6, //0x000032ff cmpq %rax, %rsi + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00003302 jne LBB14_34 + //0x00003308 LBB14_38 + 0x41, 0x0f, 0xaf, 0xd0, //0x00003308 imull %r8d, %edx + 0x03, 0x55, 0xf4, //0x0000330c addl $-12(%rbp), %edx + //0x0000330f LBB14_39 + 0x89, 0x55, 0xf4, //0x0000330f movl %edx, $-12(%rbp) + //0x00003312 LBB14_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003312 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00003316 leaq $-40(%rbp), %rsi + 0xe8, 0xd1, 0xf9, 0xff, 0xff, //0x0000331a callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x0000331f vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x00003324 addq $48, %rsp + 0x5d, //0x00003328 popq %rbp + 0xc3, //0x00003329 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000332a .p2align 4, 0x90 + //0x00003330 _value + 0x55, //0x00003330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003331 movq %rsp, %rbp + 0x41, 0x57, //0x00003334 pushq %r15 + 0x41, 0x56, //0x00003336 pushq %r14 + 0x41, 0x55, //0x00003338 pushq %r13 + 0x41, 0x54, //0x0000333a pushq %r12 + 0x53, //0x0000333c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000333d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003341 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003344 movq %rdx, %r12 + 0x49, 0x89, 0xf5, //0x00003347 movq %rsi, %r13 + 0x49, 0x89, 0xff, //0x0000334a movq %rdi, %r15 + 0x48, 0x89, 0x7d, 0xb8, //0x0000334d movq %rdi, $-72(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x00003351 movq %rsi, $-64(%rbp) + 0x48, 0x39, 0xf2, //0x00003355 cmpq %rsi, %rdx + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00003358 jae LBB15_5 + 0x43, 0x8a, 0x04, 0x27, //0x0000335e movb (%r15,%r12), %al + 0x3c, 0x0d, //0x00003362 cmpb $13, %al + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00003364 je LBB15_5 + 0x3c, 0x20, //0x0000336a cmpb $32, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000336c je LBB15_5 + 0x8d, 0x48, 0xf7, //0x00003372 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x00003375 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003378 jbe LBB15_5 + 0x4c, 0x89, 0xe3, //0x0000337e movq %r12, %rbx + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00003381 jmp LBB15_27 + //0x00003386 LBB15_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003386 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x0000338b cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000338e jae LBB15_9 + 0x41, 0x8a, 0x04, 0x1f, //0x00003394 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x00003398 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000339a je LBB15_9 + 0x3c, 0x20, //0x000033a0 cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033a2 je LBB15_9 + 0x8d, 0x48, 0xf7, //0x000033a8 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000033ab cmpb $1, %cl + 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x000033ae ja LBB15_27 + //0x000033b4 LBB15_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x000033b4 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x000033b9 cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033bc jae LBB15_13 + 0x41, 0x8a, 0x04, 0x1f, //0x000033c2 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x000033c6 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033c8 je LBB15_13 + 0x3c, 0x20, //0x000033ce cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033d0 je LBB15_13 + 0x8d, 0x48, 0xf7, //0x000033d6 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000033d9 cmpb $1, %cl + 0x0f, 0x87, 0xad, 0x00, 0x00, 0x00, //0x000033dc ja LBB15_27 + //0x000033e2 LBB15_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000033e2 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x000033e7 cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033ea jae LBB15_17 + 0x41, 0x8a, 0x04, 0x1f, //0x000033f0 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x000033f4 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033f6 je LBB15_17 + 0x3c, 0x20, //0x000033fc cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033fe je LBB15_17 + 0x8d, 0x48, 0xf7, //0x00003404 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x00003407 cmpb $1, %cl + 0x0f, 0x87, 0x7f, 0x00, 0x00, 0x00, //0x0000340a ja LBB15_27 + //0x00003410 LBB15_17 + 0x49, 0x8d, 0x5c, 0x24, 0x04, //0x00003410 leaq $4(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x00003415 cmpq %r13, %rbx + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003418 jae LBB15_31 + 0x49, 0x39, 0xdd, //0x0000341e cmpq %rbx, %r13 + 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00003421 je LBB15_23 + 0x4b, 0x8d, 0x04, 0x2f, //0x00003427 leaq (%r15,%r13), %rax + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000342b movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003435 .p2align 4, 0x90 + //0x00003440 LBB15_20 + 0x41, 0x0f, 0xbe, 0x14, 0x1f, //0x00003440 movsbl (%r15,%rbx), %edx + 0x83, 0xfa, 0x20, //0x00003445 cmpl $32, %edx + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003448 ja LBB15_25 + 0x48, 0x0f, 0xa3, 0xd1, //0x0000344e btq %rdx, %rcx + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00003452 jae LBB15_25 + 0x48, 0x83, 0xc3, 0x01, //0x00003458 addq $1, %rbx + 0x49, 0x39, 0xdd, //0x0000345c cmpq %rbx, %r13 + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000345f jne LBB15_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00003465 jmp LBB15_24 + //0x0000346a LBB15_31 + 0x48, 0x89, 0x5d, 0xd0, //0x0000346a movq %rbx, $-48(%rbp) + 0x49, 0x89, 0xdc, //0x0000346e movq %rbx, %r12 + 0xe9, 0x64, 0x00, 0x00, 0x00, //0x00003471 jmp LBB15_32 + //0x00003476 LBB15_23 + 0x4c, 0x01, 0xfb, //0x00003476 addq %r15, %rbx + 0x48, 0x89, 0xd8, //0x00003479 movq %rbx, %rax + //0x0000347c LBB15_24 + 0x4c, 0x29, 0xf8, //0x0000347c subq %r15, %rax + 0x48, 0x89, 0xc3, //0x0000347f movq %rax, %rbx + //0x00003482 LBB15_25 + 0x4c, 0x39, 0xeb, //0x00003482 cmpq %r13, %rbx + 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00003485 jae LBB15_32 + 0x41, 0x8a, 0x04, 0x1f, //0x0000348b movb (%r15,%rbx), %al + //0x0000348f LBB15_27 + 0x0f, 0xbe, 0xc8, //0x0000348f movsbl %al, %ecx + 0x83, 0xf9, 0x7d, //0x00003492 cmpl $125, %ecx + 0x0f, 0x87, 0xcf, 0x00, 0x00, 0x00, //0x00003495 ja LBB15_41 + 0x4c, 0x8d, 0x63, 0x01, //0x0000349b leaq $1(%rbx), %r12 + 0x4d, 0x8d, 0x34, 0x1f, //0x0000349f leaq (%r15,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x7a, 0x03, 0x00, 0x00, //0x000034a3 leaq $890(%rip), %rdx /* LJTI15_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x000034aa movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x000034ae addq %rdx, %rcx + 0xff, 0xe1, //0x000034b1 jmpq *%rcx + //0x000034b3 LBB15_29 + 0x48, 0x89, 0x5d, 0xd0, //0x000034b3 movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x000034b7 testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000034bb jne LBB15_35 + 0x48, 0x8d, 0x7d, 0xb8, //0x000034c1 leaq $-72(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x000034c5 leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x000034c9 movq %r9, %rdx + 0xe8, 0x1f, 0x0b, 0x00, 0x00, //0x000034cc callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x000034d1 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000034d5 jmp LBB15_34 + //0x000034da LBB15_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x000034da movq $1, (%r9) + //0x000034e1 LBB15_33 + 0x4c, 0x89, 0xe3, //0x000034e1 movq %r12, %rbx + //0x000034e4 LBB15_34 + 0x48, 0x89, 0xd8, //0x000034e4 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x000034e7 addq $40, %rsp + 0x5b, //0x000034eb popq %rbx + 0x41, 0x5c, //0x000034ec popq %r12 + 0x41, 0x5d, //0x000034ee popq %r13 + 0x41, 0x5e, //0x000034f0 popq %r14 + 0x41, 0x5f, //0x000034f2 popq %r15 + 0x5d, //0x000034f4 popq %rbp + 0xc3, //0x000034f5 retq + //0x000034f6 LBB15_35 + 0x49, 0x29, 0xdd, //0x000034f6 subq %rbx, %r13 + 0x31, 0xc9, //0x000034f9 xorl %ecx, %ecx + 0x3c, 0x2d, //0x000034fb cmpb $45, %al + 0x0f, 0x94, 0xc1, //0x000034fd sete %cl + 0x49, 0x01, 0xce, //0x00003500 addq %rcx, %r14 + 0x49, 0x29, 0xcd, //0x00003503 subq %rcx, %r13 + 0x0f, 0x84, 0xf0, 0x02, 0x00, 0x00, //0x00003506 je LBB15_84 + 0x4d, 0x89, 0xcc, //0x0000350c movq %r9, %r12 + 0x41, 0x8a, 0x06, //0x0000350f movb (%r14), %al + 0x04, 0xd0, //0x00003512 addb $-48, %al + 0x3c, 0x09, //0x00003514 cmpb $9, %al + 0x0f, 0x87, 0xf2, 0x02, 0x00, 0x00, //0x00003516 ja LBB15_86 + 0x4c, 0x89, 0xf7, //0x0000351c movq %r14, %rdi + 0x4c, 0x89, 0xee, //0x0000351f movq %r13, %rsi + 0xe8, 0x59, 0x1e, 0x00, 0x00, //0x00003522 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003527 testq %rax, %rax + 0x0f, 0x88, 0xd8, 0x02, 0x00, 0x00, //0x0000352a js LBB15_85 + 0x49, 0x01, 0xc6, //0x00003530 addq %rax, %r14 + 0x4d, 0x29, 0xfe, //0x00003533 subq %r15, %r14 + 0x48, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, //0x00003536 movabsq $9223372036854775807, %rax + 0x48, 0x39, 0xc3, //0x00003540 cmpq %rax, %rbx + 0x4d, 0x89, 0xe1, //0x00003543 movq %r12, %r9 + 0x0f, 0x82, 0x0b, 0x00, 0x00, 0x00, //0x00003546 jb LBB15_40 + //0x0000354c LBB15_39 + 0x49, 0x89, 0x19, //0x0000354c movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x0000354f movq %r14, %rbx + 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00003552 jmp LBB15_34 + //0x00003557 LBB15_40 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003557 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x0000355e movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x00003562 movq %r14, %rbx + 0xe9, 0x7a, 0xff, 0xff, 0xff, //0x00003565 jmp LBB15_34 + //0x0000356a LBB15_41 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x0000356a movq $-2, (%r9) + 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00003571 jmp LBB15_34 + //0x00003576 LBB15_42 + 0x4d, 0x89, 0xce, //0x00003576 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003579 movq $-1, $-56(%rbp) + 0x48, 0x8d, 0x7d, 0xb8, //0x00003581 leaq $-72(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc8, //0x00003585 leaq $-56(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003589 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x0000358c movq %r8, %rcx + 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x0000358f callq _advance_string + 0x48, 0x89, 0xc3, //0x00003594 movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x00003597 testq %rax, %rax + 0x0f, 0x88, 0x55, 0x01, 0x00, 0x00, //0x0000359a js LBB15_65 + 0x48, 0x89, 0x5d, 0xd0, //0x000035a0 movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000035a4 movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc8, //0x000035a8 movq $-56(%rbp), %rax + 0x48, 0x39, 0xd8, //0x000035ac cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000035af movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x000035b6 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x000035ba movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x000035be movl $7, %eax + 0x49, 0x89, 0x06, //0x000035c3 movq %rax, (%r14) + 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000035c6 jmp LBB15_34 + //0x000035cb LBB15_44 + 0x45, 0x85, 0xc0, //0x000035cb testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035ce movq $-2, %rax + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000035d5 movl $11, %ecx + 0xe9, 0xfd, 0x00, 0x00, 0x00, //0x000035da jmp LBB15_64 + //0x000035df LBB15_45 + 0x45, 0x85, 0xc0, //0x000035df testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035e2 movq $-2, %rax + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000035e9 movl $10, %ecx + 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x000035ee jmp LBB15_64 + //0x000035f3 LBB15_46 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x000035f3 movq $5, (%r9) + 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000035fa jmp LBB15_33 + //0x000035ff LBB15_47 + 0x45, 0x85, 0xc0, //0x000035ff testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003602 movq $-2, %rax + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00003609 movl $12, %ecx + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x0000360e jmp LBB15_64 + //0x00003613 LBB15_48 + 0x49, 0x8d, 0x4d, 0xfc, //0x00003613 leaq $-4(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003617 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x0000361e cmpq %rcx, %rbx + 0x0f, 0x83, 0x1c, 0x00, 0x00, 0x00, //0x00003621 jae LBB15_51 + 0x43, 0x8b, 0x0c, 0x27, //0x00003627 movl (%r15,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000362b cmpl $1702063201, %ecx + 0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x00003631 jne LBB15_66 + 0x48, 0x83, 0xc3, 0x05, //0x00003637 addq $5, %rbx + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000363b movl $4, %eax + 0x49, 0x89, 0xdd, //0x00003640 movq %rbx, %r13 + //0x00003643 LBB15_51 + 0x4c, 0x89, 0x6d, 0xd0, //0x00003643 movq %r13, $-48(%rbp) + 0x4d, 0x89, 0xec, //0x00003647 movq %r13, %r12 + //0x0000364a LBB15_52 + 0x49, 0x89, 0x01, //0x0000364a movq %rax, (%r9) + 0xe9, 0x8f, 0xfe, 0xff, 0xff, //0x0000364d jmp LBB15_33 + //0x00003652 LBB15_53 + 0x49, 0x8d, 0x4d, 0xfd, //0x00003652 leaq $-3(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003656 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x0000365d cmpq %rcx, %rbx + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003660 jae LBB15_57 + 0x41, 0x8b, 0x0e, //0x00003666 movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003669 cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x0000366f jne LBB15_70 + 0x48, 0x83, 0xc3, 0x04, //0x00003675 addq $4, %rbx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003679 movl $2, %eax + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x0000367e jmp LBB15_56 + //0x00003683 LBB15_59 + 0x49, 0x8d, 0x4d, 0xfd, //0x00003683 leaq $-3(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003687 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x0000368e cmpq %rcx, %rbx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00003691 jae LBB15_57 + 0x41, 0x8b, 0x0e, //0x00003697 movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000369a cmpl $1702195828, %ecx + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x000036a0 jne LBB15_74 + 0x48, 0x83, 0xc3, 0x04, //0x000036a6 addq $4, %rbx + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x000036aa movl $3, %eax + //0x000036af LBB15_56 + 0x49, 0x89, 0xdd, //0x000036af movq %rbx, %r13 + //0x000036b2 LBB15_57 + 0x4c, 0x89, 0x6d, 0xd0, //0x000036b2 movq %r13, $-48(%rbp) + 0x4c, 0x89, 0xeb, //0x000036b6 movq %r13, %rbx + //0x000036b9 LBB15_58 + 0x49, 0x89, 0x01, //0x000036b9 movq %rax, (%r9) + 0xe9, 0x23, 0xfe, 0xff, 0xff, //0x000036bc jmp LBB15_34 + //0x000036c1 LBB15_62 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000036c1 movq $6, (%r9) + 0xe9, 0x14, 0xfe, 0xff, 0xff, //0x000036c8 jmp LBB15_33 + //0x000036cd LBB15_63 + 0x45, 0x85, 0xc0, //0x000036cd testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036d0 movq $-2, %rax + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000036d7 movl $13, %ecx + //0x000036dc LBB15_64 + 0x48, 0x0f, 0x49, 0xc8, //0x000036dc cmovnsq %rax, %rcx + 0x49, 0x89, 0x09, //0x000036e0 movq %rcx, (%r9) + 0x41, 0xc1, 0xf8, 0x1f, //0x000036e3 sarl $31, %r8d + 0x41, 0xf7, 0xd0, //0x000036e7 notl %r8d + 0x49, 0x63, 0xc0, //0x000036ea movslq %r8d, %rax + 0x49, 0x01, 0xc4, //0x000036ed addq %rax, %r12 + 0xe9, 0xec, 0xfd, 0xff, 0xff, //0x000036f0 jmp LBB15_33 + //0x000036f5 LBB15_65 + 0x4c, 0x89, 0x6d, 0xd0, //0x000036f5 movq %r13, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x000036f9 movq %rbx, (%r14) + 0x4c, 0x89, 0xeb, //0x000036fc movq %r13, %rbx + 0xe9, 0xe0, 0xfd, 0xff, 0xff, //0x000036ff jmp LBB15_34 + //0x00003704 LBB15_66 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003704 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x0000370b cmpb $97, %cl + 0x0f, 0x85, 0x36, 0xff, 0xff, 0xff, //0x0000370e jne LBB15_52 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003714 cmpb $108, $2(%r15,%rbx) + 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x0000371a jne LBB15_79 + 0x41, 0x80, 0x7c, 0x1f, 0x03, 0x73, //0x00003720 cmpb $115, $3(%r15,%rbx) + 0x0f, 0x85, 0xc0, 0x00, 0x00, 0x00, //0x00003726 jne LBB15_81 + 0x31, 0xc9, //0x0000372c xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x04, 0x65, //0x0000372e cmpb $101, $4(%rbx,%r15) + 0x0f, 0x94, 0xc1, //0x00003734 sete %cl + 0x4c, 0x8d, 0x24, 0x19, //0x00003737 leaq (%rcx,%rbx), %r12 + 0x49, 0x83, 0xc4, 0x04, //0x0000373b addq $4, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x0000373f movq %r12, $-48(%rbp) + 0xe9, 0x02, 0xff, 0xff, 0xff, //0x00003743 jmp LBB15_52 + //0x00003748 LBB15_70 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003748 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000374f cmpb $110, %cl + 0x0f, 0x85, 0x61, 0xff, 0xff, 0xff, //0x00003752 jne LBB15_58 + 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x75, //0x00003758 cmpb $117, $1(%r15,%rbx) + 0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x0000375e jne LBB15_80 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003764 cmpb $108, $2(%r15,%rbx) + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000376a jne LBB15_83 + 0x31, 0xc9, //0x00003770 xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x6c, //0x00003772 cmpb $108, $3(%rbx,%r15) + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00003778 jmp LBB15_78 + //0x0000377d LBB15_74 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000377d movq $-2, %rax + 0x80, 0xf9, 0x74, //0x00003784 cmpb $116, %cl + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00003787 jne LBB15_58 + 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x72, //0x0000378d cmpb $114, $1(%r15,%rbx) + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003793 jne LBB15_80 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x75, //0x00003799 cmpb $117, $2(%r15,%rbx) + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x0000379f jne LBB15_83 + 0x31, 0xc9, //0x000037a5 xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x65, //0x000037a7 cmpb $101, $3(%rbx,%r15) + //0x000037ad LBB15_78 + 0x0f, 0x94, 0xc1, //0x000037ad sete %cl + 0x48, 0x01, 0xcb, //0x000037b0 addq %rcx, %rbx + 0x48, 0x83, 0xc3, 0x03, //0x000037b3 addq $3, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000037b7 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x000037bb movq %rax, (%r9) + 0xe9, 0x21, 0xfd, 0xff, 0xff, //0x000037be jmp LBB15_34 + //0x000037c3 LBB15_80 + 0x48, 0x83, 0xc3, 0x01, //0x000037c3 addq $1, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000037c7 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x000037cb movq %rax, (%r9) + 0xe9, 0x11, 0xfd, 0xff, 0xff, //0x000037ce jmp LBB15_34 + //0x000037d3 LBB15_79 + 0x48, 0x83, 0xc3, 0x02, //0x000037d3 addq $2, %rbx + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000037d7 jmp LBB15_82 + //0x000037dc LBB15_83 + 0x48, 0x83, 0xc3, 0x02, //0x000037dc addq $2, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000037e0 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x000037e4 movq %rax, (%r9) + 0xe9, 0xf8, 0xfc, 0xff, 0xff, //0x000037e7 jmp LBB15_34 + //0x000037ec LBB15_81 + 0x48, 0x83, 0xc3, 0x03, //0x000037ec addq $3, %rbx + //0x000037f0 LBB15_82 + 0x49, 0x89, 0xdc, //0x000037f0 movq %rbx, %r12 + 0x48, 0x89, 0x5d, 0xd0, //0x000037f3 movq %rbx, $-48(%rbp) + 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x000037f7 jmp LBB15_52 + //0x000037fc LBB15_84 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000037fc movq $-1, %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00003803 jmp LBB15_87 + //0x00003808 LBB15_85 + 0x48, 0xf7, 0xd0, //0x00003808 notq %rax + 0x49, 0x01, 0xc6, //0x0000380b addq %rax, %r14 + //0x0000380e LBB15_86 + 0x4d, 0x89, 0xe1, //0x0000380e movq %r12, %r9 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00003811 movq $-2, %rbx + //0x00003818 LBB15_87 + 0x4d, 0x29, 0xfe, //0x00003818 subq %r15, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x0000381b movq %r14, $-48(%rbp) + 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x0000381f jmp LBB15_39 + //0x00003824 .p2align 2, 0x90 + // // .set L15_0_set_32, LBB15_32-LJTI15_0 + // // .set L15_0_set_41, LBB15_41-LJTI15_0 + // // .set L15_0_set_42, LBB15_42-LJTI15_0 + // // .set L15_0_set_44, LBB15_44-LJTI15_0 + // // .set L15_0_set_29, LBB15_29-LJTI15_0 + // // .set L15_0_set_45, LBB15_45-LJTI15_0 + // // .set L15_0_set_46, LBB15_46-LJTI15_0 + // // .set L15_0_set_47, LBB15_47-LJTI15_0 + // // .set L15_0_set_48, LBB15_48-LJTI15_0 + // // .set L15_0_set_53, LBB15_53-LJTI15_0 + // // .set L15_0_set_59, LBB15_59-LJTI15_0 + // // .set L15_0_set_62, LBB15_62-LJTI15_0 + // // .set L15_0_set_63, LBB15_63-LJTI15_0 + //0x00003824 LJTI15_0 + 0xb6, 0xfc, 0xff, 0xff, //0x00003824 .long L15_0_set_32 + 0x46, 0xfd, 0xff, 0xff, //0x00003828 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000382c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003830 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003834 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003838 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000383c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003840 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003844 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003848 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000384c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003850 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003854 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003858 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000385c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003860 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003864 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003868 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000386c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003870 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003874 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003878 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000387c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003880 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003884 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003888 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000388c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003890 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003894 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003898 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000389c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a8 .long L15_0_set_41 + 0x52, 0xfd, 0xff, 0xff, //0x000038ac .long L15_0_set_42 + 0x46, 0xfd, 0xff, 0xff, //0x000038b0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038b4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038b8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038bc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038c0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038c4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038c8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038cc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038d0 .long L15_0_set_41 + 0xa7, 0xfd, 0xff, 0xff, //0x000038d4 .long L15_0_set_44 + 0x8f, 0xfc, 0xff, 0xff, //0x000038d8 .long L15_0_set_29 + 0x46, 0xfd, 0xff, 0xff, //0x000038dc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038e0 .long L15_0_set_41 + 0x8f, 0xfc, 0xff, 0xff, //0x000038e4 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038e8 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038ec .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038f0 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038f4 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038f8 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038fc .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x00003900 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x00003904 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x00003908 .long L15_0_set_29 + 0xbb, 0xfd, 0xff, 0xff, //0x0000390c .long L15_0_set_45 + 0x46, 0xfd, 0xff, 0xff, //0x00003910 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003914 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003918 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000391c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003920 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003924 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003928 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000392c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003930 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003934 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003938 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000393c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003940 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003944 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003948 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000394c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003950 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003954 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003958 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000395c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003960 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003964 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003968 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000396c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003970 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003974 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003978 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000397c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003980 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003984 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003988 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000398c .long L15_0_set_41 + 0xcf, 0xfd, 0xff, 0xff, //0x00003990 .long L15_0_set_46 + 0x46, 0xfd, 0xff, 0xff, //0x00003994 .long L15_0_set_41 + 0xdb, 0xfd, 0xff, 0xff, //0x00003998 .long L15_0_set_47 + 0x46, 0xfd, 0xff, 0xff, //0x0000399c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039a0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039a4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039a8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039ac .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b8 .long L15_0_set_41 + 0xef, 0xfd, 0xff, 0xff, //0x000039bc .long L15_0_set_48 + 0x46, 0xfd, 0xff, 0xff, //0x000039c0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039c4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039c8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039cc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039d0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039d4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039d8 .long L15_0_set_41 + 0x2e, 0xfe, 0xff, 0xff, //0x000039dc .long L15_0_set_53 + 0x46, 0xfd, 0xff, 0xff, //0x000039e0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039e4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039e8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039ec .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039f0 .long L15_0_set_41 + 0x5f, 0xfe, 0xff, 0xff, //0x000039f4 .long L15_0_set_59 + 0x46, 0xfd, 0xff, 0xff, //0x000039f8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039fc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003a00 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003a04 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003a08 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003a0c .long L15_0_set_41 + 0x9d, 0xfe, 0xff, 0xff, //0x00003a10 .long L15_0_set_62 + 0x46, 0xfd, 0xff, 0xff, //0x00003a14 .long L15_0_set_41 + 0xa9, 0xfe, 0xff, 0xff, //0x00003a18 .long L15_0_set_63 + 0x90, 0x90, 0x90, 0x90, //0x00003a1c .p2align 4, 0x90 + //0x00003a20 _vstring + 0x55, //0x00003a20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003a21 movq %rsp, %rbp + 0x41, 0x57, //0x00003a24 pushq %r15 + 0x41, 0x56, //0x00003a26 pushq %r14 + 0x41, 0x54, //0x00003a28 pushq %r12 + 0x53, //0x00003a2a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00003a2b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x00003a2f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003a32 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003a35 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003a38 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003a40 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003a43 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003a47 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x00003a4a callq _advance_string + 0x48, 0x85, 0xc0, //0x00003a4f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003a52 js LBB16_1 + 0x48, 0x89, 0x03, //0x00003a58 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x00003a5b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x00003a5f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003a63 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003a66 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x00003a6d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00003a71 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003a75 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003a7a jmp LBB16_3 + //0x00003a7f LBB16_1 + 0x49, 0x8b, 0x4f, 0x08, //0x00003a7f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x00003a83 movq %rcx, (%rbx) + //0x00003a86 LBB16_3 + 0x49, 0x89, 0x06, //0x00003a86 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00003a89 addq $16, %rsp + 0x5b, //0x00003a8d popq %rbx + 0x41, 0x5c, //0x00003a8e popq %r12 + 0x41, 0x5e, //0x00003a90 popq %r14 + 0x41, 0x5f, //0x00003a92 popq %r15 + 0x5d, //0x00003a94 popq %rbp + 0xc3, //0x00003a95 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a96 .p2align 4, 0x00 + //0x00003aa0 LCPI17_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00003aa0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00003ab0 LCPI17_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00003ab0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00003ac0 LCPI17_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003ac0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00003ad0 .p2align 4, 0x90 + //0x00003ad0 _advance_string + 0xf6, 0xc1, 0x20, //0x00003ad0 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003ad3 jne LBB17_2 + 0xe9, 0x02, 0x57, 0x00, 0x00, //0x00003ad9 jmp _advance_string_default + //0x00003ade LBB17_2 + 0x55, //0x00003ade pushq %rbp + 0x48, 0x89, 0xe5, //0x00003adf movq %rsp, %rbp + 0x41, 0x57, //0x00003ae2 pushq %r15 + 0x41, 0x56, //0x00003ae4 pushq %r14 + 0x41, 0x55, //0x00003ae6 pushq %r13 + 0x41, 0x54, //0x00003ae8 pushq %r12 + 0x53, //0x00003aea pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x00003aeb subq $24, %rsp + 0x4c, 0x8b, 0x7f, 0x08, //0x00003aef movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x00003af3 subq %rsi, %r15 + 0x0f, 0x84, 0xa4, 0x04, 0x00, 0x00, //0x00003af6 je LBB17_47 + 0x48, 0x8b, 0x07, //0x00003afc movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003aff movq %rax, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc0, //0x00003b03 movq %rdx, $-64(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003b07 movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x00003b0e cmpq $64, %r15 + 0x0f, 0x82, 0xaf, 0x03, 0x00, 0x00, //0x00003b12 jb LBB17_48 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003b18 movq $-1, $-56(%rbp) + 0x45, 0x31, 0xf6, //0x00003b20 xorl %r14d, %r14d + 0xc5, 0x79, 0x6f, 0x05, 0x75, 0xff, 0xff, 0xff, //0x00003b23 vmovdqa $-139(%rip), %xmm8 /* LCPI17_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x7d, 0xff, 0xff, 0xff, //0x00003b2b vmovdqa $-131(%rip), %xmm1 /* LCPI17_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x85, 0xff, 0xff, 0xff, //0x00003b33 vmovdqa $-123(%rip), %xmm2 /* LCPI17_2+0(%rip) */ + 0xc5, 0xe1, 0x76, 0xdb, //0x00003b3b vpcmpeqd %xmm3, %xmm3, %xmm3 + 0x90, //0x00003b3f .p2align 4, 0x90 + //0x00003b40 LBB17_5 + 0x48, 0x8b, 0x45, 0xd0, //0x00003b40 movq $-48(%rbp), %rax + 0xc5, 0xfa, 0x6f, 0x24, 0x30, //0x00003b44 vmovdqu (%rax,%rsi), %xmm4 + 0xc5, 0xfa, 0x6f, 0x6c, 0x30, 0x10, //0x00003b49 vmovdqu $16(%rax,%rsi), %xmm5 + 0xc5, 0xfa, 0x6f, 0x74, 0x30, 0x20, //0x00003b4f vmovdqu $32(%rax,%rsi), %xmm6 + 0xc5, 0xfa, 0x6f, 0x7c, 0x30, 0x30, //0x00003b55 vmovdqu $48(%rax,%rsi), %xmm7 + 0xc5, 0xb9, 0x74, 0xc4, //0x00003b5b vpcmpeqb %xmm4, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00003b5f vpmovmskb %xmm0, %r12d + 0xc5, 0xb9, 0x74, 0xc5, //0x00003b63 vpcmpeqb %xmm5, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00003b67 vpmovmskb %xmm0, %r8d + 0xc5, 0xb9, 0x74, 0xc6, //0x00003b6b vpcmpeqb %xmm6, %xmm8, %xmm0 + 0xc5, 0x79, 0xd7, 0xd8, //0x00003b6f vpmovmskb %xmm0, %r11d + 0xc5, 0xb9, 0x74, 0xc7, //0x00003b73 vpcmpeqb %xmm7, %xmm8, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00003b77 vpmovmskb %xmm0, %edx + 0xc5, 0xd9, 0x74, 0xc1, //0x00003b7b vpcmpeqb %xmm1, %xmm4, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00003b7f vpmovmskb %xmm0, %r13d + 0xc5, 0xd1, 0x74, 0xc1, //0x00003b83 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00003b87 vpmovmskb %xmm0, %ecx + 0xc5, 0xc9, 0x74, 0xc1, //0x00003b8b vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf8, //0x00003b8f vpmovmskb %xmm0, %edi + 0xc5, 0xc1, 0x74, 0xc1, //0x00003b93 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00003b97 vpmovmskb %xmm0, %r10d + 0xc5, 0xe9, 0x64, 0xc5, //0x00003b9b vpcmpgtb %xmm5, %xmm2, %xmm0 + 0xc5, 0xd1, 0x64, 0xeb, //0x00003b9f vpcmpgtb %xmm3, %xmm5, %xmm5 + 0xc5, 0xf9, 0xdb, 0xc5, //0x00003ba3 vpand %xmm5, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00003ba7 vpmovmskb %xmm0, %ebx + 0xc5, 0xe9, 0x64, 0xc6, //0x00003bab vpcmpgtb %xmm6, %xmm2, %xmm0 + 0xc5, 0xc9, 0x64, 0xeb, //0x00003baf vpcmpgtb %xmm3, %xmm6, %xmm5 + 0xc5, 0xf9, 0xdb, 0xc5, //0x00003bb3 vpand %xmm5, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00003bb7 vpmovmskb %xmm0, %eax + 0xc5, 0xe9, 0x64, 0xc7, //0x00003bbb vpcmpgtb %xmm7, %xmm2, %xmm0 + 0xc5, 0xc1, 0x64, 0xeb, //0x00003bbf vpcmpgtb %xmm3, %xmm7, %xmm5 + 0xc5, 0xf9, 0xdb, 0xc5, //0x00003bc3 vpand %xmm5, %xmm0, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00003bc7 vpmovmskb %xmm0, %r9d + 0x48, 0xc1, 0xe2, 0x30, //0x00003bcb shlq $48, %rdx + 0x49, 0xc1, 0xe3, 0x20, //0x00003bcf shlq $32, %r11 + 0x49, 0x09, 0xd3, //0x00003bd3 orq %rdx, %r11 + 0x49, 0xc1, 0xe0, 0x10, //0x00003bd6 shlq $16, %r8 + 0x4d, 0x09, 0xd8, //0x00003bda orq %r11, %r8 + 0x4d, 0x09, 0xc4, //0x00003bdd orq %r8, %r12 + 0x49, 0xc1, 0xe2, 0x30, //0x00003be0 shlq $48, %r10 + 0x48, 0xc1, 0xe7, 0x20, //0x00003be4 shlq $32, %rdi + 0x4c, 0x09, 0xd7, //0x00003be8 orq %r10, %rdi + 0x48, 0xc1, 0xe1, 0x10, //0x00003beb shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x00003bef orq %rdi, %rcx + 0x49, 0xc1, 0xe1, 0x30, //0x00003bf2 shlq $48, %r9 + 0x48, 0xc1, 0xe0, 0x20, //0x00003bf6 shlq $32, %rax + 0x4c, 0x09, 0xc8, //0x00003bfa orq %r9, %rax + 0x48, 0xc1, 0xe3, 0x10, //0x00003bfd shlq $16, %rbx + 0x48, 0x09, 0xc3, //0x00003c01 orq %rax, %rbx + 0x49, 0x09, 0xcd, //0x00003c04 orq %rcx, %r13 + 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x00003c07 jne LBB17_11 + 0x4d, 0x85, 0xf6, //0x00003c0d testq %r14, %r14 + 0x0f, 0x85, 0x5c, 0x00, 0x00, 0x00, //0x00003c10 jne LBB17_13 + 0x45, 0x31, 0xf6, //0x00003c16 xorl %r14d, %r14d + //0x00003c19 LBB17_8 + 0xc5, 0xe9, 0x64, 0xc4, //0x00003c19 vpcmpgtb %xmm4, %xmm2, %xmm0 + 0xc5, 0xd9, 0x64, 0xe3, //0x00003c1d vpcmpgtb %xmm3, %xmm4, %xmm4 + 0xc5, 0xf9, 0xdb, 0xc4, //0x00003c21 vpand %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00003c25 vpmovmskb %xmm0, %eax + 0x48, 0x09, 0xc3, //0x00003c29 orq %rax, %rbx + 0x4d, 0x85, 0xe4, //0x00003c2c testq %r12, %r12 + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00003c2f jne LBB17_14 + 0x48, 0x85, 0xdb, //0x00003c35 testq %rbx, %rbx + 0x0f, 0x85, 0xd6, 0x00, 0x00, 0x00, //0x00003c38 jne LBB17_20 + 0x49, 0x83, 0xc7, 0xc0, //0x00003c3e addq $-64, %r15 + 0x48, 0x83, 0xc6, 0x40, //0x00003c42 addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x00003c46 cmpq $63, %r15 + 0x0f, 0x87, 0xf0, 0xfe, 0xff, 0xff, //0x00003c4a ja LBB17_5 + 0xe9, 0xe4, 0x00, 0x00, 0x00, //0x00003c50 jmp LBB17_22 + //0x00003c55 LBB17_11 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003c55 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00003c5a jne LBB17_13 + 0x49, 0x0f, 0xbc, 0xcd, //0x00003c60 bsfq %r13, %rcx + 0x48, 0x01, 0xf1, //0x00003c64 addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003c67 movq $-64(%rbp), %rax + 0x48, 0x89, 0x4d, 0xc8, //0x00003c6b movq %rcx, $-56(%rbp) + 0x48, 0x89, 0x08, //0x00003c6f movq %rcx, (%rax) + //0x00003c72 LBB17_13 + 0x4c, 0x89, 0xf0, //0x00003c72 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00003c75 notq %rax + 0x4c, 0x21, 0xe8, //0x00003c78 andq %r13, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00003c7b leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x00003c7f orq %r14, %rcx + 0x48, 0x89, 0xca, //0x00003c82 movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003c85 notq %rdx + 0x4c, 0x21, 0xea, //0x00003c88 andq %r13, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003c8b movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003c95 andq %rdi, %rdx + 0x45, 0x31, 0xf6, //0x00003c98 xorl %r14d, %r14d + 0x48, 0x01, 0xc2, //0x00003c9b addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc6, //0x00003c9e setb %r14b + 0x48, 0x01, 0xd2, //0x00003ca2 addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003ca5 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003caf xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x00003cb2 andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003cb5 notq %rdx + 0x49, 0x21, 0xd4, //0x00003cb8 andq %rdx, %r12 + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00003cbb jmp LBB17_8 + //0x00003cc0 LBB17_14 + 0x49, 0x0f, 0xbc, 0xc4, //0x00003cc0 bsfq %r12, %rax + 0x48, 0x85, 0xdb, //0x00003cc4 testq %rbx, %rbx + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00003cc7 je LBB17_18 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003ccd bsfq %rbx, %rcx + 0x48, 0x39, 0xc1, //0x00003cd1 cmpq %rax, %rcx + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00003cd4 jb LBB17_19 + //0x00003cda LBB17_16 + 0x48, 0x01, 0xf0, //0x00003cda addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x00003cdd addq $1, %rax + //0x00003ce1 LBB17_17 + 0x48, 0x83, 0xc4, 0x18, //0x00003ce1 addq $24, %rsp + 0x5b, //0x00003ce5 popq %rbx + 0x41, 0x5c, //0x00003ce6 popq %r12 + 0x41, 0x5d, //0x00003ce8 popq %r13 + 0x41, 0x5e, //0x00003cea popq %r14 + 0x41, 0x5f, //0x00003cec popq %r15 + 0x5d, //0x00003cee popq %rbp + 0xc3, //0x00003cef retq + //0x00003cf0 LBB17_18 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003cf0 movl $64, %ecx + 0x48, 0x39, 0xc1, //0x00003cf5 cmpq %rax, %rcx + 0x0f, 0x83, 0xdc, 0xff, 0xff, 0xff, //0x00003cf8 jae LBB17_16 + //0x00003cfe LBB17_19 + 0x48, 0x01, 0xf1, //0x00003cfe addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003d01 movq $-64(%rbp), %rax + 0x48, 0x89, 0x08, //0x00003d05 movq %rcx, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d08 movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003d0f jmp LBB17_17 + //0x00003d14 LBB17_20 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d14 movq $-2, %rax + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003d1b cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0xbb, 0xff, 0xff, 0xff, //0x00003d20 jne LBB17_17 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003d26 bsfq %rbx, %rcx + 0x48, 0x01, 0xf1, //0x00003d2a addq %rsi, %rcx + 0x48, 0x8b, 0x55, 0xc0, //0x00003d2d movq $-64(%rbp), %rdx + 0x48, 0x89, 0x0a, //0x00003d31 movq %rcx, (%rdx) + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00003d34 jmp LBB17_17 + //0x00003d39 LBB17_22 + 0x48, 0x03, 0x75, 0xd0, //0x00003d39 addq $-48(%rbp), %rsi + 0x49, 0x83, 0xff, 0x20, //0x00003d3d cmpq $32, %r15 + 0x0f, 0x82, 0xe4, 0x00, 0x00, 0x00, //0x00003d41 jb LBB17_35 + //0x00003d47 LBB17_23 + 0xc5, 0xfa, 0x6f, 0x06, //0x00003d47 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x00003d4b vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x48, 0xfd, 0xff, 0xff, //0x00003d50 vmovdqa $-696(%rip), %xmm2 /* LCPI17_0+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003d58 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0xf9, 0xd7, 0xc3, //0x00003d5c vpmovmskb %xmm3, %eax + 0xc5, 0xf1, 0x74, 0xd2, //0x00003d60 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00003d64 vpmovmskb %xmm2, %ecx + 0xc5, 0xf9, 0x6f, 0x15, 0x40, 0xfd, 0xff, 0xff, //0x00003d68 vmovdqa $-704(%rip), %xmm2 /* LCPI17_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xda, //0x00003d70 vpcmpeqb %xmm2, %xmm0, %xmm3 + 0xc5, 0x79, 0xd7, 0xd3, //0x00003d74 vpmovmskb %xmm3, %r10d + 0xc5, 0xf1, 0x74, 0xd2, //0x00003d78 vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xd2, //0x00003d7c vpmovmskb %xmm2, %edx + 0xc5, 0xf9, 0x6f, 0x15, 0x38, 0xfd, 0xff, 0xff, //0x00003d80 vmovdqa $-712(%rip), %xmm2 /* LCPI17_2+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd8, //0x00003d88 vpcmpgtb %xmm0, %xmm2, %xmm3 + 0xc5, 0xd9, 0x76, 0xe4, //0x00003d8c vpcmpeqd %xmm4, %xmm4, %xmm4 + 0xc5, 0xf9, 0x64, 0xc4, //0x00003d90 vpcmpgtb %xmm4, %xmm0, %xmm0 + 0xc5, 0xe1, 0xdb, 0xc0, //0x00003d94 vpand %xmm0, %xmm3, %xmm0 + 0xc5, 0x79, 0xd7, 0xc8, //0x00003d98 vpmovmskb %xmm0, %r9d + 0xc5, 0xe9, 0x64, 0xc1, //0x00003d9c vpcmpgtb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf1, 0x64, 0xcc, //0x00003da0 vpcmpgtb %xmm4, %xmm1, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x00003da4 vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x00003da8 vpmovmskb %xmm0, %ebx + 0x48, 0xc1, 0xe1, 0x10, //0x00003dac shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00003db0 orq %rcx, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00003db3 shlq $16, %rdx + 0x48, 0xc1, 0xe3, 0x10, //0x00003db7 shlq $16, %rbx + 0x49, 0x09, 0xd2, //0x00003dbb orq %rdx, %r10 + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00003dbe jne LBB17_49 + 0x4d, 0x85, 0xf6, //0x00003dc4 testq %r14, %r14 + 0x0f, 0x85, 0x3c, 0x01, 0x00, 0x00, //0x00003dc7 jne LBB17_51 + 0x45, 0x31, 0xf6, //0x00003dcd xorl %r14d, %r14d + //0x00003dd0 LBB17_26 + 0x4c, 0x09, 0xcb, //0x00003dd0 orq %r9, %rbx + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003dd3 movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003dd8 movl $64, %edx + 0x48, 0x85, 0xc0, //0x00003ddd testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003de0 je LBB17_28 + 0x48, 0x0f, 0xbc, 0xd0, //0x00003de6 bsfq %rax, %rdx + //0x00003dea LBB17_28 + 0x48, 0x85, 0xdb, //0x00003dea testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003ded je LBB17_30 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003df3 bsfq %rbx, %rcx + //0x00003df7 LBB17_30 + 0x48, 0x85, 0xc0, //0x00003df7 testq %rax, %rax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003dfa je LBB17_33 + 0x48, 0x39, 0xd1, //0x00003e00 cmpq %rdx, %rcx + 0x0f, 0x82, 0x37, 0x01, 0x00, 0x00, //0x00003e03 jb LBB17_52 + 0x48, 0x2b, 0x75, 0xd0, //0x00003e09 subq $-48(%rbp), %rsi + 0x48, 0x8d, 0x04, 0x16, //0x00003e0d leaq (%rsi,%rdx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x00003e11 addq $1, %rax + 0xe9, 0xc7, 0xfe, 0xff, 0xff, //0x00003e15 jmp LBB17_17 + //0x00003e1a LBB17_33 + 0x48, 0x85, 0xdb, //0x00003e1a testq %rbx, %rbx + 0x0f, 0x85, 0x1d, 0x01, 0x00, 0x00, //0x00003e1d jne LBB17_52 + 0x48, 0x83, 0xc6, 0x20, //0x00003e23 addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00003e27 addq $-32, %r15 + //0x00003e2b LBB17_35 + 0x4d, 0x85, 0xf6, //0x00003e2b testq %r14, %r14 + 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00003e2e jne LBB17_54 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003e34 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003e3b testq %r15, %r15 + 0x0f, 0x84, 0x9d, 0xfe, 0xff, 0xff, //0x00003e3e je LBB17_17 + //0x00003e44 LBB17_37 + 0x48, 0x8b, 0x7d, 0xc0, //0x00003e44 movq $-64(%rbp), %rdi + //0x00003e48 LBB17_38 + 0x0f, 0xb6, 0x0e, //0x00003e48 movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003e4b cmpb $34, %cl + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e4e je LBB17_46 + 0x80, 0xf9, 0x5c, //0x00003e54 cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003e57 je LBB17_43 + 0x80, 0xf9, 0x1f, //0x00003e5d cmpb $31, %cl + 0x0f, 0x86, 0x46, 0x01, 0x00, 0x00, //0x00003e60 jbe LBB17_58 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e66 movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003e6d movl $1, %edx + //0x00003e72 LBB17_42 + 0x48, 0x01, 0xd6, //0x00003e72 addq %rdx, %rsi + 0x49, 0x01, 0xcf, //0x00003e75 addq %rcx, %r15 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003e78 jne LBB17_38 + 0xe9, 0x5e, 0xfe, 0xff, 0xff, //0x00003e7e jmp LBB17_17 + //0x00003e83 LBB17_43 + 0x49, 0x83, 0xff, 0x01, //0x00003e83 cmpq $1, %r15 + 0x0f, 0x84, 0x54, 0xfe, 0xff, 0xff, //0x00003e87 je LBB17_17 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003e8d movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00003e94 movl $2, %edx + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003e99 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00003e9e jne LBB17_42 + 0x48, 0x89, 0xf3, //0x00003ea4 movq %rsi, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00003ea7 subq $-48(%rbp), %rbx + 0x48, 0x89, 0x5d, 0xc8, //0x00003eab movq %rbx, $-56(%rbp) + 0x48, 0x89, 0x1f, //0x00003eaf movq %rbx, (%rdi) + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00003eb2 jmp LBB17_42 + //0x00003eb7 LBB17_46 + 0x48, 0x2b, 0x75, 0xd0, //0x00003eb7 subq $-48(%rbp), %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00003ebb addq $1, %rsi + 0x48, 0x89, 0xf0, //0x00003ebf movq %rsi, %rax + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x00003ec2 jmp LBB17_17 + //0x00003ec7 LBB17_48 + 0x48, 0x03, 0x75, 0xd0, //0x00003ec7 addq $-48(%rbp), %rsi + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003ecb movq $-1, $-56(%rbp) + 0x45, 0x31, 0xf6, //0x00003ed3 xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x00003ed6 cmpq $32, %r15 + 0x0f, 0x83, 0x67, 0xfe, 0xff, 0xff, //0x00003eda jae LBB17_23 + 0xe9, 0x46, 0xff, 0xff, 0xff, //0x00003ee0 jmp LBB17_35 + //0x00003ee5 LBB17_49 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003ee5 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00003eea jne LBB17_51 + 0x48, 0x89, 0xf1, //0x00003ef0 movq %rsi, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00003ef3 subq $-48(%rbp), %rcx + 0x49, 0x0f, 0xbc, 0xd2, //0x00003ef7 bsfq %r10, %rdx + 0x48, 0x01, 0xca, //0x00003efb addq %rcx, %rdx + 0x48, 0x8b, 0x4d, 0xc0, //0x00003efe movq $-64(%rbp), %rcx + 0x48, 0x89, 0x55, 0xc8, //0x00003f02 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x11, //0x00003f06 movq %rdx, (%rcx) + //0x00003f09 LBB17_51 + 0x44, 0x89, 0xf1, //0x00003f09 movl %r14d, %ecx + 0xf7, 0xd1, //0x00003f0c notl %ecx + 0x44, 0x21, 0xd1, //0x00003f0e andl %r10d, %ecx + 0x45, 0x8d, 0x04, 0x4e, //0x00003f11 leal (%r14,%rcx,2), %r8d + 0x8d, 0x14, 0x09, //0x00003f15 leal (%rcx,%rcx), %edx + 0xf7, 0xd2, //0x00003f18 notl %edx + 0x44, 0x21, 0xd2, //0x00003f1a andl %r10d, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003f1d andl $-1431655766, %edx + 0x45, 0x31, 0xf6, //0x00003f23 xorl %r14d, %r14d + 0x01, 0xca, //0x00003f26 addl %ecx, %edx + 0x41, 0x0f, 0x92, 0xc6, //0x00003f28 setb %r14b + 0x01, 0xd2, //0x00003f2c addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00003f2e xorl $1431655765, %edx + 0x44, 0x21, 0xc2, //0x00003f34 andl %r8d, %edx + 0xf7, 0xd2, //0x00003f37 notl %edx + 0x21, 0xd0, //0x00003f39 andl %edx, %eax + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x00003f3b jmp LBB17_26 + //0x00003f40 LBB17_52 + 0x48, 0x2b, 0x75, 0xd0, //0x00003f40 subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003f44 addq %rcx, %rsi + //0x00003f47 LBB17_53 + 0x48, 0x8b, 0x45, 0xc0, //0x00003f47 movq $-64(%rbp), %rax + 0x48, 0x89, 0x30, //0x00003f4b movq %rsi, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003f4e movq $-2, %rax + 0xe9, 0x87, 0xfd, 0xff, 0xff, //0x00003f55 jmp LBB17_17 + //0x00003f5a LBB17_54 + 0x4d, 0x85, 0xff, //0x00003f5a testq %r15, %r15 + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00003f5d je LBB17_47 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f63 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003f68 jne LBB17_57 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003f6e movq $-48(%rbp), %rcx + 0x48, 0xf7, 0xd1, //0x00003f72 notq %rcx + 0x48, 0x01, 0xf1, //0x00003f75 addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003f78 movq $-64(%rbp), %rax + 0x48, 0x89, 0x4d, 0xc8, //0x00003f7c movq %rcx, $-56(%rbp) + 0x48, 0x89, 0x08, //0x00003f80 movq %rcx, (%rax) + //0x00003f83 LBB17_57 + 0x48, 0x83, 0xc6, 0x01, //0x00003f83 addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x00003f87 addq $-1, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003f8b movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003f92 testq %r15, %r15 + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00003f95 jne LBB17_37 + 0xe9, 0x41, 0xfd, 0xff, 0xff, //0x00003f9b jmp LBB17_17 + //0x00003fa0 LBB17_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fa0 movq $-1, %rax + 0xe9, 0x35, 0xfd, 0xff, 0xff, //0x00003fa7 jmp LBB17_17 + //0x00003fac LBB17_58 + 0x48, 0x2b, 0x75, 0xd0, //0x00003fac subq $-48(%rbp), %rsi + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00003fb0 jmp LBB17_53 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003fb5 .p2align 4, 0x00 + //0x00003fc0 LCPI18_0 + 0x00, 0x00, 0x30, 0x43, //0x00003fc0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003fc4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003fc8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003fcc .long 0 + //0x00003fd0 LCPI18_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003fd0 .quad 0x4330000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003fd8 .quad 0x4530000000000000 + //0x00003fe0 .p2align 3, 0x00 + //0x00003fe0 LCPI18_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00003fe0 .quad 0x430c6bf526340000 + //0x00003fe8 LCPI18_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00003fe8 .quad 0xc30c6bf526340000 + //0x00003ff0 .p2align 4, 0x90 + //0x00003ff0 _vnumber + 0x55, //0x00003ff0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003ff1 movq %rsp, %rbp + 0x41, 0x57, //0x00003ff4 pushq %r15 + 0x41, 0x56, //0x00003ff6 pushq %r14 + 0x41, 0x55, //0x00003ff8 pushq %r13 + 0x41, 0x54, //0x00003ffa pushq %r12 + 0x53, //0x00003ffc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x00003ffd subq $72, %rsp + 0x49, 0x89, 0xd6, //0x00004001 movq %rdx, %r14 + 0x48, 0x8b, 0x06, //0x00004004 movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00004007 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x0000400a movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x5a, 0x20, //0x0000400e movq $32(%rdx), %r11 + 0x48, 0x8b, 0x5a, 0x28, //0x00004012 movq $40(%rdx), %rbx + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004016 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x0000401d vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00004021 vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00004026 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004029 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x0000402d cmpq %r13, %rax + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004030 jae LBB18_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004036 movb (%r15,%rax), %dil + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000403a movl $1, %r10d + 0x40, 0x80, 0xff, 0x2d, //0x00004040 cmpb $45, %dil + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004044 jne LBB18_4 + 0x48, 0x83, 0xc0, 0x01, //0x0000404a addq $1, %rax + 0x4c, 0x39, 0xe8, //0x0000404e cmpq %r13, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004051 jae LBB18_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004057 movb (%r15,%rax), %dil + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000405b movl $-1, %r10d + //0x00004061 LBB18_4 + 0x8d, 0x4f, 0xd0, //0x00004061 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00004064 cmpb $10, %cl + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004067 jb LBB18_9 + 0x48, 0x89, 0x06, //0x0000406d movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004070 movq $-2, (%r14) + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004077 jmp LBB18_8 + //0x0000407c LBB18_6 + 0x4c, 0x89, 0x2e, //0x0000407c movq %r13, (%rsi) + //0x0000407f LBB18_7 + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x0000407f movq $-1, (%r14) + //0x00004086 LBB18_8 + 0x48, 0x83, 0xc4, 0x48, //0x00004086 addq $72, %rsp + 0x5b, //0x0000408a popq %rbx + 0x41, 0x5c, //0x0000408b popq %r12 + 0x41, 0x5d, //0x0000408d popq %r13 + 0x41, 0x5e, //0x0000408f popq %r14 + 0x41, 0x5f, //0x00004091 popq %r15 + 0x5d, //0x00004093 popq %rbp + 0xc3, //0x00004094 retq + //0x00004095 LBB18_9 + 0x40, 0x80, 0xff, 0x30, //0x00004095 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004099 jne LBB18_13 + 0x4c, 0x8d, 0x48, 0x01, //0x0000409f leaq $1(%rax), %r9 + 0x4c, 0x39, 0xe8, //0x000040a3 cmpq %r13, %rax + 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x000040a6 jae LBB18_22 + 0x43, 0x8a, 0x14, 0x0f, //0x000040ac movb (%r15,%r9), %dl + 0x80, 0xc2, 0xd2, //0x000040b0 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x000040b3 cmpb $55, %dl + 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x000040b6 ja LBB18_22 + 0x44, 0x0f, 0xb6, 0xc2, //0x000040bc movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000040c0 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x000040ca btq %r8, %rdx + 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000040ce jae LBB18_22 + //0x000040d4 LBB18_13 + 0x4c, 0x39, 0xe8, //0x000040d4 cmpq %r13, %rax + 0x4c, 0x89, 0x5d, 0x98, //0x000040d7 movq %r11, $-104(%rbp) + 0x48, 0x89, 0x5d, 0xa0, //0x000040db movq %rbx, $-96(%rbp) + 0x48, 0x89, 0x75, 0xc8, //0x000040df movq %rsi, $-56(%rbp) + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x000040e3 jae LBB18_21 + 0x80, 0xf9, 0x09, //0x000040e9 cmpb $9, %cl + 0x44, 0x89, 0x55, 0xbc, //0x000040ec movl %r10d, $-68(%rbp) + 0xb1, 0x01, //0x000040f0 movb $1, %cl + 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x000040f2 ja LBB18_23 + 0x89, 0x4d, 0xd4, //0x000040f8 movl %ecx, $-44(%rbp) + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x000040fb movl $4294967248, %r9d + 0x4d, 0x8d, 0x55, 0xff, //0x00004101 leaq $-1(%r13), %r10 + 0x31, 0xc9, //0x00004105 xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x00004107 xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x0000410a xorl %r12d, %r12d + 0x90, 0x90, 0x90, //0x0000410d .p2align 4, 0x90 + //0x00004110 LBB18_16 + 0x41, 0x83, 0xf8, 0x12, //0x00004110 cmpl $18, %r8d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004114 jg LBB18_18 + 0x4b, 0x8d, 0x14, 0xa4, //0x0000411a leaq (%r12,%r12,4), %rdx + 0x40, 0x0f, 0xbe, 0xff, //0x0000411e movsbl %dil, %edi + 0x44, 0x01, 0xcf, //0x00004122 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004125 leaq (%rdi,%rdx,2), %r12 + 0x41, 0x83, 0xc0, 0x01, //0x00004129 addl $1, %r8d + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000412d jmp LBB18_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004132 .p2align 4, 0x90 + //0x00004140 LBB18_18 + 0x83, 0xc1, 0x01, //0x00004140 addl $1, %ecx + //0x00004143 LBB18_19 + 0x49, 0x39, 0xc2, //0x00004143 cmpq %rax, %r10 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004146 je LBB18_28 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x0000414c movzbl $1(%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004152 leal $-48(%rdi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00004155 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x00004159 cmpb $10, %dl + 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x0000415c jb LBB18_16 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004162 jmp LBB18_24 + //0x00004167 LBB18_21 + 0xb1, 0x01, //0x00004167 movb $1, %cl + 0x89, 0x4d, 0xd4, //0x00004169 movl %ecx, $-44(%rbp) + 0x31, 0xc9, //0x0000416c xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x0000416e xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x00004171 xorl %r12d, %r12d + 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004174 jmp LBB18_30 + //0x00004179 LBB18_22 + 0x4c, 0x89, 0x0e, //0x00004179 movq %r9, (%rsi) + 0xe9, 0x05, 0xff, 0xff, 0xff, //0x0000417c jmp LBB18_8 + //0x00004181 LBB18_23 + 0x89, 0x4d, 0xd4, //0x00004181 movl %ecx, $-44(%rbp) + 0x45, 0x31, 0xe4, //0x00004184 xorl %r12d, %r12d + 0x45, 0x31, 0xc0, //0x00004187 xorl %r8d, %r8d + 0x31, 0xc9, //0x0000418a xorl %ecx, %ecx + //0x0000418c LBB18_24 + 0x40, 0x80, 0xff, 0x2e, //0x0000418c cmpb $46, %dil + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00004190 jne LBB18_29 + 0x48, 0x83, 0xc0, 0x01, //0x00004196 addq $1, %rax + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000419a movq $8, (%r14) + 0x4c, 0x39, 0xe8, //0x000041a1 cmpq %r13, %rax + 0x0f, 0x83, 0x70, 0x02, 0x00, 0x00, //0x000041a4 jae LBB18_68 + 0x41, 0x8a, 0x14, 0x07, //0x000041aa movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x000041ae addb $-48, %dl + 0x80, 0xfa, 0x0a, //0x000041b1 cmpb $10, %dl + 0x0f, 0x83, 0x17, 0x04, 0x00, 0x00, //0x000041b4 jae LBB18_92 + 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x000041ba movl $0, $-44(%rbp) + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000041c1 jmp LBB18_29 + //0x000041c6 LBB18_28 + 0x4c, 0x89, 0xe8, //0x000041c6 movq %r13, %rax + //0x000041c9 LBB18_29 + 0x44, 0x8b, 0x55, 0xbc, //0x000041c9 movl $-68(%rbp), %r10d + //0x000041cd LBB18_30 + 0x45, 0x31, 0xdb, //0x000041cd xorl %r11d, %r11d + 0x85, 0xc9, //0x000041d0 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc3, //0x000041d2 setg %r11b + 0x4d, 0x85, 0xe4, //0x000041d6 testq %r12, %r12 + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x000041d9 jne LBB18_39 + 0x85, 0xc9, //0x000041df testl %ecx, %ecx + 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x000041e1 jne LBB18_39 + 0x4c, 0x39, 0xe8, //0x000041e7 cmpq %r13, %rax + 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x000041ea jae LBB18_37 + 0x89, 0xc6, //0x000041f0 movl %eax, %esi + 0x44, 0x29, 0xee, //0x000041f2 subl %r13d, %esi + 0x45, 0x31, 0xc0, //0x000041f5 xorl %r8d, %r8d + 0x31, 0xc9, //0x000041f8 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000041fa .p2align 4, 0x90 + //0x00004200 LBB18_34 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004200 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004205 jne LBB18_38 + 0x48, 0x83, 0xc0, 0x01, //0x0000420b addq $1, %rax + 0x83, 0xc1, 0xff, //0x0000420f addl $-1, %ecx + 0x49, 0x39, 0xc5, //0x00004212 cmpq %rax, %r13 + 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004215 jne LBB18_34 + 0x45, 0x31, 0xe4, //0x0000421b xorl %r12d, %r12d + 0x80, 0x7d, 0xd4, 0x00, //0x0000421e cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004222 jne LBB18_58 + 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004228 jmp LBB18_62 + //0x0000422d LBB18_37 + 0x31, 0xc9, //0x0000422d xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x0000422f xorl %r8d, %r8d + //0x00004232 LBB18_38 + 0x45, 0x31, 0xe4, //0x00004232 xorl %r12d, %r12d + //0x00004235 LBB18_39 + 0x4c, 0x39, 0xe8, //0x00004235 cmpq %r13, %rax + 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004238 jae LBB18_45 + 0x41, 0x83, 0xf8, 0x12, //0x0000423e cmpl $18, %r8d + 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004242 jg LBB18_45 + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004248 movl $4294967248, %r9d + 0x90, 0x90, //0x0000424e .p2align 4, 0x90 + //0x00004250 LBB18_42 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004250 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004255 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004258 cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000425b ja LBB18_45 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004261 leaq (%r12,%r12,4), %rdx + 0x44, 0x01, 0xcf, //0x00004265 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004268 leaq (%rdi,%rdx,2), %r12 + 0x83, 0xc1, 0xff, //0x0000426c addl $-1, %ecx + 0x48, 0x83, 0xc0, 0x01, //0x0000426f addq $1, %rax + 0x4c, 0x39, 0xe8, //0x00004273 cmpq %r13, %rax + 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004276 jae LBB18_45 + 0x41, 0x8d, 0x50, 0x01, //0x0000427c leal $1(%r8), %edx + 0x41, 0x83, 0xf8, 0x12, //0x00004280 cmpl $18, %r8d + 0x41, 0x89, 0xd0, //0x00004284 movl %edx, %r8d + 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x00004287 jl LBB18_42 + //0x0000428d LBB18_45 + 0x4c, 0x39, 0xe8, //0x0000428d cmpq %r13, %rax + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00004290 jae LBB18_57 + 0x41, 0x8a, 0x14, 0x07, //0x00004296 movb (%r15,%rax), %dl + 0x8d, 0x72, 0xd0, //0x0000429a leal $-48(%rdx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x0000429d cmpb $9, %sil + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000042a1 ja LBB18_51 + 0x49, 0x8d, 0x75, 0xff, //0x000042a7 leaq $-1(%r13), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000042ab .p2align 4, 0x90 + //0x000042b0 LBB18_48 + 0x48, 0x39, 0xc6, //0x000042b0 cmpq %rax, %rsi + 0x0f, 0x84, 0x6d, 0x01, 0x00, 0x00, //0x000042b3 je LBB18_69 + 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x000042b9 movzbl $1(%r15,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x000042bf leal $-48(%rdx), %edi + 0x48, 0x83, 0xc0, 0x01, //0x000042c2 addq $1, %rax + 0x40, 0x80, 0xff, 0x09, //0x000042c6 cmpb $9, %dil + 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x000042ca jbe LBB18_48 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000042d0 movl $1, %r11d + //0x000042d6 LBB18_51 + 0x80, 0xca, 0x20, //0x000042d6 orb $32, %dl + 0x80, 0xfa, 0x65, //0x000042d9 cmpb $101, %dl + 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x000042dc jne LBB18_57 + 0x48, 0x8d, 0x50, 0x01, //0x000042e2 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000042e6 movq $8, (%r14) + 0x4c, 0x39, 0xea, //0x000042ed cmpq %r13, %rdx + 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x000042f0 jae LBB18_68 + 0x44, 0x89, 0x5d, 0xd4, //0x000042f6 movl %r11d, $-44(%rbp) + 0x41, 0x8a, 0x34, 0x17, //0x000042fa movb (%r15,%rdx), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x000042fe cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004302 je LBB18_55 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004308 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000430e cmpb $43, %sil + 0x0f, 0x85, 0xa9, 0x02, 0x00, 0x00, //0x00004312 jne LBB18_90 + //0x00004318 LBB18_55 + 0x48, 0x83, 0xc0, 0x02, //0x00004318 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x0000431c cmpq %r13, %rax + 0x0f, 0x83, 0xf5, 0x00, 0x00, 0x00, //0x0000431f jae LBB18_68 + 0x31, 0xd2, //0x00004325 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004327 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x0000432b sete %dl + 0x44, 0x8d, 0x04, 0x12, //0x0000432e leal (%rdx,%rdx), %r8d + 0x41, 0x83, 0xc0, 0xff, //0x00004332 addl $-1, %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004336 movb (%r15,%rax), %sil + 0xe9, 0x85, 0x02, 0x00, 0x00, //0x0000433a jmp LBB18_91 + //0x0000433f LBB18_57 + 0x89, 0xce, //0x0000433f movl %ecx, %esi + 0x49, 0x89, 0xc5, //0x00004341 movq %rax, %r13 + 0x80, 0x7d, 0xd4, 0x00, //0x00004344 cmpb $0, $-44(%rbp) + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00004348 je LBB18_62 + //0x0000434e LBB18_58 + 0x85, 0xf6, //0x0000434e testl %esi, %esi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004350 jne LBB18_61 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004356 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xca, //0x00004360 movslq %r10d, %rcx + 0x4d, 0x85, 0xe4, //0x00004363 testq %r12, %r12 + 0x0f, 0x89, 0xed, 0x00, 0x00, 0x00, //0x00004366 jns LBB18_72 + 0x4c, 0x89, 0xe2, //0x0000436c movq %r12, %rdx + 0x48, 0x21, 0xca, //0x0000436f andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004372 cmpq %rax, %rdx + 0x0f, 0x84, 0xde, 0x00, 0x00, 0x00, //0x00004375 je LBB18_72 + //0x0000437b LBB18_61 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000437b movq $8, (%r14) + //0x00004382 LBB18_62 + 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x00004382 movq $0, $-80(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000438a vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x29, 0xfc, 0xff, 0xff, //0x0000438f vpunpckldq $-983(%rip), %xmm0, %xmm0 /* LCPI18_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x31, 0xfc, 0xff, 0xff, //0x00004397 vsubpd $-975(%rip), %xmm0, %xmm0 /* LCPI18_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000439f vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x000043a5 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000043a9 vmovsd %xmm0, $-64(%rbp) + 0x4c, 0x89, 0xe0, //0x000043ae movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000043b1 shrq $52, %rax + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000043b5 jne LBB18_78 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x000043bb vmovq %xmm0, %rcx + 0x44, 0x89, 0xd0, //0x000043c0 movl %r10d, %eax + 0xc1, 0xe8, 0x1f, //0x000043c3 shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x000043c6 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x000043ca orq %rcx, %rax + 0x48, 0x89, 0x45, 0xc0, //0x000043cd movq %rax, $-64(%rbp) + 0x85, 0xf6, //0x000043d1 testl %esi, %esi + 0x0f, 0x84, 0xa6, 0x01, 0x00, 0x00, //0x000043d3 je LBB18_85 + 0x4d, 0x85, 0xe4, //0x000043d9 testq %r12, %r12 + 0x0f, 0x84, 0x9d, 0x01, 0x00, 0x00, //0x000043dc je LBB18_85 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000043e2 vmovq %rax, %xmm0 + 0x8d, 0x46, 0xff, //0x000043e7 leal $-1(%rsi), %eax + 0x83, 0xf8, 0x24, //0x000043ea cmpl $36, %eax + 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x000043ed ja LBB18_70 + 0x83, 0xfe, 0x17, //0x000043f3 cmpl $23, %esi + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x000043f6 jl LBB18_73 + 0x8d, 0x46, 0xea, //0x000043fc leal $-22(%rsi), %eax + 0x48, 0x8d, 0x0d, 0xaa, 0xf2, 0x00, 0x00, //0x000043ff leaq $62122(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x00004406 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000440b vmovsd %xmm0, $-64(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004410 movl $22, %eax + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00004415 jmp LBB18_74 + //0x0000441a LBB18_68 + 0x48, 0x8b, 0x45, 0xc8, //0x0000441a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x0000441e movq %r13, (%rax) + 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00004421 jmp LBB18_7 + //0x00004426 LBB18_69 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004426 movl $1, %r11d + 0x89, 0xce, //0x0000442c movl %ecx, %esi + 0x80, 0x7d, 0xd4, 0x00, //0x0000442e cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x00004432 jne LBB18_58 + 0xe9, 0x45, 0xff, 0xff, 0xff, //0x00004438 jmp LBB18_62 + //0x0000443d LBB18_70 + 0x83, 0xfe, 0xea, //0x0000443d cmpl $-22, %esi + 0x0f, 0x82, 0x98, 0x00, 0x00, 0x00, //0x00004440 jb LBB18_78 + 0xf7, 0xde, //0x00004446 negl %esi + 0x48, 0x8d, 0x05, 0x61, 0xf2, 0x00, 0x00, //0x00004448 leaq $62049(%rip), %rax /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xf0, //0x0000444f vdivsd (%rax,%rsi,8), %xmm0, %xmm0 + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00004454 jmp LBB18_77 + //0x00004459 LBB18_72 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00004459 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x0000445e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0x56, 0xfb, 0xff, 0xff, //0x00004462 vpunpckldq $-1194(%rip), %xmm0, %xmm0 /* LCPI18_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x5e, 0xfb, 0xff, 0xff, //0x0000446a vsubpd $-1186(%rip), %xmm0, %xmm0 /* LCPI18_1+0(%rip) */ + 0x4d, 0x89, 0x66, 0x10, //0x00004472 movq %r12, $16(%r14) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00004476 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000447c vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00004480 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00004483 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00004488 orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x0000448b movq %rcx, $8(%r14) + 0x48, 0x8b, 0x45, 0xc8, //0x0000448f movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00004493 movq %r13, (%rax) + 0xe9, 0xeb, 0xfb, 0xff, 0xff, //0x00004496 jmp LBB18_8 + //0x0000449b LBB18_73 + 0x89, 0xf0, //0x0000449b movl %esi, %eax + //0x0000449d LBB18_74 + 0xc5, 0xf9, 0x2e, 0x05, 0x3b, 0xfb, 0xff, 0xff, //0x0000449d vucomisd $-1221(%rip), %xmm0 /* LCPI18_2+0(%rip) */ + 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x000044a5 ja LBB18_78 + 0xc5, 0xfb, 0x10, 0x0d, 0x35, 0xfb, 0xff, 0xff, //0x000044ab vmovsd $-1227(%rip), %xmm1 /* LCPI18_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x000044b3 vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000044b7 ja LBB18_78 + 0x89, 0xc0, //0x000044bd movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xea, 0xf1, 0x00, 0x00, //0x000044bf leaq $61930(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000044c6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + //0x000044cb LBB18_77 + 0x48, 0x8b, 0x5d, 0xc8, //0x000044cb movq $-56(%rbp), %rbx + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000044cf vmovsd %xmm0, $-64(%rbp) + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x000044d4 vmovq %xmm0, %rax + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000044d9 jmp LBB18_86 + //0x000044de LBB18_78 + 0x44, 0x89, 0x5d, 0xd4, //0x000044de movl %r11d, $-44(%rbp) + 0x48, 0x8d, 0x4d, 0xc0, //0x000044e2 leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x000044e6 movq %r12, %rdi + 0x44, 0x89, 0xd2, //0x000044e9 movl %r10d, %edx + 0x44, 0x89, 0xd3, //0x000044ec movl %r10d, %ebx + 0x48, 0x89, 0x75, 0xa8, //0x000044ef movq %rsi, $-88(%rbp) + 0xe8, 0x68, 0xe6, 0xff, 0xff, //0x000044f3 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x000044f8 testb %al, %al + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x000044fa je LBB18_83 + 0x48, 0x8b, 0x75, 0xa8, //0x00004500 movq $-88(%rbp), %rsi + 0x83, 0x7d, 0xd4, 0x00, //0x00004504 cmpl $0, $-44(%rbp) + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x00004508 je LBB18_84 + 0x89, 0xda, //0x0000450e movl %ebx, %edx + 0x49, 0x83, 0xc4, 0x01, //0x00004510 addq $1, %r12 + 0x48, 0x8d, 0x4d, 0xb0, //0x00004514 leaq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00004518 movq %r12, %rdi + 0xe8, 0x40, 0xe6, 0xff, 0xff, //0x0000451b callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004520 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00004522 je LBB18_83 + 0xc5, 0xfb, 0x10, 0x4d, 0xb0, //0x00004528 vmovsd $-80(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xc0, //0x0000452d vmovsd $-64(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x00004532 vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004536 jne LBB18_83 + 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x0000453c jp LBB18_83 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004542 vmovq %xmm0, %rax + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00004547 jmp LBB18_85 + //0x0000454c LBB18_83 + 0x48, 0x8b, 0x5d, 0xc8, //0x0000454c movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x03, //0x00004550 movq (%rbx), %rax + 0x49, 0x01, 0xc7, //0x00004553 addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00004556 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00004559 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x0000455c movq %r15, %rdi + 0x48, 0x8b, 0x55, 0x98, //0x0000455f movq $-104(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa0, //0x00004563 movq $-96(%rbp), %rcx + 0xe8, 0x64, 0xeb, 0xff, 0xff, //0x00004567 callq _atof_native + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000456c vmovsd %xmm0, $-64(%rbp) + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00004571 vmovq %xmm0, %rax + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004576 jmp LBB18_87 + //0x0000457b LBB18_84 + 0x48, 0x8b, 0x45, 0xc0, //0x0000457b movq $-64(%rbp), %rax + //0x0000457f LBB18_85 + 0x48, 0x8b, 0x5d, 0xc8, //0x0000457f movq $-56(%rbp), %rbx + //0x00004583 LBB18_86 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00004583 vmovq %rax, %xmm0 + //0x00004588 LBB18_87 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004588 movabsq $-9223372036854775808, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x00004592 addq $-1, %rcx + 0x48, 0x21, 0xc1, //0x00004596 andq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00004599 movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc1, //0x000045a3 cmpq %rax, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000045a6 jne LBB18_89 + 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x000045ac movq $-8, (%r14) + //0x000045b3 LBB18_89 + 0xc4, 0xc1, 0x7b, 0x11, 0x46, 0x08, //0x000045b3 vmovsd %xmm0, $8(%r14) + 0x4c, 0x89, 0x2b, //0x000045b9 movq %r13, (%rbx) + 0xe9, 0xc5, 0xfa, 0xff, 0xff, //0x000045bc jmp LBB18_8 + //0x000045c1 LBB18_90 + 0x48, 0x89, 0xd0, //0x000045c1 movq %rdx, %rax + //0x000045c4 LBB18_91 + 0x8d, 0x7e, 0xd0, //0x000045c4 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x000045c7 cmpb $9, %dil + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000045cb jbe LBB18_93 + //0x000045d1 LBB18_92 + 0x48, 0x8b, 0x4d, 0xc8, //0x000045d1 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000045d5 movq %rax, (%rcx) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000045d8 movq $-2, (%r14) + 0xe9, 0xa2, 0xfa, 0xff, 0xff, //0x000045df jmp LBB18_8 + //0x000045e4 LBB18_93 + 0x4c, 0x39, 0xe8, //0x000045e4 cmpq %r13, %rax + 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x000045e7 jae LBB18_99 + 0x40, 0x80, 0xff, 0x09, //0x000045ed cmpb $9, %dil + 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x000045f1 ja LBB18_99 + 0x4d, 0x8d, 0x4d, 0xff, //0x000045f7 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x000045fb xorl %edi, %edi + //0x000045fd LBB18_96 + 0x89, 0xfa, //0x000045fd movl %edi, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x000045ff movzbl %sil, %esi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004603 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x00004609 leal (%rdx,%rdx,4), %edi + 0x8d, 0x7c, 0x7e, 0xd0, //0x0000460c leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x00004610 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004613 cmpq %rax, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004616 je LBB18_100 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x0000461c movzbl $1(%r15,%rax), %esi + 0x8d, 0x56, 0xd0, //0x00004622 leal $-48(%rsi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00004625 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x00004629 cmpb $10, %dl + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x0000462c jb LBB18_96 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004632 jmp LBB18_101 + //0x00004637 LBB18_99 + 0x31, 0xff, //0x00004637 xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004639 jmp LBB18_101 + //0x0000463e LBB18_100 + 0x4c, 0x89, 0xe8, //0x0000463e movq %r13, %rax + //0x00004641 LBB18_101 + 0x48, 0x89, 0xfe, //0x00004641 movq %rdi, %rsi + 0x41, 0x0f, 0xaf, 0xf0, //0x00004644 imull %r8d, %esi + 0x01, 0xce, //0x00004648 addl %ecx, %esi + 0x49, 0x89, 0xc5, //0x0000464a movq %rax, %r13 + 0x44, 0x8b, 0x5d, 0xd4, //0x0000464d movl $-44(%rbp), %r11d + 0xe9, 0x2c, 0xfd, 0xff, 0xff, //0x00004651 jmp LBB18_62 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004656 .p2align 4, 0x90 + //0x00004660 _vsigned + 0x55, //0x00004660 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004661 movq %rsp, %rbp + 0x53, //0x00004664 pushq %rbx + 0x48, 0x8b, 0x06, //0x00004665 movq (%rsi), %rax + 0x4c, 0x8b, 0x0f, //0x00004668 movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000466b movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000466f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00004676 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000467a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000467f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004682 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x00004686 cmpq %r11, %rax + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00004689 jae LBB19_1 + 0x41, 0x8a, 0x0c, 0x01, //0x0000468f movb (%r9,%rax), %cl + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004693 movl $1, %r8d + 0x80, 0xf9, 0x2d, //0x00004699 cmpb $45, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000469c jne LBB19_5 + 0x48, 0x83, 0xc0, 0x01, //0x000046a2 addq $1, %rax + 0x4c, 0x39, 0xd8, //0x000046a6 cmpq %r11, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000046a9 jae LBB19_1 + 0x41, 0x8a, 0x0c, 0x01, //0x000046af movb (%r9,%rax), %cl + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000046b3 movq $-1, %r8 + //0x000046ba LBB19_5 + 0x8d, 0x79, 0xd0, //0x000046ba leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000046bd cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000046c1 jb LBB19_7 + 0x48, 0x89, 0x06, //0x000046c7 movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000046ca movq $-2, (%rdx) + 0x5b, //0x000046d1 popq %rbx + 0x5d, //0x000046d2 popq %rbp + 0xc3, //0x000046d3 retq + //0x000046d4 LBB19_1 + 0x4c, 0x89, 0x1e, //0x000046d4 movq %r11, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000046d7 movq $-1, (%rdx) + 0x5b, //0x000046de popq %rbx + 0x5d, //0x000046df popq %rbp + 0xc3, //0x000046e0 retq + //0x000046e1 LBB19_7 + 0x80, 0xf9, 0x30, //0x000046e1 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000046e4 jne LBB19_12 + 0x48, 0x8d, 0x78, 0x01, //0x000046ea leaq $1(%rax), %rdi + 0x4c, 0x39, 0xd8, //0x000046ee cmpq %r11, %rax + 0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, //0x000046f1 jae LBB19_11 + 0x41, 0x8a, 0x0c, 0x39, //0x000046f7 movb (%r9,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000046fb addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000046fe cmpb $55, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x00004701 ja LBB19_11 + 0x44, 0x0f, 0xb6, 0xd1, //0x00004707 movzbl %cl, %r10d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000470b movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd1, //0x00004715 btq %r10, %rcx + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x00004719 jae LBB19_11 + //0x0000471f LBB19_12 + 0x4c, 0x39, 0xd8, //0x0000471f cmpq %r11, %rax + 0x4d, 0x89, 0xda, //0x00004722 movq %r11, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00004725 cmovaq %rax, %r10 + 0x31, 0xc9, //0x00004729 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000472b .p2align 4, 0x90 + //0x00004730 LBB19_13 + 0x49, 0x39, 0xc2, //0x00004730 cmpq %rax, %r10 + 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00004733 je LBB19_23 + 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00004739 movsbq (%r9,%rax), %rdi + 0x8d, 0x5f, 0xd0, //0x0000473e leal $-48(%rdi), %ebx + 0x80, 0xfb, 0x09, //0x00004741 cmpb $9, %bl + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00004744 ja LBB19_18 + 0x48, 0x6b, 0xc9, 0x0a, //0x0000474a imulq $10, %rcx, %rcx + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000474e jo LBB19_17 + 0x48, 0x83, 0xc0, 0x01, //0x00004754 addq $1, %rax + 0x83, 0xc7, 0xd0, //0x00004758 addl $-48, %edi + 0x49, 0x0f, 0xaf, 0xf8, //0x0000475b imulq %r8, %rdi + 0x48, 0x01, 0xf9, //0x0000475f addq %rdi, %rcx + 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00004762 jno LBB19_13 + //0x00004768 LBB19_17 + 0x48, 0x83, 0xc0, 0xff, //0x00004768 addq $-1, %rax + 0x48, 0x89, 0x06, //0x0000476c movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000476f movq $-5, (%rdx) + 0x5b, //0x00004776 popq %rbx + 0x5d, //0x00004777 popq %rbp + 0xc3, //0x00004778 retq + //0x00004779 LBB19_11 + 0x48, 0x89, 0x3e, //0x00004779 movq %rdi, (%rsi) + 0x5b, //0x0000477c popq %rbx + 0x5d, //0x0000477d popq %rbp + 0xc3, //0x0000477e retq + //0x0000477f LBB19_18 + 0x4c, 0x39, 0xd8, //0x0000477f cmpq %r11, %rax + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00004782 jae LBB19_22 + 0x41, 0x8a, 0x3c, 0x01, //0x00004788 movb (%r9,%rax), %dil + 0x40, 0x80, 0xff, 0x2e, //0x0000478c cmpb $46, %dil + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00004790 je LBB19_25 + 0x40, 0x80, 0xff, 0x45, //0x00004796 cmpb $69, %dil + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000479a je LBB19_25 + 0x40, 0x80, 0xff, 0x65, //0x000047a0 cmpb $101, %dil + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000047a4 jne LBB19_22 + //0x000047aa LBB19_25 + 0x48, 0x89, 0x06, //0x000047aa movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000047ad movq $-6, (%rdx) + 0x5b, //0x000047b4 popq %rbx + 0x5d, //0x000047b5 popq %rbp + 0xc3, //0x000047b6 retq + //0x000047b7 LBB19_22 + 0x49, 0x89, 0xc2, //0x000047b7 movq %rax, %r10 + //0x000047ba LBB19_23 + 0x4c, 0x89, 0x16, //0x000047ba movq %r10, (%rsi) + 0x48, 0x89, 0x4a, 0x10, //0x000047bd movq %rcx, $16(%rdx) + 0x5b, //0x000047c1 popq %rbx + 0x5d, //0x000047c2 popq %rbp + 0xc3, //0x000047c3 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047c4 .p2align 4, 0x90 + //0x000047d0 _vunsigned + 0x55, //0x000047d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000047d1 movq %rsp, %rbp + 0x41, 0x56, //0x000047d4 pushq %r14 + 0x53, //0x000047d6 pushq %rbx + 0x49, 0x89, 0xd0, //0x000047d7 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000047da movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000047dd movq (%rdi), %r9 + 0x4c, 0x8b, 0x77, 0x08, //0x000047e0 movq $8(%rdi), %r14 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000047e4 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x000047eb vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000047ef vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x000047f4 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x000047f7 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xf1, //0x000047fb cmpq %r14, %rcx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x000047fe jae LBB20_1 + 0x41, 0x8a, 0x04, 0x09, //0x00004804 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x00004808 cmpb $45, %al + 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x0000480a jne LBB20_4 + //0x00004810 LBB20_3 + 0x48, 0x89, 0x0e, //0x00004810 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004813 movq $-6, (%r8) + 0x5b, //0x0000481a popq %rbx + 0x41, 0x5e, //0x0000481b popq %r14 + 0x5d, //0x0000481d popq %rbp + 0xc3, //0x0000481e retq + //0x0000481f LBB20_1 + 0x4c, 0x89, 0x36, //0x0000481f movq %r14, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004822 movq $-1, (%r8) + 0x5b, //0x00004829 popq %rbx + 0x41, 0x5e, //0x0000482a popq %r14 + 0x5d, //0x0000482c popq %rbp + 0xc3, //0x0000482d retq + //0x0000482e LBB20_4 + 0x8d, 0x50, 0xd0, //0x0000482e leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00004831 cmpb $10, %dl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00004834 jb LBB20_6 + 0x48, 0x89, 0x0e, //0x0000483a movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000483d movq $-2, (%r8) + 0x5b, //0x00004844 popq %rbx + 0x41, 0x5e, //0x00004845 popq %r14 + 0x5d, //0x00004847 popq %rbp + 0xc3, //0x00004848 retq + //0x00004849 LBB20_6 + 0x3c, 0x30, //0x00004849 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000484b jne LBB20_10 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00004851 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00004856 addb $-46, %al + 0x3c, 0x37, //0x00004858 cmpb $55, %al + 0x0f, 0x87, 0xc5, 0x00, 0x00, 0x00, //0x0000485a ja LBB20_9 + 0x0f, 0xb6, 0xc0, //0x00004860 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004863 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x0000486d btq %rax, %rdx + 0x0f, 0x83, 0xae, 0x00, 0x00, 0x00, //0x00004871 jae LBB20_9 + //0x00004877 LBB20_10 + 0x49, 0x39, 0xce, //0x00004877 cmpq %rcx, %r14 + 0x49, 0x89, 0xca, //0x0000487a movq %rcx, %r10 + 0x4d, 0x0f, 0x47, 0xd6, //0x0000487d cmovaq %r14, %r10 + 0x31, 0xc0, //0x00004881 xorl %eax, %eax + 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x00004883 movl $10, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004889 .p2align 4, 0x90 + //0x00004890 LBB20_11 + 0x49, 0x39, 0xca, //0x00004890 cmpq %rcx, %r10 + 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00004893 je LBB20_22 + 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x00004899 movsbl (%r9,%rcx), %ebx + 0x8d, 0x53, 0xd0, //0x0000489e leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x000048a1 cmpb $9, %dl + 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x000048a4 ja LBB20_17 + 0x49, 0xf7, 0xe3, //0x000048aa mulq %r11 + 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x000048ad jo LBB20_16 + 0x48, 0x83, 0xc1, 0x01, //0x000048b3 addq $1, %rcx + 0x83, 0xc3, 0xd0, //0x000048b7 addl $-48, %ebx + 0x31, 0xff, //0x000048ba xorl %edi, %edi + 0x48, 0x01, 0xd8, //0x000048bc addq %rbx, %rax + 0x40, 0x0f, 0x92, 0xc7, //0x000048bf setb %dil + 0x48, 0x89, 0xfa, //0x000048c3 movq %rdi, %rdx + 0x48, 0xf7, 0xda, //0x000048c6 negq %rdx + 0x48, 0x31, 0xd7, //0x000048c9 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000048cc jne LBB20_16 + 0x48, 0x85, 0xd2, //0x000048d2 testq %rdx, %rdx + 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000048d5 jns LBB20_11 + //0x000048db LBB20_16 + 0x48, 0x83, 0xc1, 0xff, //0x000048db addq $-1, %rcx + 0x48, 0x89, 0x0e, //0x000048df movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000048e2 movq $-5, (%r8) + 0x5b, //0x000048e9 popq %rbx + 0x41, 0x5e, //0x000048ea popq %r14 + 0x5d, //0x000048ec popq %rbp + 0xc3, //0x000048ed retq + //0x000048ee LBB20_17 + 0x4c, 0x39, 0xf1, //0x000048ee cmpq %r14, %rcx + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000048f1 jae LBB20_21 + 0x41, 0x8a, 0x14, 0x09, //0x000048f7 movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x2e, //0x000048fb cmpb $46, %dl + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000048fe je LBB20_3 + 0x80, 0xfa, 0x45, //0x00004904 cmpb $69, %dl + 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x00004907 je LBB20_3 + 0x80, 0xfa, 0x65, //0x0000490d cmpb $101, %dl + 0x0f, 0x84, 0xfa, 0xfe, 0xff, 0xff, //0x00004910 je LBB20_3 + //0x00004916 LBB20_21 + 0x49, 0x89, 0xca, //0x00004916 movq %rcx, %r10 + //0x00004919 LBB20_22 + 0x4c, 0x89, 0x16, //0x00004919 movq %r10, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x0000491c movq %rax, $16(%r8) + 0x5b, //0x00004920 popq %rbx + 0x41, 0x5e, //0x00004921 popq %r14 + 0x5d, //0x00004923 popq %rbp + 0xc3, //0x00004924 retq + //0x00004925 LBB20_9 + 0x48, 0x83, 0xc1, 0x01, //0x00004925 addq $1, %rcx + 0x48, 0x89, 0x0e, //0x00004929 movq %rcx, (%rsi) + 0x5b, //0x0000492c popq %rbx + 0x41, 0x5e, //0x0000492d popq %r14 + 0x5d, //0x0000492f popq %rbp + 0xc3, //0x00004930 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004931 .p2align 4, 0x00 + //0x00004940 LCPI21_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004940 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004948 .quad 5 + //0x00004950 .p2align 4, 0x90 + //0x00004950 _skip_array + 0x55, //0x00004950 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004951 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004954 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004957 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000495a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000495d vmovaps $-37(%rip), %xmm0 /* LCPI21_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00004965 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004969 movq %rax, %rdi + 0x5d, //0x0000496c popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000496d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004972 .p2align 4, 0x90 + //0x00004980 _fsm_exec + 0x55, //0x00004980 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004981 movq %rsp, %rbp + 0x41, 0x57, //0x00004984 pushq %r15 + 0x41, 0x56, //0x00004986 pushq %r14 + 0x41, 0x55, //0x00004988 pushq %r13 + 0x41, 0x54, //0x0000498a pushq %r12 + 0x53, //0x0000498c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000498d subq $40, %rsp + 0x48, 0x89, 0x4d, 0xb0, //0x00004991 movq %rcx, $-80(%rbp) + 0x48, 0x83, 0x3f, 0x00, //0x00004995 cmpq $0, (%rdi) + 0x0f, 0x84, 0xfc, 0x04, 0x00, 0x00, //0x00004999 je LBB22_86 + 0x49, 0x89, 0xd0, //0x0000499f movq %rdx, %r8 + 0x49, 0x89, 0xfb, //0x000049a2 movq %rdi, %r11 + 0x48, 0x8d, 0x46, 0x08, //0x000049a5 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x000049a9 movq %rax, $-48(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000049ad movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000049b4 movabsq $4294977024, %r12 + 0x48, 0x89, 0x75, 0xc0, //0x000049be movq %rsi, $-64(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x000049c2 movq %rdi, $-72(%rbp) + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000049c6 jmp LBB22_5 + //0x000049cb LBB22_2 + 0x48, 0x8d, 0x48, 0x03, //0x000049cb leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x000049cf movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000049d2 testq %rax, %rax + 0x0f, 0x8e, 0xc7, 0x04, 0x00, 0x00, //0x000049d5 jle LBB22_87 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000049db .p2align 4, 0x90 + //0x000049e0 LBB22_3 + 0x4d, 0x8b, 0x13, //0x000049e0 movq (%r11), %r10 + 0x4d, 0x89, 0xf7, //0x000049e3 movq %r14, %r15 + 0x4d, 0x85, 0xd2, //0x000049e6 testq %r10, %r10 + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000049e9 je LBB22_87 + //0x000049ef LBB22_5 + 0x4d, 0x89, 0xf1, //0x000049ef movq %r14, %r9 + 0x48, 0x8b, 0x3e, //0x000049f2 movq (%rsi), %rdi + 0x48, 0x8b, 0x4e, 0x08, //0x000049f5 movq $8(%rsi), %rcx + 0x49, 0x8b, 0x10, //0x000049f9 movq (%r8), %rdx + 0x48, 0x39, 0xca, //0x000049fc cmpq %rcx, %rdx + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x000049ff jae LBB22_10 + 0x8a, 0x1c, 0x17, //0x00004a05 movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00004a08 cmpb $13, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00004a0b je LBB22_10 + 0x80, 0xfb, 0x20, //0x00004a11 cmpb $32, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a14 je LBB22_10 + 0x80, 0xc3, 0xf7, //0x00004a1a addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a1d cmpb $1, %bl + 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x00004a20 jbe LBB22_10 + 0x49, 0x89, 0xd6, //0x00004a26 movq %rdx, %r14 + 0xe9, 0xfa, 0x00, 0x00, 0x00, //0x00004a29 jmp LBB22_31 + 0x90, 0x90, //0x00004a2e .p2align 4, 0x90 + //0x00004a30 LBB22_10 + 0x4c, 0x8d, 0x72, 0x01, //0x00004a30 leaq $1(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004a34 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a37 jae LBB22_14 + 0x42, 0x8a, 0x1c, 0x37, //0x00004a3d movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004a41 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a44 je LBB22_14 + 0x80, 0xfb, 0x20, //0x00004a4a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a4d je LBB22_14 + 0x80, 0xc3, 0xf7, //0x00004a53 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a56 cmpb $1, %bl + 0x0f, 0x87, 0xc9, 0x00, 0x00, 0x00, //0x00004a59 ja LBB22_31 + 0x90, //0x00004a5f .p2align 4, 0x90 + //0x00004a60 LBB22_14 + 0x4c, 0x8d, 0x72, 0x02, //0x00004a60 leaq $2(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004a64 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a67 jae LBB22_18 + 0x42, 0x8a, 0x1c, 0x37, //0x00004a6d movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004a71 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a74 je LBB22_18 + 0x80, 0xfb, 0x20, //0x00004a7a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a7d je LBB22_18 + 0x80, 0xc3, 0xf7, //0x00004a83 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a86 cmpb $1, %bl + 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x00004a89 ja LBB22_31 + 0x90, //0x00004a8f .p2align 4, 0x90 + //0x00004a90 LBB22_18 + 0x4c, 0x8d, 0x72, 0x03, //0x00004a90 leaq $3(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004a94 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a97 jae LBB22_22 + 0x42, 0x8a, 0x1c, 0x37, //0x00004a9d movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004aa1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004aa4 je LBB22_22 + 0x80, 0xfb, 0x20, //0x00004aaa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004aad je LBB22_22 + 0x80, 0xc3, 0xf7, //0x00004ab3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004ab6 cmpb $1, %bl + 0x0f, 0x87, 0x69, 0x00, 0x00, 0x00, //0x00004ab9 ja LBB22_31 + 0x90, //0x00004abf .p2align 4, 0x90 + //0x00004ac0 LBB22_22 + 0x48, 0x83, 0xc2, 0x04, //0x00004ac0 addq $4, %rdx + 0x48, 0x39, 0xd1, //0x00004ac4 cmpq %rdx, %rcx + 0x0f, 0x86, 0xcb, 0x03, 0x00, 0x00, //0x00004ac7 jbe LBB22_85 + 0x48, 0x39, 0xd1, //0x00004acd cmpq %rdx, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00004ad0 je LBB22_28 + 0x48, 0x8d, 0x04, 0x0f, //0x00004ad6 leaq (%rdi,%rcx), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004ada .p2align 4, 0x90 + //0x00004ae0 LBB22_25 + 0x0f, 0xbe, 0x1c, 0x17, //0x00004ae0 movsbl (%rdi,%rdx), %ebx + 0x83, 0xfb, 0x20, //0x00004ae4 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004ae7 ja LBB22_30 + 0x49, 0x0f, 0xa3, 0xdc, //0x00004aed btq %rbx, %r12 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004af1 jae LBB22_30 + 0x48, 0x83, 0xc2, 0x01, //0x00004af7 addq $1, %rdx + 0x48, 0x39, 0xd1, //0x00004afb cmpq %rdx, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00004afe jne LBB22_25 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004b04 jmp LBB22_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b09 .p2align 4, 0x90 + //0x00004b10 LBB22_28 + 0x48, 0x01, 0xfa, //0x00004b10 addq %rdi, %rdx + 0x48, 0x89, 0xd0, //0x00004b13 movq %rdx, %rax + //0x00004b16 LBB22_29 + 0x48, 0x29, 0xf8, //0x00004b16 subq %rdi, %rax + 0x48, 0x89, 0xc2, //0x00004b19 movq %rax, %rdx + //0x00004b1c LBB22_30 + 0x49, 0x89, 0xd6, //0x00004b1c movq %rdx, %r14 + 0x48, 0x39, 0xca, //0x00004b1f cmpq %rcx, %rdx + 0x0f, 0x83, 0x73, 0x03, 0x00, 0x00, //0x00004b22 jae LBB22_86 + //0x00004b28 LBB22_31 + 0x49, 0x8d, 0x4e, 0x01, //0x00004b28 leaq $1(%r14), %rcx + 0x49, 0x89, 0x08, //0x00004b2c movq %rcx, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x37, //0x00004b2f movsbl (%rdi,%r14), %ecx + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004b34 movq $-1, %r15 + 0x85, 0xc9, //0x00004b3b testl %ecx, %ecx + 0x0f, 0x84, 0x5f, 0x03, 0x00, 0x00, //0x00004b3d je LBB22_87 + 0x4d, 0x8b, 0x2b, //0x00004b43 movq (%r11), %r13 + 0x4d, 0x8d, 0x55, 0xff, //0x00004b46 leaq $-1(%r13), %r10 + 0x43, 0x8b, 0x1c, 0xeb, //0x00004b4a movl (%r11,%r13,8), %ebx + 0x49, 0x83, 0xf9, 0xff, //0x00004b4e cmpq $-1, %r9 + 0x4d, 0x0f, 0x45, 0xf1, //0x00004b52 cmovneq %r9, %r14 + 0x83, 0xc3, 0xff, //0x00004b56 addl $-1, %ebx + 0x83, 0xfb, 0x05, //0x00004b59 cmpl $5, %ebx + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00004b5c ja LBB22_37 + 0x48, 0x8d, 0x15, 0x8f, 0x04, 0x00, 0x00, //0x00004b62 leaq $1167(%rip), %rdx /* LJTI22_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x9a, //0x00004b69 movslq (%rdx,%rbx,4), %rax + 0x48, 0x01, 0xd0, //0x00004b6d addq %rdx, %rax + 0xff, 0xe0, //0x00004b70 jmpq *%rax + //0x00004b72 LBB22_34 + 0x83, 0xf9, 0x2c, //0x00004b72 cmpl $44, %ecx + 0x0f, 0x84, 0x6c, 0x01, 0x00, 0x00, //0x00004b75 je LBB22_53 + 0x83, 0xf9, 0x5d, //0x00004b7b cmpl $93, %ecx + 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00004b7e je LBB22_36 + 0xe9, 0x56, 0x04, 0x00, 0x00, //0x00004b84 jmp LBB22_90 + //0x00004b89 LBB22_37 + 0x4d, 0x89, 0x13, //0x00004b89 movq %r10, (%r11) + 0x83, 0xf9, 0x7b, //0x00004b8c cmpl $123, %ecx + 0x0f, 0x86, 0xba, 0x00, 0x00, 0x00, //0x00004b8f jbe LBB22_49 + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00004b95 jmp LBB22_90 + //0x00004b9a LBB22_38 + 0x83, 0xf9, 0x2c, //0x00004b9a cmpl $44, %ecx + 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x00004b9d jne LBB22_39 + 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004ba3 cmpq $4095, %r13 + 0x0f, 0x8f, 0x04, 0x03, 0x00, 0x00, //0x00004baa jg LBB22_92 + 0x49, 0x8d, 0x45, 0x01, //0x00004bb0 leaq $1(%r13), %rax + 0x49, 0x89, 0x03, //0x00004bb4 movq %rax, (%r11) + 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004bb7 movq $3, $8(%r11,%r13,8) + 0xe9, 0x1b, 0xfe, 0xff, 0xff, //0x00004bc0 jmp LBB22_3 + //0x00004bc5 LBB22_40 + 0x80, 0xf9, 0x22, //0x00004bc5 cmpb $34, %cl + 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00004bc8 jne LBB22_90 + 0x4b, 0xc7, 0x04, 0xeb, 0x04, 0x00, 0x00, 0x00, //0x00004bce movq $4, (%r11,%r13,8) + //0x00004bd6 LBB22_42 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004bd6 movq $-1, $-56(%rbp) + 0x4d, 0x8b, 0x28, //0x00004bde movq (%r8), %r13 + 0x48, 0x89, 0xf7, //0x00004be1 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004be4 movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc8, //0x00004be7 leaq $-56(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004beb movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x00004bef movq %r8, %rbx + 0xe8, 0xd9, 0xee, 0xff, 0xff, //0x00004bf2 callq _advance_string + 0x49, 0x89, 0xc7, //0x00004bf7 movq %rax, %r15 + 0x48, 0x85, 0xc0, //0x00004bfa testq %rax, %rax + 0x0f, 0x88, 0xbd, 0x02, 0x00, 0x00, //0x00004bfd js LBB22_88 + 0x4c, 0x89, 0x3b, //0x00004c03 movq %r15, (%rbx) + 0x4d, 0x85, 0xed, //0x00004c06 testq %r13, %r13 + 0x49, 0x89, 0xd8, //0x00004c09 movq %rbx, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x00004c0c movq $-64(%rbp), %rsi + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c10 movq $-72(%rbp), %r11 + 0x0f, 0x8f, 0xc6, 0xfd, 0xff, 0xff, //0x00004c14 jg LBB22_3 + 0xe9, 0xb9, 0x02, 0x00, 0x00, //0x00004c1a jmp LBB22_44 + //0x00004c1f LBB22_45 + 0x80, 0xf9, 0x3a, //0x00004c1f cmpb $58, %cl + 0x0f, 0x85, 0xb7, 0x03, 0x00, 0x00, //0x00004c22 jne LBB22_90 + 0x4b, 0xc7, 0x04, 0xeb, 0x00, 0x00, 0x00, 0x00, //0x00004c28 movq $0, (%r11,%r13,8) + 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00004c30 jmp LBB22_3 + //0x00004c35 LBB22_47 + 0x80, 0xf9, 0x5d, //0x00004c35 cmpb $93, %cl + 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00004c38 je LBB22_36 + 0x4b, 0xc7, 0x04, 0xeb, 0x01, 0x00, 0x00, 0x00, //0x00004c3e movq $1, (%r11,%r13,8) + 0x83, 0xf9, 0x7b, //0x00004c46 cmpl $123, %ecx + 0x0f, 0x87, 0x90, 0x03, 0x00, 0x00, //0x00004c49 ja LBB22_90 + //0x00004c4f LBB22_49 + 0x89, 0xc8, //0x00004c4f movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xb8, 0x03, 0x00, 0x00, //0x00004c51 leaq $952(%rip), %rcx /* LJTI22_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00004c58 movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00004c5c addq %rcx, %rax + 0xff, 0xe0, //0x00004c5f jmpq *%rax + //0x00004c61 LBB22_52 + 0x49, 0x8b, 0x18, //0x00004c61 movq (%r8), %rbx + 0x4c, 0x8d, 0x7b, 0xff, //0x00004c64 leaq $-1(%rbx), %r15 + 0x48, 0x01, 0xdf, //0x00004c68 addq %rbx, %rdi + 0x48, 0x83, 0xc7, 0xff, //0x00004c6b addq $-1, %rdi + 0x48, 0x8b, 0x45, 0xd0, //0x00004c6f movq $-48(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004c73 movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004c76 subq %r15, %rsi + 0x4d, 0x89, 0xc5, //0x00004c79 movq %r8, %r13 + 0xe8, 0xff, 0x06, 0x00, 0x00, //0x00004c7c callq _do_skip_number + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c81 movq $-72(%rbp), %r11 + 0x48, 0x8b, 0x75, 0xc0, //0x00004c85 movq $-64(%rbp), %rsi + 0x4d, 0x89, 0xe8, //0x00004c89 movq %r13, %r8 + 0x48, 0x8d, 0x48, 0xff, //0x00004c8c leaq $-1(%rax), %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004c90 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00004c97 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x00004c9a testq %rax, %rax + 0x48, 0x0f, 0x49, 0xd1, //0x00004c9d cmovnsq %rcx, %rdx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004ca1 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x00004ca8 cmovsq %rax, %r15 + 0x48, 0x01, 0xda, //0x00004cac addq %rbx, %rdx + 0x49, 0x89, 0x55, 0x00, //0x00004caf movq %rdx, (%r13) + 0x4d, 0x85, 0xff, //0x00004cb3 testq %r15, %r15 + 0x0f, 0x89, 0x24, 0xfd, 0xff, 0xff, //0x00004cb6 jns LBB22_3 + 0xe9, 0xe1, 0x01, 0x00, 0x00, //0x00004cbc jmp LBB22_87 + //0x00004cc1 LBB22_50 + 0x83, 0xf9, 0x22, //0x00004cc1 cmpl $34, %ecx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00004cc4 je LBB22_57 + //0x00004cca LBB22_39 + 0x83, 0xf9, 0x7d, //0x00004cca cmpl $125, %ecx + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00004ccd jne LBB22_90 + //0x00004cd3 LBB22_36 + 0x4d, 0x89, 0x13, //0x00004cd3 movq %r10, (%r11) + 0x4d, 0x89, 0xf7, //0x00004cd6 movq %r14, %r15 + 0x4d, 0x85, 0xd2, //0x00004cd9 testq %r10, %r10 + 0x0f, 0x85, 0x0d, 0xfd, 0xff, 0xff, //0x00004cdc jne LBB22_5 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00004ce2 jmp LBB22_87 + //0x00004ce7 LBB22_53 + 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004ce7 cmpq $4095, %r13 + 0x0f, 0x8f, 0xc0, 0x01, 0x00, 0x00, //0x00004cee jg LBB22_92 + 0x49, 0x8d, 0x45, 0x01, //0x00004cf4 leaq $1(%r13), %rax + 0x49, 0x89, 0x03, //0x00004cf8 movq %rax, (%r11) + 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004cfb movq $0, $8(%r11,%r13,8) + 0xe9, 0xd7, 0xfc, 0xff, 0xff, //0x00004d04 jmp LBB22_3 + //0x00004d09 LBB22_57 + 0x4b, 0xc7, 0x04, 0xeb, 0x02, 0x00, 0x00, 0x00, //0x00004d09 movq $2, (%r11,%r13,8) + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004d11 movq $-1, $-56(%rbp) + 0x4d, 0x8b, 0x28, //0x00004d19 movq (%r8), %r13 + 0x48, 0x89, 0xf7, //0x00004d1c movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004d1f movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc8, //0x00004d22 leaq $-56(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004d26 movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x00004d2a movq %r8, %rbx + 0xe8, 0x9e, 0xed, 0xff, 0xff, //0x00004d2d callq _advance_string + 0x49, 0x89, 0xc7, //0x00004d32 movq %rax, %r15 + 0x48, 0x85, 0xc0, //0x00004d35 testq %rax, %rax + 0x0f, 0x88, 0x82, 0x01, 0x00, 0x00, //0x00004d38 js LBB22_88 + 0x4c, 0x89, 0x3b, //0x00004d3e movq %r15, (%rbx) + 0x4d, 0x85, 0xed, //0x00004d41 testq %r13, %r13 + 0x0f, 0x8e, 0x8e, 0x01, 0x00, 0x00, //0x00004d44 jle LBB22_44 + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004d4a movq $-72(%rbp), %r11 + 0x49, 0x8b, 0x03, //0x00004d4e movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004d51 cmpq $4095, %rax + 0x0f, 0x8f, 0x57, 0x01, 0x00, 0x00, //0x00004d57 jg LBB22_92 + 0x49, 0x89, 0xd8, //0x00004d5d movq %rbx, %r8 + 0x48, 0x8d, 0x48, 0x01, //0x00004d60 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004d64 movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004d67 movq $4, $8(%r11,%rax,8) + 0x48, 0x8b, 0x75, 0xc0, //0x00004d70 movq $-64(%rbp), %rsi + 0xe9, 0x67, 0xfc, 0xff, 0xff, //0x00004d74 jmp LBB22_3 + //0x00004d79 LBB22_61 + 0x4d, 0x8b, 0x38, //0x00004d79 movq (%r8), %r15 + 0x4c, 0x01, 0xff, //0x00004d7c addq %r15, %rdi + 0x48, 0x8b, 0x45, 0xd0, //0x00004d7f movq $-48(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004d83 movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004d86 subq %r15, %rsi + 0x4c, 0x89, 0xc3, //0x00004d89 movq %r8, %rbx + 0xe8, 0xef, 0x05, 0x00, 0x00, //0x00004d8c callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004d91 testq %rax, %rax + 0x0f, 0x88, 0x52, 0x01, 0x00, 0x00, //0x00004d94 js LBB22_89 + 0x4c, 0x01, 0xf8, //0x00004d9a addq %r15, %rax + 0x48, 0x89, 0x03, //0x00004d9d movq %rax, (%rbx) + 0x4d, 0x85, 0xff, //0x00004da0 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x00004da3 movq %rbx, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x00004da6 movq $-64(%rbp), %rsi + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004daa movq $-72(%rbp), %r11 + 0x0f, 0x8f, 0x2c, 0xfc, 0xff, 0xff, //0x00004dae jg LBB22_3 + 0xe9, 0x93, 0x01, 0x00, 0x00, //0x00004db4 jmp LBB22_63 + //0x00004db9 LBB22_64 + 0x49, 0x8b, 0x03, //0x00004db9 movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004dbc cmpq $4095, %rax + 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x00004dc2 jg LBB22_92 + 0x48, 0x8d, 0x48, 0x01, //0x00004dc8 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004dcc movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004dcf movq $5, $8(%r11,%rax,8) + 0xe9, 0x03, 0xfc, 0xff, 0xff, //0x00004dd8 jmp LBB22_3 + //0x00004ddd LBB22_66 + 0x49, 0x8b, 0x00, //0x00004ddd movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004de0 movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004de4 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004de7 leaq $-4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004deb cmpq %rdx, %rax + 0x0f, 0x87, 0xf0, 0x00, 0x00, 0x00, //0x00004dee ja LBB22_91 + 0x8b, 0x0c, 0x07, //0x00004df4 movl (%rdi,%rax), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004df7 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xf7, 0x00, 0x00, 0x00, //0x00004dfd jne LBB22_93 + 0x48, 0x8d, 0x48, 0x04, //0x00004e03 leaq $4(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004e07 movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x00004e0a testq %rax, %rax + 0x0f, 0x8f, 0xcd, 0xfb, 0xff, 0xff, //0x00004e0d jg LBB22_3 + 0xe9, 0xd3, 0x01, 0x00, 0x00, //0x00004e13 jmp LBB22_69 + //0x00004e18 LBB22_70 + 0x49, 0x8b, 0x00, //0x00004e18 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004e1b movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004e1f movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00004e22 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004e26 cmpq %rdx, %rax + 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00004e29 ja LBB22_91 + 0x4c, 0x8d, 0x78, 0xff, //0x00004e2f leaq $-1(%rax), %r15 + 0x81, 0x7c, 0x07, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00004e33 cmpl $1819047278, $-1(%rdi,%rax) + 0x0f, 0x84, 0x8a, 0xfb, 0xff, 0xff, //0x00004e3b je LBB22_2 + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00004e41 jmp LBB22_72 + //0x00004e46 LBB22_76 + 0x49, 0x8b, 0x00, //0x00004e46 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004e49 movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004e4d movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00004e50 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004e54 cmpq %rdx, %rax + 0x0f, 0x87, 0x87, 0x00, 0x00, 0x00, //0x00004e57 ja LBB22_91 + 0x4c, 0x8d, 0x78, 0xff, //0x00004e5d leaq $-1(%rax), %r15 + 0x81, 0x7c, 0x07, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00004e61 cmpl $1702195828, $-1(%rdi,%rax) + 0x0f, 0x84, 0x5c, 0xfb, 0xff, 0xff, //0x00004e69 je LBB22_2 + 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00004e6f jmp LBB22_78 + //0x00004e74 LBB22_83 + 0x49, 0x8b, 0x03, //0x00004e74 movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004e77 cmpq $4095, %rax + 0x0f, 0x8f, 0x31, 0x00, 0x00, 0x00, //0x00004e7d jg LBB22_92 + 0x48, 0x8d, 0x48, 0x01, //0x00004e83 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004e87 movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004e8a movq $6, $8(%r11,%rax,8) + 0xe9, 0x48, 0xfb, 0xff, 0xff, //0x00004e93 jmp LBB22_3 + //0x00004e98 LBB22_85 + 0x49, 0x89, 0x10, //0x00004e98 movq %rdx, (%r8) + //0x00004e9b LBB22_86 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004e9b movq $-1, %r15 + //0x00004ea2 LBB22_87 + 0x4c, 0x89, 0xf8, //0x00004ea2 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x28, //0x00004ea5 addq $40, %rsp + 0x5b, //0x00004ea9 popq %rbx + 0x41, 0x5c, //0x00004eaa popq %r12 + 0x41, 0x5d, //0x00004eac popq %r13 + 0x41, 0x5e, //0x00004eae popq %r14 + 0x41, 0x5f, //0x00004eb0 popq %r15 + 0x5d, //0x00004eb2 popq %rbp + 0xc3, //0x00004eb3 retq + //0x00004eb4 LBB22_92 + 0x49, 0xc7, 0xc7, 0xf9, 0xff, 0xff, 0xff, //0x00004eb4 movq $-7, %r15 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00004ebb jmp LBB22_87 + //0x00004ec0 LBB22_88 + 0x49, 0x83, 0xff, 0xff, //0x00004ec0 cmpq $-1, %r15 + 0x48, 0x8d, 0x45, 0xc8, //0x00004ec4 leaq $-56(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xd0, //0x00004ec8 cmoveq $-48(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004ecd movq (%rax), %rax + 0x48, 0x89, 0x03, //0x00004ed0 movq %rax, (%rbx) + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00004ed3 jmp LBB22_87 + //0x00004ed8 LBB22_44 + 0x49, 0x83, 0xc5, 0xff, //0x00004ed8 addq $-1, %r13 + 0x4d, 0x89, 0xef, //0x00004edc movq %r13, %r15 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004edf jmp LBB22_87 + //0x00004ee4 LBB22_91 + 0x49, 0x89, 0x08, //0x00004ee4 movq %rcx, (%r8) + 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x00004ee7 jmp LBB22_87 + //0x00004eec LBB22_89 + 0x48, 0xf7, 0xd0, //0x00004eec notq %rax + 0x49, 0x01, 0xc7, //0x00004eef addq %rax, %r15 + 0x4c, 0x89, 0x3b, //0x00004ef2 movq %r15, (%rbx) + 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00004ef5 jmp LBB22_90 + //0x00004efa LBB22_93 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004efa movq $-2, %r15 + 0x80, 0xf9, 0x61, //0x00004f01 cmpb $97, %cl + 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00004f04 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x01, //0x00004f0a leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f0e movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f11 cmpb $108, $1(%rdi,%rax) + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00004f16 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x02, //0x00004f1c leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f20 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x73, //0x00004f23 cmpb $115, $2(%rdi,%rax) + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00004f28 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x03, //0x00004f2e leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f32 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x03, 0x65, //0x00004f35 cmpb $101, $3(%rdi,%rax) + 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x00004f3a jne LBB22_87 + 0x48, 0x83, 0xc0, 0x04, //0x00004f40 addq $4, %rax + 0x49, 0x89, 0x00, //0x00004f44 movq %rax, (%r8) + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x00004f47 jmp LBB22_87 + //0x00004f4c LBB22_63 + 0x49, 0x83, 0xc7, 0xff, //0x00004f4c addq $-1, %r15 + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00004f50 jmp LBB22_87 + //0x00004f55 LBB22_72 + 0x4d, 0x89, 0x38, //0x00004f55 movq %r15, (%r8) + 0x42, 0x80, 0x3c, 0x3f, 0x6e, //0x00004f58 cmpb $110, (%rdi,%r15) + 0x0f, 0x85, 0x7c, 0x00, 0x00, 0x00, //0x00004f5d jne LBB22_90 + 0x49, 0x89, 0x00, //0x00004f63 movq %rax, (%r8) + 0x80, 0x3c, 0x07, 0x75, //0x00004f66 cmpb $117, (%rdi,%rax) + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004f6a jne LBB22_90 + 0x48, 0x8d, 0x48, 0x01, //0x00004f70 leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f74 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f77 cmpb $108, $1(%rdi,%rax) + 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004f7c jne LBB22_90 + 0x48, 0x8d, 0x48, 0x02, //0x00004f82 leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f86 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00004f89 cmpb $108, $2(%rdi,%rax) + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00004f8e je LBB22_82 + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00004f94 jmp LBB22_90 + //0x00004f99 LBB22_78 + 0x4d, 0x89, 0x38, //0x00004f99 movq %r15, (%r8) + 0x42, 0x80, 0x3c, 0x3f, 0x74, //0x00004f9c cmpb $116, (%rdi,%r15) + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00004fa1 jne LBB22_90 + 0x49, 0x89, 0x00, //0x00004fa7 movq %rax, (%r8) + 0x80, 0x3c, 0x07, 0x72, //0x00004faa cmpb $114, (%rdi,%rax) + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00004fae jne LBB22_90 + 0x48, 0x8d, 0x48, 0x01, //0x00004fb4 leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004fb8 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00004fbb cmpb $117, $1(%rdi,%rax) + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00004fc0 jne LBB22_90 + 0x48, 0x8d, 0x48, 0x02, //0x00004fc6 leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004fca movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00004fcd cmpb $101, $2(%rdi,%rax) + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004fd2 jne LBB22_90 + //0x00004fd8 LBB22_82 + 0x48, 0x83, 0xc0, 0x03, //0x00004fd8 addq $3, %rax + 0x49, 0x89, 0x00, //0x00004fdc movq %rax, (%r8) + //0x00004fdf LBB22_90 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004fdf movq $-2, %r15 + 0xe9, 0xb7, 0xfe, 0xff, 0xff, //0x00004fe6 jmp LBB22_87 + //0x00004feb LBB22_69 + 0x48, 0x83, 0xc0, 0xff, //0x00004feb addq $-1, %rax + 0x49, 0x89, 0xc7, //0x00004fef movq %rax, %r15 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00004ff2 jmp LBB22_87 + 0x90, //0x00004ff7 .p2align 2, 0x90 + // // .set L22_0_set_34, LBB22_34-LJTI22_0 + // // .set L22_0_set_38, LBB22_38-LJTI22_0 + // // .set L22_0_set_40, LBB22_40-LJTI22_0 + // // .set L22_0_set_45, LBB22_45-LJTI22_0 + // // .set L22_0_set_47, LBB22_47-LJTI22_0 + // // .set L22_0_set_50, LBB22_50-LJTI22_0 + //0x00004ff8 LJTI22_0 + 0x7a, 0xfb, 0xff, 0xff, //0x00004ff8 .long L22_0_set_34 + 0xa2, 0xfb, 0xff, 0xff, //0x00004ffc .long L22_0_set_38 + 0xcd, 0xfb, 0xff, 0xff, //0x00005000 .long L22_0_set_40 + 0x27, 0xfc, 0xff, 0xff, //0x00005004 .long L22_0_set_45 + 0x3d, 0xfc, 0xff, 0xff, //0x00005008 .long L22_0_set_47 + 0xc9, 0xfc, 0xff, 0xff, //0x0000500c .long L22_0_set_50 + // // .set L22_1_set_87, LBB22_87-LJTI22_1 + // // .set L22_1_set_90, LBB22_90-LJTI22_1 + // // .set L22_1_set_42, LBB22_42-LJTI22_1 + // // .set L22_1_set_61, LBB22_61-LJTI22_1 + // // .set L22_1_set_52, LBB22_52-LJTI22_1 + // // .set L22_1_set_64, LBB22_64-LJTI22_1 + // // .set L22_1_set_66, LBB22_66-LJTI22_1 + // // .set L22_1_set_70, LBB22_70-LJTI22_1 + // // .set L22_1_set_76, LBB22_76-LJTI22_1 + // // .set L22_1_set_83, LBB22_83-LJTI22_1 + //0x00005010 LJTI22_1 + 0x92, 0xfe, 0xff, 0xff, //0x00005010 .long L22_1_set_87 + 0xcf, 0xff, 0xff, 0xff, //0x00005014 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005018 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000501c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005020 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005024 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005028 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000502c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005030 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005034 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005038 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000503c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005040 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005044 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005048 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000504c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005050 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005054 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005058 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000505c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005060 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005064 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005068 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000506c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005070 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005074 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005078 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000507c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005080 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005084 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005088 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000508c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005090 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005094 .long L22_1_set_90 + 0xc6, 0xfb, 0xff, 0xff, //0x00005098 .long L22_1_set_42 + 0xcf, 0xff, 0xff, 0xff, //0x0000509c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050a0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050a4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050a8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050ac .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050bc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050c0 .long L22_1_set_90 + 0x69, 0xfd, 0xff, 0xff, //0x000050c4 .long L22_1_set_61 + 0xcf, 0xff, 0xff, 0xff, //0x000050c8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050cc .long L22_1_set_90 + 0x51, 0xfc, 0xff, 0xff, //0x000050d0 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050d4 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050d8 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050dc .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050e0 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050e4 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050e8 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050ec .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050f0 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050f4 .long L22_1_set_52 + 0xcf, 0xff, 0xff, 0xff, //0x000050f8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050fc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005100 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005104 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005108 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000510c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005110 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005114 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005118 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000511c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005120 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005124 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005128 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000512c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005130 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005134 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005138 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000513c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005140 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005144 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005148 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000514c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005150 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005154 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005158 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000515c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005160 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005164 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005168 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000516c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005170 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005174 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005178 .long L22_1_set_90 + 0xa9, 0xfd, 0xff, 0xff, //0x0000517c .long L22_1_set_64 + 0xcf, 0xff, 0xff, 0xff, //0x00005180 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005184 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005188 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000518c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005190 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005194 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005198 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000519c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051a0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051a4 .long L22_1_set_90 + 0xcd, 0xfd, 0xff, 0xff, //0x000051a8 .long L22_1_set_66 + 0xcf, 0xff, 0xff, 0xff, //0x000051ac .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051b0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051b4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051b8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051bc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051c0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051c4 .long L22_1_set_90 + 0x08, 0xfe, 0xff, 0xff, //0x000051c8 .long L22_1_set_70 + 0xcf, 0xff, 0xff, 0xff, //0x000051cc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051d0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051d4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051d8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051dc .long L22_1_set_90 + 0x36, 0xfe, 0xff, 0xff, //0x000051e0 .long L22_1_set_76 + 0xcf, 0xff, 0xff, 0xff, //0x000051e4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051e8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051ec .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051f0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051f4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051f8 .long L22_1_set_90 + 0x64, 0xfe, 0xff, 0xff, //0x000051fc .long L22_1_set_83 + //0x00005200 .p2align 4, 0x00 + //0x00005200 LCPI23_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005200 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005208 .quad 6 + //0x00005210 .p2align 4, 0x90 + //0x00005210 _skip_object + 0x55, //0x00005210 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005211 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005214 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005217 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000521a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000521d vmovaps $-37(%rip), %xmm0 /* LCPI23_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005225 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005229 movq %rax, %rdi + 0x5d, //0x0000522c popq %rbp + 0xe9, 0x4e, 0xf7, 0xff, 0xff, //0x0000522d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005232 .p2align 4, 0x90 + //0x00005240 _skip_string + 0x55, //0x00005240 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005241 movq %rsp, %rbp + 0x41, 0x57, //0x00005244 pushq %r15 + 0x41, 0x56, //0x00005246 pushq %r14 + 0x41, 0x54, //0x00005248 pushq %r12 + 0x53, //0x0000524a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000524b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x0000524f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00005252 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00005255 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005258 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00005260 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00005263 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00005267 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x0000526a movq %r12, %rdx + 0xe8, 0x5e, 0xe8, 0xff, 0xff, //0x0000526d callq _advance_string + 0x48, 0x85, 0xc0, //0x00005272 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005275 js LBB24_1 + 0x48, 0x83, 0xc3, 0xff, //0x0000527b addq $-1, %rbx + 0x48, 0x89, 0xc1, //0x0000527f movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00005282 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005285 jmp LBB24_3 + //0x0000528a LBB24_1 + 0x49, 0x83, 0xc7, 0x08, //0x0000528a addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x0000528e cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00005292 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00005296 movq (%r12), %rcx + //0x0000529a LBB24_3 + 0x49, 0x89, 0x0e, //0x0000529a movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x0000529d addq $16, %rsp + 0x5b, //0x000052a1 popq %rbx + 0x41, 0x5c, //0x000052a2 popq %r12 + 0x41, 0x5e, //0x000052a4 popq %r14 + 0x41, 0x5f, //0x000052a6 popq %r15 + 0x5d, //0x000052a8 popq %rbp + 0xc3, //0x000052a9 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000052aa .p2align 4, 0x90 + //0x000052b0 _skip_negative + 0x55, //0x000052b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000052b1 movq %rsp, %rbp + 0x41, 0x56, //0x000052b4 pushq %r14 + 0x53, //0x000052b6 pushq %rbx + 0x49, 0x89, 0xf6, //0x000052b7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x000052ba movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x000052bd movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000052c0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000052c3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000052c7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000052ca movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x000052cd callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000052d2 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000052d5 js LBB25_1 + 0x48, 0x01, 0xd8, //0x000052db addq %rbx, %rax + 0x49, 0x89, 0x06, //0x000052de movq %rax, (%r14) + 0x48, 0x83, 0xc3, 0xff, //0x000052e1 addq $-1, %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000052e5 jmp LBB25_3 + //0x000052ea LBB25_1 + 0x48, 0xf7, 0xd0, //0x000052ea notq %rax + 0x48, 0x01, 0xc3, //0x000052ed addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x000052f0 movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000052f3 movq $-2, %rbx + //0x000052fa LBB25_3 + 0x48, 0x89, 0xd8, //0x000052fa movq %rbx, %rax + 0x5b, //0x000052fd popq %rbx + 0x41, 0x5e, //0x000052fe popq %r14 + 0x5d, //0x00005300 popq %rbp + 0xc3, //0x00005301 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005302 .p2align 4, 0x00 + //0x00005310 LCPI26_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005310 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005320 LCPI26_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005320 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005330 LCPI26_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005330 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005340 LCPI26_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005340 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005350 LCPI26_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005350 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00005360 LCPI26_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005360 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005370 LCPI26_6 + 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005370 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' + //0x00005380 .p2align 4, 0x90 + //0x00005380 _do_skip_number + 0x55, //0x00005380 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005381 movq %rsp, %rbp + 0x41, 0x57, //0x00005384 pushq %r15 + 0x41, 0x56, //0x00005386 pushq %r14 + 0x53, //0x00005388 pushq %rbx + 0x48, 0x85, 0xf6, //0x00005389 testq %rsi, %rsi + 0x0f, 0x84, 0x36, 0x02, 0x00, 0x00, //0x0000538c je LBB26_1 + 0x80, 0x3f, 0x30, //0x00005392 cmpb $48, (%rdi) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005395 jne LBB26_6 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000539b movl $1, %eax + 0x48, 0x83, 0xfe, 0x01, //0x000053a0 cmpq $1, %rsi + 0x0f, 0x84, 0xb9, 0x02, 0x00, 0x00, //0x000053a4 je LBB26_55 + 0x8a, 0x4f, 0x01, //0x000053aa movb $1(%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000053ad addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000053b0 cmpb $55, %cl + 0x0f, 0x87, 0xaa, 0x02, 0x00, 0x00, //0x000053b3 ja LBB26_55 + 0x0f, 0xb6, 0xc9, //0x000053b9 movzbl %cl, %ecx + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053bc movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000053c6 btq %rcx, %rdx + 0x0f, 0x83, 0x93, 0x02, 0x00, 0x00, //0x000053ca jae LBB26_55 + //0x000053d0 LBB26_6 + 0x48, 0x83, 0xfe, 0x10, //0x000053d0 cmpq $16, %rsi + 0x0f, 0x82, 0xf2, 0x02, 0x00, 0x00, //0x000053d4 jb LBB26_7 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053da movq $-1, %r10 + 0x31, 0xc0, //0x000053e1 xorl %eax, %eax + 0xc5, 0x79, 0x6f, 0x05, 0x25, 0xff, 0xff, 0xff, //0x000053e3 vmovdqa $-219(%rip), %xmm8 /* LCPI26_0+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x000053eb vmovdqa $-211(%rip), %xmm9 /* LCPI26_1+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x35, 0xff, 0xff, 0xff, //0x000053f3 vmovdqa $-203(%rip), %xmm10 /* LCPI26_2+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0x3d, 0xff, 0xff, 0xff, //0x000053fb vmovdqa $-195(%rip), %xmm11 /* LCPI26_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x45, 0xff, 0xff, 0xff, //0x00005403 vmovdqa $-187(%rip), %xmm4 /* LCPI26_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x4d, 0xff, 0xff, 0xff, //0x0000540b vmovdqa $-179(%rip), %xmm5 /* LCPI26_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0x55, 0xff, 0xff, 0xff, //0x00005413 vmovdqa $-171(%rip), %xmm6 /* LCPI26_6+0(%rip) */ + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000541b movq $-1, %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005422 movq $-1, %r8 + 0x49, 0x89, 0xf6, //0x00005429 movq %rsi, %r14 + 0x90, 0x90, 0x90, 0x90, //0x0000542c .p2align 4, 0x90 + //0x00005430 LBB26_9 + 0xc5, 0xfa, 0x6f, 0x3c, 0x07, //0x00005430 vmovdqu (%rdi,%rax), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00005435 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x0000543a vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000543e vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00005442 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00005446 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000544a vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xdb, 0xd4, //0x0000544e vpand %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00005452 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00005456 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000545a vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000545e vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00005462 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00005466 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xfa, //0x0000546a vpmovmskb %xmm2, %r15d + 0xc5, 0x79, 0xd7, 0xd9, //0x0000546e vpmovmskb %xmm1, %r11d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005472 vpmovmskb %xmm0, %ecx + 0xf7, 0xd1, //0x00005476 notl %ecx + 0x0f, 0xbc, 0xc9, //0x00005478 bsfl %ecx, %ecx + 0x83, 0xf9, 0x10, //0x0000547b cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000547e je LBB26_11 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00005484 movl $-1, %ebx + 0xd3, 0xe3, //0x00005489 shll %cl, %ebx + 0xf7, 0xd3, //0x0000548b notl %ebx + 0x21, 0xda, //0x0000548d andl %ebx, %edx + 0x41, 0x21, 0xdf, //0x0000548f andl %ebx, %r15d + 0x44, 0x21, 0xdb, //0x00005492 andl %r11d, %ebx + 0x41, 0x89, 0xdb, //0x00005495 movl %ebx, %r11d + //0x00005498 LBB26_11 + 0x8d, 0x5a, 0xff, //0x00005498 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x0000549b andl %edx, %ebx + 0x0f, 0x85, 0x06, 0x02, 0x00, 0x00, //0x0000549d jne LBB26_12 + 0x41, 0x8d, 0x5f, 0xff, //0x000054a3 leal $-1(%r15), %ebx + 0x44, 0x21, 0xfb, //0x000054a7 andl %r15d, %ebx + 0x0f, 0x85, 0xf9, 0x01, 0x00, 0x00, //0x000054aa jne LBB26_12 + 0x41, 0x8d, 0x5b, 0xff, //0x000054b0 leal $-1(%r11), %ebx + 0x44, 0x21, 0xdb, //0x000054b4 andl %r11d, %ebx + 0x0f, 0x85, 0xec, 0x01, 0x00, 0x00, //0x000054b7 jne LBB26_12 + 0x85, 0xd2, //0x000054bd testl %edx, %edx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000054bf je LBB26_19 + 0x0f, 0xbc, 0xd2, //0x000054c5 bsfl %edx, %edx + 0x49, 0x83, 0xf8, 0xff, //0x000054c8 cmpq $-1, %r8 + 0x0f, 0x85, 0xed, 0x01, 0x00, 0x00, //0x000054cc jne LBB26_56 + 0x48, 0x01, 0xc2, //0x000054d2 addq %rax, %rdx + 0x49, 0x89, 0xd0, //0x000054d5 movq %rdx, %r8 + //0x000054d8 LBB26_19 + 0x45, 0x85, 0xff, //0x000054d8 testl %r15d, %r15d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054db je LBB26_22 + 0x41, 0x0f, 0xbc, 0xd7, //0x000054e1 bsfl %r15d, %edx + 0x49, 0x83, 0xf9, 0xff, //0x000054e5 cmpq $-1, %r9 + 0x0f, 0x85, 0xd0, 0x01, 0x00, 0x00, //0x000054e9 jne LBB26_56 + 0x48, 0x01, 0xc2, //0x000054ef addq %rax, %rdx + 0x49, 0x89, 0xd1, //0x000054f2 movq %rdx, %r9 + //0x000054f5 LBB26_22 + 0x45, 0x85, 0xdb, //0x000054f5 testl %r11d, %r11d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054f8 je LBB26_25 + 0x41, 0x0f, 0xbc, 0xd3, //0x000054fe bsfl %r11d, %edx + 0x49, 0x83, 0xfa, 0xff, //0x00005502 cmpq $-1, %r10 + 0x0f, 0x85, 0xb3, 0x01, 0x00, 0x00, //0x00005506 jne LBB26_56 + 0x48, 0x01, 0xc2, //0x0000550c addq %rax, %rdx + 0x49, 0x89, 0xd2, //0x0000550f movq %rdx, %r10 + //0x00005512 LBB26_25 + 0x83, 0xf9, 0x10, //0x00005512 cmpl $16, %ecx + 0x0f, 0x85, 0xb9, 0x00, 0x00, 0x00, //0x00005515 jne LBB26_57 + 0x49, 0x83, 0xc6, 0xf0, //0x0000551b addq $-16, %r14 + 0x48, 0x83, 0xc0, 0x10, //0x0000551f addq $16, %rax + 0x49, 0x83, 0xfe, 0x0f, //0x00005523 cmpq $15, %r14 + 0x0f, 0x87, 0x03, 0xff, 0xff, 0xff, //0x00005527 ja LBB26_9 + 0x48, 0x8d, 0x0c, 0x07, //0x0000552d leaq (%rdi,%rax), %rcx + 0x49, 0x89, 0xcb, //0x00005531 movq %rcx, %r11 + 0x48, 0x39, 0xc6, //0x00005534 cmpq %rax, %rsi + 0x0f, 0x84, 0xa0, 0x00, 0x00, 0x00, //0x00005537 je LBB26_41 + //0x0000553d LBB26_28 + 0x4e, 0x8d, 0x1c, 0x31, //0x0000553d leaq (%rcx,%r14), %r11 + 0x48, 0x89, 0xce, //0x00005541 movq %rcx, %rsi + 0x48, 0x29, 0xfe, //0x00005544 subq %rdi, %rsi + 0x31, 0xc0, //0x00005547 xorl %eax, %eax + 0x4c, 0x8d, 0x3d, 0x9c, 0x01, 0x00, 0x00, //0x00005549 leaq $412(%rip), %r15 /* LJTI26_0+0(%rip) */ + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x00005550 jmp LBB26_29 + //0x00005555 LBB26_31 + 0x83, 0xfa, 0x65, //0x00005555 cmpl $101, %edx + 0x0f, 0x85, 0x94, 0x00, 0x00, 0x00, //0x00005558 jne LBB26_40 + //0x0000555e LBB26_32 + 0x49, 0x83, 0xf9, 0xff, //0x0000555e cmpq $-1, %r9 + 0x0f, 0x85, 0x49, 0x01, 0x00, 0x00, //0x00005562 jne LBB26_58 + 0x4c, 0x8d, 0x0c, 0x06, //0x00005568 leaq (%rsi,%rax), %r9 + 0x90, 0x90, 0x90, 0x90, //0x0000556c .p2align 4, 0x90 + //0x00005570 LBB26_39 + 0x48, 0x83, 0xc0, 0x01, //0x00005570 addq $1, %rax + 0x49, 0x39, 0xc6, //0x00005574 cmpq %rax, %r14 + 0x0f, 0x84, 0x60, 0x00, 0x00, 0x00, //0x00005577 je LBB26_41 + //0x0000557d LBB26_29 + 0x0f, 0xbe, 0x14, 0x01, //0x0000557d movsbl (%rcx,%rax), %edx + 0x8d, 0x5a, 0xd0, //0x00005581 leal $-48(%rdx), %ebx + 0x83, 0xfb, 0x0a, //0x00005584 cmpl $10, %ebx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x00005587 jb LBB26_39 + 0x8d, 0x5a, 0xd5, //0x0000558d leal $-43(%rdx), %ebx + 0x83, 0xfb, 0x1a, //0x00005590 cmpl $26, %ebx + 0x0f, 0x87, 0xbc, 0xff, 0xff, 0xff, //0x00005593 ja LBB26_31 + 0x49, 0x63, 0x14, 0x9f, //0x00005599 movslq (%r15,%rbx,4), %rdx + 0x4c, 0x01, 0xfa, //0x0000559d addq %r15, %rdx + 0xff, 0xe2, //0x000055a0 jmpq *%rdx + //0x000055a2 LBB26_37 + 0x49, 0x83, 0xfa, 0xff, //0x000055a2 cmpq $-1, %r10 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x000055a6 jne LBB26_58 + 0x4c, 0x8d, 0x14, 0x06, //0x000055ac leaq (%rsi,%rax), %r10 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x000055b0 jmp LBB26_39 + //0x000055b5 LBB26_35 + 0x49, 0x83, 0xf8, 0xff, //0x000055b5 cmpq $-1, %r8 + 0x0f, 0x85, 0xf2, 0x00, 0x00, 0x00, //0x000055b9 jne LBB26_58 + 0x4c, 0x8d, 0x04, 0x06, //0x000055bf leaq (%rsi,%rax), %r8 + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x000055c3 jmp LBB26_39 + //0x000055c8 LBB26_1 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055c8 movq $-1, %rax + 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x000055cf jmp LBB26_55 + //0x000055d4 LBB26_57 + 0x41, 0x89, 0xcb, //0x000055d4 movl %ecx, %r11d + 0x49, 0x01, 0xfb, //0x000055d7 addq %rdi, %r11 + 0x49, 0x01, 0xc3, //0x000055da addq %rax, %r11 + //0x000055dd LBB26_41 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055dd movq $-1, %rax + 0x4d, 0x85, 0xc0, //0x000055e4 testq %r8, %r8 + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x000055e7 jne LBB26_42 + 0xe9, 0x71, 0x00, 0x00, 0x00, //0x000055ed jmp LBB26_55 + //0x000055f2 LBB26_40 + 0x48, 0x01, 0xc1, //0x000055f2 addq %rax, %rcx + 0x49, 0x89, 0xcb, //0x000055f5 movq %rcx, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055f8 movq $-1, %rax + 0x4d, 0x85, 0xc0, //0x000055ff testq %r8, %r8 + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00005602 je LBB26_55 + //0x00005608 LBB26_42 + 0x4d, 0x85, 0xd2, //0x00005608 testq %r10, %r10 + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x0000560b je LBB26_55 + 0x4d, 0x85, 0xc9, //0x00005611 testq %r9, %r9 + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005614 je LBB26_55 + 0x49, 0x29, 0xfb, //0x0000561a subq %rdi, %r11 + 0x49, 0x8d, 0x43, 0xff, //0x0000561d leaq $-1(%r11), %rax + 0x49, 0x39, 0xc0, //0x00005621 cmpq %rax, %r8 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00005624 je LBB26_47 + 0x49, 0x39, 0xc2, //0x0000562a cmpq %rax, %r10 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000562d je LBB26_47 + 0x49, 0x39, 0xc1, //0x00005633 cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005636 je LBB26_47 + 0x4d, 0x85, 0xd2, //0x0000563c testq %r10, %r10 + 0x0f, 0x8e, 0x25, 0x00, 0x00, 0x00, //0x0000563f jle LBB26_51 + 0x49, 0x8d, 0x42, 0xff, //0x00005645 leaq $-1(%r10), %rax + 0x49, 0x39, 0xc1, //0x00005649 cmpq %rax, %r9 + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x0000564c je LBB26_51 + 0x49, 0xf7, 0xd2, //0x00005652 notq %r10 + 0x4c, 0x89, 0xd0, //0x00005655 movq %r10, %rax + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00005658 jmp LBB26_55 + //0x0000565d LBB26_47 + 0x49, 0xf7, 0xdb, //0x0000565d negq %r11 + 0x4c, 0x89, 0xd8, //0x00005660 movq %r11, %rax + //0x00005663 LBB26_55 + 0x5b, //0x00005663 popq %rbx + 0x41, 0x5e, //0x00005664 popq %r14 + 0x41, 0x5f, //0x00005666 popq %r15 + 0x5d, //0x00005668 popq %rbp + 0xc3, //0x00005669 retq + //0x0000566a LBB26_51 + 0x4c, 0x89, 0xc0, //0x0000566a movq %r8, %rax + 0x4c, 0x09, 0xc8, //0x0000566d orq %r9, %rax + 0x0f, 0x99, 0xc0, //0x00005670 setns %al + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00005673 js LBB26_54 + 0x4d, 0x39, 0xc8, //0x00005679 cmpq %r9, %r8 + 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000567c jl LBB26_54 + 0x49, 0xf7, 0xd0, //0x00005682 notq %r8 + 0x4c, 0x89, 0xc0, //0x00005685 movq %r8, %rax + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00005688 jmp LBB26_55 + //0x0000568d LBB26_54 + 0x49, 0x8d, 0x49, 0xff, //0x0000568d leaq $-1(%r9), %rcx + 0x49, 0x39, 0xc8, //0x00005691 cmpq %rcx, %r8 + 0x49, 0xf7, 0xd1, //0x00005694 notq %r9 + 0x4d, 0x0f, 0x45, 0xcb, //0x00005697 cmovneq %r11, %r9 + 0x84, 0xc0, //0x0000569b testb %al, %al + 0x4d, 0x0f, 0x44, 0xcb, //0x0000569d cmoveq %r11, %r9 + 0x4c, 0x89, 0xc8, //0x000056a1 movq %r9, %rax + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000056a4 jmp LBB26_55 + //0x000056a9 LBB26_12 + 0x0f, 0xbc, 0xcb, //0x000056a9 bsfl %ebx, %ecx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000056ac jmp LBB26_13 + //0x000056b1 LBB26_58 + 0x48, 0x29, 0xcf, //0x000056b1 subq %rcx, %rdi + 0x48, 0xf7, 0xd0, //0x000056b4 notq %rax + 0x48, 0x01, 0xf8, //0x000056b7 addq %rdi, %rax + 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x000056ba jmp LBB26_55 + //0x000056bf LBB26_56 + 0x89, 0xd1, //0x000056bf movl %edx, %ecx + //0x000056c1 LBB26_13 + 0x48, 0xf7, 0xd0, //0x000056c1 notq %rax + 0x48, 0x29, 0xc8, //0x000056c4 subq %rcx, %rax + 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000056c7 jmp LBB26_55 + //0x000056cc LBB26_7 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000056cc movq $-1, %r8 + 0x48, 0x89, 0xf9, //0x000056d3 movq %rdi, %rcx + 0x49, 0x89, 0xf6, //0x000056d6 movq %rsi, %r14 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056d9 movq $-1, %r9 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000056e0 movq $-1, %r10 + 0xe9, 0x51, 0xfe, 0xff, 0xff, //0x000056e7 jmp LBB26_28 + //0x000056ec .p2align 2, 0x90 + // // .set L26_0_set_37, LBB26_37-LJTI26_0 + // // .set L26_0_set_40, LBB26_40-LJTI26_0 + // // .set L26_0_set_35, LBB26_35-LJTI26_0 + // // .set L26_0_set_32, LBB26_32-LJTI26_0 + //0x000056ec LJTI26_0 + 0xb6, 0xfe, 0xff, 0xff, //0x000056ec .long L26_0_set_37 + 0x06, 0xff, 0xff, 0xff, //0x000056f0 .long L26_0_set_40 + 0xb6, 0xfe, 0xff, 0xff, //0x000056f4 .long L26_0_set_37 + 0xc9, 0xfe, 0xff, 0xff, //0x000056f8 .long L26_0_set_35 + 0x06, 0xff, 0xff, 0xff, //0x000056fc .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005700 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005704 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005708 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000570c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005710 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005714 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005718 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000571c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005720 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005724 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005728 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000572c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005730 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005734 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005738 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000573c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005740 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005744 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005748 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000574c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005750 .long L26_0_set_40 + 0x72, 0xfe, 0xff, 0xff, //0x00005754 .long L26_0_set_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005758 .p2align 4, 0x90 + //0x00005760 _skip_positive + 0x55, //0x00005760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005761 movq %rsp, %rbp + 0x41, 0x57, //0x00005764 pushq %r15 + 0x41, 0x56, //0x00005766 pushq %r14 + 0x53, //0x00005768 pushq %rbx + 0x50, //0x00005769 pushq %rax + 0x49, 0x89, 0xf6, //0x0000576a movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x0000576d movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x00005770 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x00005774 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005777 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x0000577a movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x0000577e subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005781 movq %rax, %rdi + 0xe8, 0xf7, 0xfb, 0xff, 0xff, //0x00005784 callq _do_skip_number + 0x48, 0x8d, 0x50, 0xff, //0x00005789 leaq $-1(%rax), %rdx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000578d movq $-2, %rcx + 0x48, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005794 movq $-2, %rsi + 0x48, 0x29, 0xc6, //0x0000579b subq %rax, %rsi + 0x48, 0x85, 0xc0, //0x0000579e testq %rax, %rax + 0x48, 0x0f, 0x49, 0xf2, //0x000057a1 cmovnsq %rdx, %rsi + 0x48, 0x0f, 0x49, 0xcb, //0x000057a5 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xfe, //0x000057a9 addq %r15, %rsi + 0x49, 0x89, 0x36, //0x000057ac movq %rsi, (%r14) + 0x48, 0x89, 0xc8, //0x000057af movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000057b2 addq $8, %rsp + 0x5b, //0x000057b6 popq %rbx + 0x41, 0x5e, //0x000057b7 popq %r14 + 0x41, 0x5f, //0x000057b9 popq %r15 + 0x5d, //0x000057bb popq %rbp + 0xc3, //0x000057bc retq + 0x90, 0x90, 0x90, //0x000057bd .p2align 4, 0x90 + //0x000057c0 _skip_number + 0x55, //0x000057c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000057c1 movq %rsp, %rbp + 0x41, 0x57, //0x000057c4 pushq %r15 + 0x41, 0x56, //0x000057c6 pushq %r14 + 0x41, 0x55, //0x000057c8 pushq %r13 + 0x41, 0x54, //0x000057ca pushq %r12 + 0x53, //0x000057cc pushq %rbx + 0x50, //0x000057cd pushq %rax + 0x49, 0x89, 0xf6, //0x000057ce movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x000057d1 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x000057d4 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x000057d8 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x000057db subq %r13, %rsi + 0x31, 0xc0, //0x000057de xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x000057e0 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x000057e5 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x000057e9 sete %al + 0x48, 0x01, 0xc3, //0x000057ec addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x000057ef subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x000057f2 je LBB28_1 + 0x8a, 0x03, //0x000057f8 movb (%rbx), %al + 0x04, 0xd0, //0x000057fa addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x000057fc movq $-2, %r15 + 0x3c, 0x09, //0x00005803 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005805 ja LBB28_6 + 0x48, 0x89, 0xdf, //0x0000580b movq %rbx, %rdi + 0xe8, 0x6d, 0xfb, 0xff, 0xff, //0x0000580e callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00005813 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005816 js LBB28_4 + 0x48, 0x01, 0xc3, //0x0000581c addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x0000581f movq %r13, %r15 + //0x00005822 LBB28_6 + 0x4c, 0x29, 0xe3, //0x00005822 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x00005825 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00005828 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000582b addq $8, %rsp + 0x5b, //0x0000582f popq %rbx + 0x41, 0x5c, //0x00005830 popq %r12 + 0x41, 0x5d, //0x00005832 popq %r13 + 0x41, 0x5e, //0x00005834 popq %r14 + 0x41, 0x5f, //0x00005836 popq %r15 + 0x5d, //0x00005838 popq %rbp + 0xc3, //0x00005839 retq + //0x0000583a LBB28_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000583a movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005841 jmp LBB28_6 + //0x00005846 LBB28_4 + 0x48, 0xf7, 0xd0, //0x00005846 notq %rax + 0x48, 0x01, 0xc3, //0x00005849 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000584c jmp LBB28_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005851 .p2align 4, 0x00 + //0x00005860 LCPI29_0 + 0x01, 0x00, 0x00, 0x00, //0x00005860 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x00005864 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00005868 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000586c .long 0 + //0x00005870 .p2align 4, 0x90 + //0x00005870 _skip_one + 0x55, //0x00005870 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005871 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005874 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005877 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000587a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000587d vmovaps $-37(%rip), %xmm0 /* LCPI29_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005885 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005889 movq %rax, %rdi + 0x5d, //0x0000588c popq %rbp + 0xe9, 0xee, 0xf0, 0xff, 0xff, //0x0000588d jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005892 .p2align 4, 0x00 + //0x000058a0 LCPI30_0 + 0x01, 0x00, 0x00, 0x00, //0x000058a0 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x000058a4 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000058a8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000058ac .long 0 + //0x000058b0 .p2align 4, 0x90 + //0x000058b0 _validate_one + 0x55, //0x000058b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000058b1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000058b4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000058b7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000058ba movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000058bd vmovaps $-37(%rip), %xmm0 /* LCPI30_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x000058c5 vmovups %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x000058c9 movl $32, %ecx + 0x48, 0x89, 0xc7, //0x000058ce movq %rax, %rdi + 0x5d, //0x000058d1 popq %rbp + 0xe9, 0xa9, 0xf0, 0xff, 0xff, //0x000058d2 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058d7 .p2align 4, 0x00 + //0x000058e0 LCPI31_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x000058e0 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x000058f0 LCPI31_1 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x000058f0 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00005900 LCPI31_2 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005900 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00005910 LCPI31_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005910 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00005920 LCPI31_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005920 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00005930 LCPI31_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005930 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00005940 LCPI31_6 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005940 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00005950 LCPI31_7 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005950 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00005960 .p2align 4, 0x90 + //0x00005960 _skip_one_fast + 0x55, //0x00005960 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005961 movq %rsp, %rbp + 0x41, 0x57, //0x00005964 pushq %r15 + 0x41, 0x56, //0x00005966 pushq %r14 + 0x41, 0x55, //0x00005968 pushq %r13 + 0x41, 0x54, //0x0000596a pushq %r12 + 0x53, //0x0000596c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000596d subq $128, %rsp + 0x4c, 0x8b, 0x37, //0x00005974 movq (%rdi), %r14 + 0x48, 0x8b, 0x57, 0x08, //0x00005977 movq $8(%rdi), %rdx + 0x48, 0x8b, 0x0e, //0x0000597b movq (%rsi), %rcx + 0x48, 0x39, 0xd1, //0x0000597e cmpq %rdx, %rcx + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00005981 jae LBB31_5 + 0x41, 0x8a, 0x04, 0x0e, //0x00005987 movb (%r14,%rcx), %al + 0x3c, 0x0d, //0x0000598b cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000598d je LBB31_5 + 0x3c, 0x20, //0x00005993 cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005995 je LBB31_5 + 0x04, 0xf7, //0x0000599b addb $-9, %al + 0x3c, 0x01, //0x0000599d cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x0000599f jbe LBB31_5 + 0x49, 0x89, 0xcb, //0x000059a5 movq %rcx, %r11 + 0xe9, 0x0b, 0x01, 0x00, 0x00, //0x000059a8 jmp LBB31_27 + //0x000059ad LBB31_5 + 0x4c, 0x8d, 0x59, 0x01, //0x000059ad leaq $1(%rcx), %r11 + 0x49, 0x39, 0xd3, //0x000059b1 cmpq %rdx, %r11 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059b4 jae LBB31_9 + 0x43, 0x8a, 0x04, 0x1e, //0x000059ba movb (%r14,%r11), %al + 0x3c, 0x0d, //0x000059be cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059c0 je LBB31_9 + 0x3c, 0x20, //0x000059c6 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059c8 je LBB31_9 + 0x04, 0xf7, //0x000059ce addb $-9, %al + 0x3c, 0x01, //0x000059d0 cmpb $1, %al + 0x0f, 0x87, 0xe0, 0x00, 0x00, 0x00, //0x000059d2 ja LBB31_27 + //0x000059d8 LBB31_9 + 0x4c, 0x8d, 0x59, 0x02, //0x000059d8 leaq $2(%rcx), %r11 + 0x49, 0x39, 0xd3, //0x000059dc cmpq %rdx, %r11 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059df jae LBB31_13 + 0x43, 0x8a, 0x04, 0x1e, //0x000059e5 movb (%r14,%r11), %al + 0x3c, 0x0d, //0x000059e9 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059eb je LBB31_13 + 0x3c, 0x20, //0x000059f1 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059f3 je LBB31_13 + 0x04, 0xf7, //0x000059f9 addb $-9, %al + 0x3c, 0x01, //0x000059fb cmpb $1, %al + 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x000059fd ja LBB31_27 + //0x00005a03 LBB31_13 + 0x4c, 0x8d, 0x59, 0x03, //0x00005a03 leaq $3(%rcx), %r11 + 0x49, 0x39, 0xd3, //0x00005a07 cmpq %rdx, %r11 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00005a0a jae LBB31_17 + 0x43, 0x8a, 0x04, 0x1e, //0x00005a10 movb (%r14,%r11), %al + 0x3c, 0x0d, //0x00005a14 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005a16 je LBB31_17 + 0x3c, 0x20, //0x00005a1c cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a1e je LBB31_17 + 0x04, 0xf7, //0x00005a24 addb $-9, %al + 0x3c, 0x01, //0x00005a26 cmpb $1, %al + 0x0f, 0x87, 0x8a, 0x00, 0x00, 0x00, //0x00005a28 ja LBB31_27 + //0x00005a2e LBB31_17 + 0x48, 0x83, 0xc1, 0x04, //0x00005a2e addq $4, %rcx + 0x48, 0x39, 0xca, //0x00005a32 cmpq %rcx, %rdx + 0x0f, 0x86, 0x4f, 0x00, 0x00, 0x00, //0x00005a35 jbe LBB31_23 + 0x48, 0x39, 0xca, //0x00005a3b cmpq %rcx, %rdx + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x00005a3e je LBB31_24 + 0x4d, 0x8d, 0x04, 0x16, //0x00005a44 leaq (%r14,%rdx), %r8 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005a48 movabsq $4294977024, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005a52 .p2align 4, 0x90 + //0x00005a60 LBB31_20 + 0x41, 0x0f, 0xbe, 0x04, 0x0e, //0x00005a60 movsbl (%r14,%rcx), %eax + 0x83, 0xf8, 0x20, //0x00005a65 cmpl $32, %eax + 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00005a68 ja LBB31_26 + 0x48, 0x0f, 0xa3, 0xc3, //0x00005a6e btq %rax, %rbx + 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x00005a72 jae LBB31_26 + 0x48, 0x83, 0xc1, 0x01, //0x00005a78 addq $1, %rcx + 0x48, 0x39, 0xca, //0x00005a7c cmpq %rcx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00005a7f jne LBB31_20 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00005a85 jmp LBB31_25 + //0x00005a8a LBB31_23 + 0x48, 0x89, 0x0e, //0x00005a8a movq %rcx, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005a8d movq $-1, %rax + 0xe9, 0x28, 0x01, 0x00, 0x00, //0x00005a94 jmp LBB31_44 + //0x00005a99 LBB31_24 + 0x4c, 0x01, 0xf1, //0x00005a99 addq %r14, %rcx + 0x49, 0x89, 0xc8, //0x00005a9c movq %rcx, %r8 + //0x00005a9f LBB31_25 + 0x4d, 0x29, 0xf0, //0x00005a9f subq %r14, %r8 + 0x4c, 0x89, 0xc1, //0x00005aa2 movq %r8, %rcx + //0x00005aa5 LBB31_26 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005aa5 movq $-1, %rax + 0x49, 0x89, 0xcb, //0x00005aac movq %rcx, %r11 + 0x48, 0x39, 0xd1, //0x00005aaf cmpq %rdx, %rcx + 0x0f, 0x83, 0x09, 0x01, 0x00, 0x00, //0x00005ab2 jae LBB31_44 + //0x00005ab8 LBB31_27 + 0x49, 0x8d, 0x53, 0x01, //0x00005ab8 leaq $1(%r11), %rdx + 0x48, 0x89, 0x16, //0x00005abc movq %rdx, (%rsi) + 0x43, 0x0f, 0xbe, 0x1c, 0x1e, //0x00005abf movsbl (%r14,%r11), %ebx + 0x83, 0xfb, 0x7b, //0x00005ac4 cmpl $123, %ebx + 0x0f, 0x87, 0x19, 0x01, 0x00, 0x00, //0x00005ac7 ja LBB31_46 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005acd movq $-1, %rax + 0x48, 0x8d, 0x0d, 0x4d, 0x0a, 0x00, 0x00, //0x00005ad4 leaq $2637(%rip), %rcx /* LJTI31_0+0(%rip) */ + 0x48, 0x63, 0x1c, 0x99, //0x00005adb movslq (%rcx,%rbx,4), %rbx + 0x48, 0x01, 0xcb, //0x00005adf addq %rcx, %rbx + 0xff, 0xe3, //0x00005ae2 jmpq *%rbx + //0x00005ae4 LBB31_29 + 0x48, 0x8b, 0x4f, 0x08, //0x00005ae4 movq $8(%rdi), %rcx + 0x48, 0x89, 0xc8, //0x00005ae8 movq %rcx, %rax + 0x48, 0x29, 0xd0, //0x00005aeb subq %rdx, %rax + 0x48, 0x83, 0xf8, 0x10, //0x00005aee cmpq $16, %rax + 0x0f, 0x82, 0xb2, 0x09, 0x00, 0x00, //0x00005af2 jb LBB31_119 + 0x4c, 0x89, 0xd8, //0x00005af8 movq %r11, %rax + 0x48, 0xf7, 0xd0, //0x00005afb notq %rax + 0xc5, 0xf9, 0x6f, 0x05, 0xda, 0xfd, 0xff, 0xff, //0x00005afe vmovdqa $-550(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xe2, 0xfd, 0xff, 0xff, //0x00005b06 vmovdqa $-542(%rip), %xmm1 /* LCPI31_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xea, 0xfd, 0xff, 0xff, //0x00005b0e vmovdqa $-534(%rip), %xmm2 /* LCPI31_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005b16 .p2align 4, 0x90 + //0x00005b20 LBB31_31 + 0xc4, 0xc1, 0x7a, 0x6f, 0x1c, 0x16, //0x00005b20 vmovdqu (%r14,%rdx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00005b26 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xdb, 0xd9, //0x00005b2a vpand %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x00005b2e vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00005b32 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00005b36 vpmovmskb %xmm3, %edi + 0x85, 0xff, //0x00005b3a testl %edi, %edi + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00005b3c jne LBB31_41 + 0x48, 0x83, 0xc2, 0x10, //0x00005b42 addq $16, %rdx + 0x48, 0x8d, 0x3c, 0x01, //0x00005b46 leaq (%rcx,%rax), %rdi + 0x48, 0x83, 0xc7, 0xf0, //0x00005b4a addq $-16, %rdi + 0x48, 0x83, 0xc0, 0xf0, //0x00005b4e addq $-16, %rax + 0x48, 0x83, 0xff, 0x0f, //0x00005b52 cmpq $15, %rdi + 0x0f, 0x87, 0xc4, 0xff, 0xff, 0xff, //0x00005b56 ja LBB31_31 + 0x4c, 0x89, 0xf2, //0x00005b5c movq %r14, %rdx + 0x48, 0x29, 0xc2, //0x00005b5f subq %rax, %rdx + 0x48, 0x01, 0xc1, //0x00005b62 addq %rax, %rcx + 0x48, 0x89, 0xc8, //0x00005b65 movq %rcx, %rax + 0x48, 0x85, 0xc0, //0x00005b68 testq %rax, %rax + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00005b6b je LBB31_40 + //0x00005b71 LBB31_34 + 0x48, 0x8d, 0x3c, 0x02, //0x00005b71 leaq (%rdx,%rax), %rdi + 0x31, 0xc9, //0x00005b75 xorl %ecx, %ecx + //0x00005b77 LBB31_35 + 0x0f, 0xb6, 0x1c, 0x0a, //0x00005b77 movzbl (%rdx,%rcx), %ebx + 0x80, 0xfb, 0x2c, //0x00005b7b cmpb $44, %bl + 0x0f, 0x84, 0x09, 0x09, 0x00, 0x00, //0x00005b7e je LBB31_117 + 0x80, 0xfb, 0x7d, //0x00005b84 cmpb $125, %bl + 0x0f, 0x84, 0x00, 0x09, 0x00, 0x00, //0x00005b87 je LBB31_117 + 0x80, 0xfb, 0x5d, //0x00005b8d cmpb $93, %bl + 0x0f, 0x84, 0xf7, 0x08, 0x00, 0x00, //0x00005b90 je LBB31_117 + 0x48, 0x83, 0xc1, 0x01, //0x00005b96 addq $1, %rcx + 0x48, 0x39, 0xc8, //0x00005b9a cmpq %rcx, %rax + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00005b9d jne LBB31_35 + 0x48, 0x89, 0xfa, //0x00005ba3 movq %rdi, %rdx + //0x00005ba6 LBB31_40 + 0x4c, 0x29, 0xf2, //0x00005ba6 subq %r14, %rdx + 0x48, 0x89, 0x16, //0x00005ba9 movq %rdx, (%rsi) + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005bac jmp LBB31_43 + //0x00005bb1 LBB31_41 + 0x66, 0x0f, 0xbc, 0xcf, //0x00005bb1 bsfw %di, %cx + 0x0f, 0xb7, 0xc9, //0x00005bb5 movzwl %cx, %ecx + 0x48, 0x29, 0xc1, //0x00005bb8 subq %rax, %rcx + //0x00005bbb LBB31_42 + 0x48, 0x89, 0x0e, //0x00005bbb movq %rcx, (%rsi) + //0x00005bbe LBB31_43 + 0x4c, 0x89, 0xd8, //0x00005bbe movq %r11, %rax + //0x00005bc1 LBB31_44 + 0x48, 0x8d, 0x65, 0xd8, //0x00005bc1 leaq $-40(%rbp), %rsp + 0x5b, //0x00005bc5 popq %rbx + 0x41, 0x5c, //0x00005bc6 popq %r12 + 0x41, 0x5d, //0x00005bc8 popq %r13 + 0x41, 0x5e, //0x00005bca popq %r14 + 0x41, 0x5f, //0x00005bcc popq %r15 + 0x5d, //0x00005bce popq %rbp + 0xc5, 0xf8, 0x77, //0x00005bcf vzeroupper + 0xc3, //0x00005bd2 retq + //0x00005bd3 LBB31_45 + 0x49, 0x8d, 0x4b, 0x04, //0x00005bd3 leaq $4(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x00005bd7 cmpq $8(%rdi), %rcx + 0x0f, 0x86, 0xda, 0xff, 0xff, 0xff, //0x00005bdb jbe LBB31_42 + 0xe9, 0xdb, 0xff, 0xff, 0xff, //0x00005be1 jmp LBB31_44 + //0x00005be6 LBB31_46 + 0x4c, 0x89, 0x1e, //0x00005be6 movq %r11, (%rsi) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00005be9 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00005bf0 jmp LBB31_44 + //0x00005bf5 LBB31_47 + 0x4c, 0x8b, 0x47, 0x08, //0x00005bf5 movq $8(%rdi), %r8 + 0x4d, 0x89, 0xc4, //0x00005bf9 movq %r8, %r12 + 0x49, 0x29, 0xd4, //0x00005bfc subq %rdx, %r12 + 0x49, 0x83, 0xfc, 0x20, //0x00005bff cmpq $32, %r12 + 0x0f, 0x8c, 0xb2, 0x08, 0x00, 0x00, //0x00005c03 jl LBB31_120 + 0x4f, 0x8d, 0x14, 0x1e, //0x00005c09 leaq (%r14,%r11), %r10 + 0x4d, 0x29, 0xd8, //0x00005c0d subq %r11, %r8 + 0x41, 0xb9, 0x1f, 0x00, 0x00, 0x00, //0x00005c10 movl $31, %r9d + 0x45, 0x31, 0xe4, //0x00005c16 xorl %r12d, %r12d + 0xc5, 0xf9, 0x6f, 0x05, 0xef, 0xfc, 0xff, 0xff, //0x00005c19 vmovdqa $-785(%rip), %xmm0 /* LCPI31_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xf7, 0xfc, 0xff, 0xff, //0x00005c21 vmovdqa $-777(%rip), %xmm1 /* LCPI31_4+0(%rip) */ + 0x45, 0x31, 0xff, //0x00005c29 xorl %r15d, %r15d + 0x90, 0x90, 0x90, 0x90, //0x00005c2c .p2align 4, 0x90 + //0x00005c30 LBB31_49 + 0xc4, 0x81, 0x7a, 0x6f, 0x54, 0x22, 0x01, //0x00005c30 vmovdqu $1(%r10,%r12), %xmm2 + 0xc4, 0x81, 0x7a, 0x6f, 0x5c, 0x22, 0x11, //0x00005c37 vmovdqu $17(%r10,%r12), %xmm3 + 0xc5, 0xe9, 0x74, 0xe0, //0x00005c3e vpcmpeqb %xmm0, %xmm2, %xmm4 + 0xc5, 0xf9, 0xd7, 0xcc, //0x00005c42 vpmovmskb %xmm4, %ecx + 0xc5, 0xe1, 0x74, 0xe0, //0x00005c46 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf9, 0xd7, 0xd4, //0x00005c4a vpmovmskb %xmm4, %edx + 0x48, 0xc1, 0xe2, 0x10, //0x00005c4e shlq $16, %rdx + 0x48, 0x09, 0xca, //0x00005c52 orq %rcx, %rdx + 0xc5, 0xe9, 0x74, 0xd1, //0x00005c55 vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0xd7, 0xda, //0x00005c59 vpmovmskb %xmm2, %ebx + 0xc5, 0xe1, 0x74, 0xd1, //0x00005c5d vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00005c61 vpmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x00005c65 shlq $16, %rcx + 0x48, 0x09, 0xd9, //0x00005c69 orq %rbx, %rcx + 0x48, 0x89, 0xcb, //0x00005c6c movq %rcx, %rbx + 0x4c, 0x09, 0xfb, //0x00005c6f orq %r15, %rbx + 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x00005c72 je LBB31_51 + 0x44, 0x89, 0xfb, //0x00005c78 movl %r15d, %ebx + 0xf7, 0xd3, //0x00005c7b notl %ebx + 0x21, 0xcb, //0x00005c7d andl %ecx, %ebx + 0x44, 0x8d, 0x2c, 0x1b, //0x00005c7f leal (%rbx,%rbx), %r13d + 0x45, 0x09, 0xfd, //0x00005c83 orl %r15d, %r13d + 0x44, 0x89, 0xef, //0x00005c86 movl %r13d, %edi + 0xf7, 0xd7, //0x00005c89 notl %edi + 0x21, 0xcf, //0x00005c8b andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005c8d andl $-1431655766, %edi + 0x45, 0x31, 0xff, //0x00005c93 xorl %r15d, %r15d + 0x01, 0xdf, //0x00005c96 addl %ebx, %edi + 0x41, 0x0f, 0x92, 0xc7, //0x00005c98 setb %r15b + 0x01, 0xff, //0x00005c9c addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00005c9e xorl $1431655765, %edi + 0x44, 0x21, 0xef, //0x00005ca4 andl %r13d, %edi + 0xf7, 0xd7, //0x00005ca7 notl %edi + 0x21, 0xfa, //0x00005ca9 andl %edi, %edx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00005cab jmp LBB31_52 + //0x00005cb0 .p2align 4, 0x90 + //0x00005cb0 LBB31_51 + 0x45, 0x31, 0xff, //0x00005cb0 xorl %r15d, %r15d + //0x00005cb3 LBB31_52 + 0x48, 0x85, 0xd2, //0x00005cb3 testq %rdx, %rdx + 0x0f, 0x85, 0x66, 0x07, 0x00, 0x00, //0x00005cb6 jne LBB31_111 + 0x49, 0x83, 0xc4, 0x20, //0x00005cbc addq $32, %r12 + 0x4b, 0x8d, 0x0c, 0x08, //0x00005cc0 leaq (%r8,%r9), %rcx + 0x48, 0x83, 0xc1, 0xe0, //0x00005cc4 addq $-32, %rcx + 0x49, 0x83, 0xc1, 0xe0, //0x00005cc8 addq $-32, %r9 + 0x48, 0x83, 0xf9, 0x3f, //0x00005ccc cmpq $63, %rcx + 0x0f, 0x8f, 0x5a, 0xff, 0xff, 0xff, //0x00005cd0 jg LBB31_49 + 0x4d, 0x85, 0xff, //0x00005cd6 testq %r15, %r15 + 0x0f, 0x85, 0x0f, 0x08, 0x00, 0x00, //0x00005cd9 jne LBB31_123 + 0x4b, 0x8d, 0x14, 0x14, //0x00005cdf leaq (%r12,%r10), %rdx + 0x48, 0x83, 0xc2, 0x01, //0x00005ce3 addq $1, %rdx + 0x49, 0xf7, 0xd4, //0x00005ce7 notq %r12 + 0x4d, 0x01, 0xc4, //0x00005cea addq %r8, %r12 + //0x00005ced LBB31_56 + 0x4d, 0x85, 0xe4, //0x00005ced testq %r12, %r12 + 0x0f, 0x8f, 0x60, 0x07, 0x00, 0x00, //0x00005cf0 jg LBB31_114 + 0xe9, 0xc6, 0xfe, 0xff, 0xff, //0x00005cf6 jmp LBB31_44 + //0x00005cfb LBB31_57 + 0x48, 0x89, 0x74, 0x24, 0x18, //0x00005cfb movq %rsi, $24(%rsp) + 0x48, 0x8b, 0x47, 0x08, //0x00005d00 movq $8(%rdi), %rax + 0x48, 0x29, 0xd0, //0x00005d04 subq %rdx, %rax + 0x49, 0x01, 0xd6, //0x00005d07 addq %rdx, %r14 + 0x45, 0x31, 0xd2, //0x00005d0a xorl %r10d, %r10d + 0xc5, 0x79, 0x6f, 0x15, 0x0b, 0xfc, 0xff, 0xff, //0x00005d0d vmovdqa $-1013(%rip), %xmm10 /* LCPI31_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xf3, 0xfb, 0xff, 0xff, //0x00005d15 vmovdqa $-1037(%rip), %xmm1 /* LCPI31_3+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00005d1d vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0x26, 0xfc, 0xff, 0xff, //0x00005d22 vmovdqa $-986(%rip), %xmm3 /* LCPI31_7+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xce, 0xfb, 0xff, 0xff, //0x00005d2a vmovdqa $-1074(%rip), %xmm4 /* LCPI31_2+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x00005d32 vxorps %xmm8, %xmm8, %xmm8 + 0x31, 0xf6, //0x00005d37 xorl %esi, %esi + 0x31, 0xc9, //0x00005d39 xorl %ecx, %ecx + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00005d3b movq %rcx, $16(%rsp) + 0x45, 0x31, 0xc9, //0x00005d40 xorl %r9d, %r9d + 0x48, 0x83, 0xf8, 0x40, //0x00005d43 cmpq $64, %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00005d47 movq %rax, $8(%rsp) + 0x0f, 0x8d, 0x2a, 0x01, 0x00, 0x00, //0x00005d4c jge LBB31_58 + //0x00005d52 LBB31_67 + 0x48, 0x85, 0xc0, //0x00005d52 testq %rax, %rax + 0x0f, 0x8e, 0x68, 0x07, 0x00, 0x00, //0x00005d55 jle LBB31_121 + 0x48, 0x89, 0xf1, //0x00005d5b movq %rsi, %rcx + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x00005d5e vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x00005d64 vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf0, //0x00005d6a movl %r14d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00005d6d andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00005d72 cmpl $4033, %eax + 0x0f, 0x82, 0x3a, 0x00, 0x00, 0x00, //0x00005d77 jb LBB31_71 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x00005d7d cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x00005d83 jb LBB31_72 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00005d89 vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x00005d8e vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x7a, 0x6f, 0x46, 0x10, //0x00005d94 vmovdqu $16(%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x44, 0x24, 0x30, //0x00005d9a vmovdqu %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x00005da0 addq $32, %r14 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00005da4 movq $8(%rsp), %rax + 0x48, 0x8d, 0x70, 0xe0, //0x00005da9 leaq $-32(%rax), %rsi + 0x48, 0x8d, 0x5c, 0x24, 0x40, //0x00005dad leaq $64(%rsp), %rbx + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00005db2 jmp LBB31_73 + //0x00005db7 LBB31_71 + 0x48, 0x89, 0xce, //0x00005db7 movq %rcx, %rsi + 0xe9, 0xbd, 0x00, 0x00, 0x00, //0x00005dba jmp LBB31_58 + //0x00005dbf LBB31_72 + 0x48, 0x8d, 0x5c, 0x24, 0x20, //0x00005dbf leaq $32(%rsp), %rbx + 0x48, 0x8b, 0x74, 0x24, 0x08, //0x00005dc4 movq $8(%rsp), %rsi + //0x00005dc9 LBB31_73 + 0x48, 0x83, 0xfe, 0x10, //0x00005dc9 cmpq $16, %rsi + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00005dcd jb LBB31_74 + 0xc4, 0xc1, 0x7a, 0x6f, 0x06, //0x00005dd3 vmovdqu (%r14), %xmm0 + 0xc5, 0xfa, 0x7f, 0x03, //0x00005dd8 vmovdqu %xmm0, (%rbx) + 0x49, 0x83, 0xc6, 0x10, //0x00005ddc addq $16, %r14 + 0x48, 0x83, 0xc3, 0x10, //0x00005de0 addq $16, %rbx + 0x48, 0x83, 0xc6, 0xf0, //0x00005de4 addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00005de8 cmpq $8, %rsi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00005dec jae LBB31_81 + //0x00005df2 LBB31_75 + 0x48, 0x83, 0xfe, 0x04, //0x00005df2 cmpq $4, %rsi + 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x00005df6 jl LBB31_76 + //0x00005dfc LBB31_82 + 0x41, 0x8b, 0x06, //0x00005dfc movl (%r14), %eax + 0x89, 0x03, //0x00005dff movl %eax, (%rbx) + 0x49, 0x83, 0xc6, 0x04, //0x00005e01 addq $4, %r14 + 0x48, 0x83, 0xc3, 0x04, //0x00005e05 addq $4, %rbx + 0x48, 0x83, 0xc6, 0xfc, //0x00005e09 addq $-4, %rsi + 0x48, 0x83, 0xfe, 0x02, //0x00005e0d cmpq $2, %rsi + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00005e11 jae LBB31_77 + 0xe9, 0x43, 0x00, 0x00, 0x00, //0x00005e17 jmp LBB31_78 + //0x00005e1c LBB31_74 + 0x48, 0x83, 0xfe, 0x08, //0x00005e1c cmpq $8, %rsi + 0x0f, 0x82, 0xcc, 0xff, 0xff, 0xff, //0x00005e20 jb LBB31_75 + //0x00005e26 LBB31_81 + 0x49, 0x8b, 0x06, //0x00005e26 movq (%r14), %rax + 0x48, 0x89, 0x03, //0x00005e29 movq %rax, (%rbx) + 0x49, 0x83, 0xc6, 0x08, //0x00005e2c addq $8, %r14 + 0x48, 0x83, 0xc3, 0x08, //0x00005e30 addq $8, %rbx + 0x48, 0x83, 0xc6, 0xf8, //0x00005e34 addq $-8, %rsi + 0x48, 0x83, 0xfe, 0x04, //0x00005e38 cmpq $4, %rsi + 0x0f, 0x8d, 0xba, 0xff, 0xff, 0xff, //0x00005e3c jge LBB31_82 + //0x00005e42 LBB31_76 + 0x48, 0x83, 0xfe, 0x02, //0x00005e42 cmpq $2, %rsi + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00005e46 jb LBB31_78 + //0x00005e4c LBB31_77 + 0x41, 0x0f, 0xb7, 0x06, //0x00005e4c movzwl (%r14), %eax + 0x66, 0x89, 0x03, //0x00005e50 movw %ax, (%rbx) + 0x49, 0x83, 0xc6, 0x02, //0x00005e53 addq $2, %r14 + 0x48, 0x83, 0xc3, 0x02, //0x00005e57 addq $2, %rbx + 0x48, 0x83, 0xc6, 0xfe, //0x00005e5b addq $-2, %rsi + //0x00005e5f LBB31_78 + 0x4c, 0x89, 0xf2, //0x00005e5f movq %r14, %rdx + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005e62 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xf6, //0x00005e67 testq %rsi, %rsi + 0x48, 0x89, 0xce, //0x00005e6a movq %rcx, %rsi + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00005e6d je LBB31_58 + 0x8a, 0x02, //0x00005e73 movb (%rdx), %al + 0x88, 0x03, //0x00005e75 movb %al, (%rbx) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x00005e77 leaq $32(%rsp), %r14 + //0x00005e7c LBB31_58 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x00005e7c vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x00005e81 vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x00005e87 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x00005e8d vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00005e93 vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00005e97 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x00005e9b vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00005e9f vpmovmskb %xmm0, %eax + 0xc5, 0xa9, 0x74, 0xc7, //0x00005ea3 vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005ea7 vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc6, //0x00005eab vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005eaf vpmovmskb %xmm0, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00005eb3 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00005eb7 shlq $32, %rcx + 0x48, 0x09, 0xd1, //0x00005ebb orq %rdx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00005ebe shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005ec2 orq %rcx, %rax + 0x49, 0x09, 0xc5, //0x00005ec5 orq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x00005ec8 movq %r13, %rax + 0x48, 0x09, 0xf0, //0x00005ecb orq %rsi, %rax + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00005ece jne LBB31_60 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00005ed4 movq $-1, %r13 + 0x31, 0xf6, //0x00005edb xorl %esi, %esi + 0xe9, 0x45, 0x00, 0x00, 0x00, //0x00005edd jmp LBB31_61 + //0x00005ee2 LBB31_60 + 0x48, 0x89, 0xf0, //0x00005ee2 movq %rsi, %rax + 0x48, 0xf7, 0xd0, //0x00005ee5 notq %rax + 0x4c, 0x21, 0xe8, //0x00005ee8 andq %r13, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00005eeb leaq (%rax,%rax), %r8 + 0x49, 0x09, 0xf0, //0x00005eef orq %rsi, %r8 + 0x4c, 0x89, 0xc2, //0x00005ef2 movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00005ef5 notq %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005ef8 movabsq $-6148914691236517206, %rcx + 0x49, 0x21, 0xcd, //0x00005f02 andq %rcx, %r13 + 0x49, 0x21, 0xd5, //0x00005f05 andq %rdx, %r13 + 0x31, 0xf6, //0x00005f08 xorl %esi, %esi + 0x49, 0x01, 0xc5, //0x00005f0a addq %rax, %r13 + 0x40, 0x0f, 0x92, 0xc6, //0x00005f0d setb %sil + 0x4d, 0x01, 0xed, //0x00005f11 addq %r13, %r13 + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f14 movabsq $6148914691236517205, %rax + 0x49, 0x31, 0xc5, //0x00005f1e xorq %rax, %r13 + 0x4d, 0x21, 0xc5, //0x00005f21 andq %r8, %r13 + 0x49, 0xf7, 0xd5, //0x00005f24 notq %r13 + //0x00005f27 LBB31_61 + 0xc5, 0xc9, 0x74, 0xc1, //0x00005f27 vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f2b vpmovmskb %xmm0, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x00005f2f shlq $48, %rax + 0xc5, 0xc1, 0x74, 0xc1, //0x00005f33 vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f37 vpmovmskb %xmm0, %ecx + 0x48, 0xc1, 0xe1, 0x20, //0x00005f3b shlq $32, %rcx + 0x48, 0x09, 0xc1, //0x00005f3f orq %rax, %rcx + 0xc5, 0xd1, 0x74, 0xc1, //0x00005f42 vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f46 vpmovmskb %xmm0, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x00005f4a shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005f4e orq %rcx, %rax + 0xc5, 0xe9, 0x74, 0xc1, //0x00005f51 vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00005f55 vpmovmskb %xmm0, %ecx + 0x48, 0x09, 0xc1, //0x00005f59 orq %rax, %rcx + 0x4c, 0x21, 0xe9, //0x00005f5c andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x00005f5f vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x00005f64 vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x00005f6a vmovq %xmm0, %r13 + 0x4d, 0x31, 0xd5, //0x00005f6f xorq %r10, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x00005f72 vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xf8, //0x00005f76 vpmovmskb %xmm0, %r15d + 0xc5, 0xd1, 0x74, 0xc3, //0x00005f7a vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00005f7e vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc3, //0x00005f82 vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005f86 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00005f8a vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00005f8e vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x00005f92 shlq $48, %r10 + 0x48, 0xc1, 0xe2, 0x20, //0x00005f96 shlq $32, %rdx + 0x4c, 0x09, 0xd2, //0x00005f9a orq %r10, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00005f9d shlq $16, %rax + 0x48, 0x09, 0xd0, //0x00005fa1 orq %rdx, %rax + 0x49, 0x09, 0xc7, //0x00005fa4 orq %rax, %r15 + 0x4d, 0x89, 0xea, //0x00005fa7 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00005faa notq %r10 + 0x4d, 0x21, 0xd7, //0x00005fad andq %r10, %r15 + 0xc5, 0xe9, 0x74, 0xc4, //0x00005fb0 vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00005fb4 vpmovmskb %xmm0, %edx + 0xc5, 0xd1, 0x74, 0xc4, //0x00005fb8 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00005fbc vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc4, //0x00005fc0 vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x00005fc4 vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00005fc8 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00005fcc vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x00005fd0 shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x00005fd4 shlq $32, %r8 + 0x4d, 0x09, 0xe0, //0x00005fd8 orq %r12, %r8 + 0x48, 0xc1, 0xe0, 0x10, //0x00005fdb shlq $16, %rax + 0x4c, 0x09, 0xc0, //0x00005fdf orq %r8, %rax + 0x48, 0x09, 0xc2, //0x00005fe2 orq %rax, %rdx + 0x4c, 0x21, 0xd2, //0x00005fe5 andq %r10, %rdx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00005fe8 je LBB31_65 + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x00005fee movq $16(%rsp), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005ff3 .p2align 4, 0x90 + //0x00006000 LBB31_63 + 0x48, 0x8d, 0x4a, 0xff, //0x00006000 leaq $-1(%rdx), %rcx + 0x48, 0x89, 0xc8, //0x00006004 movq %rcx, %rax + 0x4c, 0x21, 0xf8, //0x00006007 andq %r15, %rax + 0xf3, 0x48, 0x0f, 0xb8, 0xc0, //0x0000600a popcntq %rax, %rax + 0x48, 0x01, 0xd8, //0x0000600f addq %rbx, %rax + 0x4c, 0x39, 0xc8, //0x00006012 cmpq %r9, %rax + 0x0f, 0x86, 0xb4, 0x03, 0x00, 0x00, //0x00006015 jbe LBB31_108 + 0x49, 0x83, 0xc1, 0x01, //0x0000601b addq $1, %r9 + 0x48, 0x21, 0xca, //0x0000601f andq %rcx, %rdx + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006022 jne LBB31_63 + 0xe9, 0x05, 0x00, 0x00, 0x00, //0x00006028 jmp LBB31_66 + //0x0000602d LBB31_65 + 0x48, 0x8b, 0x5c, 0x24, 0x10, //0x0000602d movq $16(%rsp), %rbx + //0x00006032 LBB31_66 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006032 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xc7, //0x00006036 popcntq %r15, %rax + 0x48, 0x01, 0xc3, //0x0000603b addq %rax, %rbx + 0x48, 0x89, 0x5c, 0x24, 0x10, //0x0000603e movq %rbx, $16(%rsp) + 0x49, 0x83, 0xc6, 0x40, //0x00006043 addq $64, %r14 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x00006047 movq $8(%rsp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x0000604c addq $-64, %rax + 0x4d, 0x89, 0xea, //0x00006050 movq %r13, %r10 + 0x48, 0x83, 0xf8, 0x40, //0x00006053 cmpq $64, %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x00006057 movq %rax, $8(%rsp) + 0x0f, 0x8d, 0x1a, 0xfe, 0xff, 0xff, //0x0000605c jge LBB31_58 + 0xe9, 0xeb, 0xfc, 0xff, 0xff, //0x00006062 jmp LBB31_67 + //0x00006067 LBB31_83 + 0x49, 0x8d, 0x4b, 0x05, //0x00006067 leaq $5(%r11), %rcx + 0x48, 0x3b, 0x4f, 0x08, //0x0000606b cmpq $8(%rdi), %rcx + 0x0f, 0x86, 0x46, 0xfb, 0xff, 0xff, //0x0000606f jbe LBB31_42 + 0xe9, 0x47, 0xfb, 0xff, 0xff, //0x00006075 jmp LBB31_44 + //0x0000607a LBB31_84 + 0x48, 0x8b, 0x47, 0x08, //0x0000607a movq $8(%rdi), %rax + 0x48, 0x29, 0xd0, //0x0000607e subq %rdx, %rax + 0x49, 0x01, 0xd6, //0x00006081 addq %rdx, %r14 + 0x45, 0x31, 0xd2, //0x00006084 xorl %r10d, %r10d + 0xc5, 0x79, 0x6f, 0x15, 0x91, 0xf8, 0xff, 0xff, //0x00006087 vmovdqa $-1903(%rip), %xmm10 /* LCPI31_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0x79, 0xf8, 0xff, 0xff, //0x0000608f vmovdqa $-1927(%rip), %xmm1 /* LCPI31_3+0(%rip) */ + 0xc4, 0x41, 0x31, 0x76, 0xc9, //0x00006097 vpcmpeqd %xmm9, %xmm9, %xmm9 + 0xc5, 0xf9, 0x6f, 0x1d, 0x8c, 0xf8, 0xff, 0xff, //0x0000609c vmovdqa $-1908(%rip), %xmm3 /* LCPI31_5+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x94, 0xf8, 0xff, 0xff, //0x000060a4 vmovdqa $-1900(%rip), %xmm4 /* LCPI31_6+0(%rip) */ + 0xc4, 0x41, 0x38, 0x57, 0xc0, //0x000060ac vxorps %xmm8, %xmm8, %xmm8 + 0x45, 0x31, 0xff, //0x000060b1 xorl %r15d, %r15d + 0x45, 0x31, 0xc9, //0x000060b4 xorl %r9d, %r9d + 0x31, 0xdb, //0x000060b7 xorl %ebx, %ebx + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000060b9 jmp LBB31_86 + //0x000060be LBB31_85 + 0x49, 0xc1, 0xfd, 0x3f, //0x000060be sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xc7, //0x000060c2 popcntq %r15, %rax + 0x49, 0x01, 0xc1, //0x000060c7 addq %rax, %r9 + 0x49, 0x83, 0xc6, 0x40, //0x000060ca addq $64, %r14 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000060ce movq $8(%rsp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x000060d3 addq $-64, %rax + 0x4d, 0x89, 0xea, //0x000060d7 movq %r13, %r10 + 0x4c, 0x8b, 0x7c, 0x24, 0x10, //0x000060da movq $16(%rsp), %r15 + //0x000060df LBB31_86 + 0x48, 0x83, 0xf8, 0x40, //0x000060df cmpq $64, %rax + 0x48, 0x89, 0x44, 0x24, 0x08, //0x000060e3 movq %rax, $8(%rsp) + 0x0f, 0x8c, 0xaf, 0x01, 0x00, 0x00, //0x000060e8 jl LBB31_93 + //0x000060ee LBB31_87 + 0xc4, 0xc1, 0x7a, 0x6f, 0x16, //0x000060ee vmovdqu (%r14), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6e, 0x10, //0x000060f3 vmovdqu $16(%r14), %xmm5 + 0xc4, 0xc1, 0x7a, 0x6f, 0x7e, 0x20, //0x000060f9 vmovdqu $32(%r14), %xmm7 + 0xc4, 0xc1, 0x7a, 0x6f, 0x76, 0x30, //0x000060ff vmovdqu $48(%r14), %xmm6 + 0xc5, 0xa9, 0x74, 0xc2, //0x00006105 vpcmpeqb %xmm2, %xmm10, %xmm0 + 0xc5, 0x79, 0xd7, 0xe8, //0x00006109 vpmovmskb %xmm0, %r13d + 0xc5, 0xa9, 0x74, 0xc5, //0x0000610d vpcmpeqb %xmm5, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00006111 vpmovmskb %xmm0, %eax + 0xc5, 0xa9, 0x74, 0xc7, //0x00006115 vpcmpeqb %xmm7, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00006119 vpmovmskb %xmm0, %ecx + 0xc5, 0xa9, 0x74, 0xc6, //0x0000611d vpcmpeqb %xmm6, %xmm10, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006121 vpmovmskb %xmm0, %edx + 0x48, 0xc1, 0xe2, 0x30, //0x00006125 shlq $48, %rdx + 0x48, 0xc1, 0xe1, 0x20, //0x00006129 shlq $32, %rcx + 0x48, 0x09, 0xd1, //0x0000612d orq %rdx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00006130 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00006134 orq %rcx, %rax + 0x49, 0x09, 0xc5, //0x00006137 orq %rax, %r13 + 0x4c, 0x89, 0xe8, //0x0000613a movq %r13, %rax + 0x4c, 0x09, 0xf8, //0x0000613d orq %r15, %rax + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00006140 jne LBB31_89 + 0x49, 0xc7, 0xc5, 0xff, 0xff, 0xff, 0xff, //0x00006146 movq $-1, %r13 + 0x31, 0xc0, //0x0000614d xorl %eax, %eax + 0x48, 0x89, 0x44, 0x24, 0x10, //0x0000614f movq %rax, $16(%rsp) + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00006154 jmp LBB31_90 + //0x00006159 LBB31_89 + 0x4c, 0x89, 0xf8, //0x00006159 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x0000615c notq %rax + 0x4c, 0x21, 0xe8, //0x0000615f andq %r13, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00006162 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x00006166 orq %r15, %r8 + 0x4c, 0x89, 0xc2, //0x00006169 movq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x0000616c notq %rdx + 0x48, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000616f movabsq $-6148914691236517206, %rcx + 0x49, 0x21, 0xcd, //0x00006179 andq %rcx, %r13 + 0x49, 0x21, 0xd5, //0x0000617c andq %rdx, %r13 + 0x31, 0xc9, //0x0000617f xorl %ecx, %ecx + 0x49, 0x01, 0xc5, //0x00006181 addq %rax, %r13 + 0x0f, 0x92, 0xc1, //0x00006184 setb %cl + 0x48, 0x89, 0x4c, 0x24, 0x10, //0x00006187 movq %rcx, $16(%rsp) + 0x4d, 0x01, 0xed, //0x0000618c addq %r13, %r13 + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000618f movabsq $6148914691236517205, %rax + 0x49, 0x31, 0xc5, //0x00006199 xorq %rax, %r13 + 0x4d, 0x21, 0xc5, //0x0000619c andq %r8, %r13 + 0x49, 0xf7, 0xd5, //0x0000619f notq %r13 + //0x000061a2 LBB31_90 + 0xc5, 0xc9, 0x74, 0xc1, //0x000061a2 vpcmpeqb %xmm1, %xmm6, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000061a6 vpmovmskb %xmm0, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x000061aa shlq $48, %rax + 0xc5, 0xc1, 0x74, 0xc1, //0x000061ae vpcmpeqb %xmm1, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000061b2 vpmovmskb %xmm0, %ecx + 0x48, 0xc1, 0xe1, 0x20, //0x000061b6 shlq $32, %rcx + 0x48, 0x09, 0xc1, //0x000061ba orq %rax, %rcx + 0xc5, 0xd1, 0x74, 0xc1, //0x000061bd vpcmpeqb %xmm1, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000061c1 vpmovmskb %xmm0, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x000061c5 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x000061c9 orq %rcx, %rax + 0xc5, 0xe9, 0x74, 0xc1, //0x000061cc vpcmpeqb %xmm1, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000061d0 vpmovmskb %xmm0, %ecx + 0x48, 0x09, 0xc1, //0x000061d4 orq %rax, %rcx + 0x4c, 0x21, 0xe9, //0x000061d7 andq %r13, %rcx + 0xc4, 0xe1, 0xf9, 0x6e, 0xc1, //0x000061da vmovq %rcx, %xmm0 + 0xc4, 0xc3, 0x79, 0x44, 0xc1, 0x00, //0x000061df vpclmulqdq $0, %xmm9, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc5, //0x000061e5 vmovq %xmm0, %r13 + 0x4d, 0x31, 0xd5, //0x000061ea xorq %r10, %r13 + 0xc5, 0xe9, 0x74, 0xc3, //0x000061ed vpcmpeqb %xmm3, %xmm2, %xmm0 + 0xc5, 0x79, 0xd7, 0xf8, //0x000061f1 vpmovmskb %xmm0, %r15d + 0xc5, 0xd1, 0x74, 0xc3, //0x000061f5 vpcmpeqb %xmm3, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000061f9 vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc3, //0x000061fd vpcmpeqb %xmm3, %xmm7, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00006201 vpmovmskb %xmm0, %edx + 0xc5, 0xc9, 0x74, 0xc3, //0x00006205 vpcmpeqb %xmm3, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xd0, //0x00006209 vpmovmskb %xmm0, %r10d + 0x49, 0xc1, 0xe2, 0x30, //0x0000620d shlq $48, %r10 + 0x48, 0xc1, 0xe2, 0x20, //0x00006211 shlq $32, %rdx + 0x4c, 0x09, 0xd2, //0x00006215 orq %r10, %rdx + 0x48, 0xc1, 0xe0, 0x10, //0x00006218 shlq $16, %rax + 0x48, 0x09, 0xd0, //0x0000621c orq %rdx, %rax + 0x49, 0x09, 0xc7, //0x0000621f orq %rax, %r15 + 0x4d, 0x89, 0xea, //0x00006222 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00006225 notq %r10 + 0x4d, 0x21, 0xd7, //0x00006228 andq %r10, %r15 + 0xc5, 0xe9, 0x74, 0xc4, //0x0000622b vpcmpeqb %xmm4, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x0000622f vpmovmskb %xmm0, %edx + 0xc5, 0xd1, 0x74, 0xc4, //0x00006233 vpcmpeqb %xmm4, %xmm5, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x00006237 vpmovmskb %xmm0, %eax + 0xc5, 0xc1, 0x74, 0xc4, //0x0000623b vpcmpeqb %xmm4, %xmm7, %xmm0 + 0xc5, 0x79, 0xd7, 0xc0, //0x0000623f vpmovmskb %xmm0, %r8d + 0xc5, 0xc9, 0x74, 0xc4, //0x00006243 vpcmpeqb %xmm4, %xmm6, %xmm0 + 0xc5, 0x79, 0xd7, 0xe0, //0x00006247 vpmovmskb %xmm0, %r12d + 0x49, 0xc1, 0xe4, 0x30, //0x0000624b shlq $48, %r12 + 0x49, 0xc1, 0xe0, 0x20, //0x0000624f shlq $32, %r8 + 0x4d, 0x09, 0xe0, //0x00006253 orq %r12, %r8 + 0x48, 0xc1, 0xe0, 0x10, //0x00006256 shlq $16, %rax + 0x4c, 0x09, 0xc0, //0x0000625a orq %r8, %rax + 0x48, 0x09, 0xc2, //0x0000625d orq %rax, %rdx + 0x4c, 0x21, 0xd2, //0x00006260 andq %r10, %rdx + 0x0f, 0x84, 0x55, 0xfe, 0xff, 0xff, //0x00006263 je LBB31_85 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006269 .p2align 4, 0x90 + //0x00006270 LBB31_91 + 0x48, 0x8d, 0x4a, 0xff, //0x00006270 leaq $-1(%rdx), %rcx + 0x48, 0x89, 0xc8, //0x00006274 movq %rcx, %rax + 0x4c, 0x21, 0xf8, //0x00006277 andq %r15, %rax + 0xf3, 0x48, 0x0f, 0xb8, 0xc0, //0x0000627a popcntq %rax, %rax + 0x4c, 0x01, 0xc8, //0x0000627f addq %r9, %rax + 0x48, 0x39, 0xd8, //0x00006282 cmpq %rbx, %rax + 0x0f, 0x86, 0x62, 0x01, 0x00, 0x00, //0x00006285 jbe LBB31_109 + 0x48, 0x83, 0xc3, 0x01, //0x0000628b addq $1, %rbx + 0x48, 0x21, 0xca, //0x0000628f andq %rcx, %rdx + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006292 jne LBB31_91 + 0xe9, 0x21, 0xfe, 0xff, 0xff, //0x00006298 jmp LBB31_85 + //0x0000629d LBB31_93 + 0x48, 0x85, 0xc0, //0x0000629d testq %rax, %rax + 0x0f, 0x8e, 0x35, 0x02, 0x00, 0x00, //0x000062a0 jle LBB31_122 + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x40, //0x000062a6 vmovups %ymm8, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x44, 0x24, 0x20, //0x000062ac vmovups %ymm8, $32(%rsp) + 0x44, 0x89, 0xf0, //0x000062b2 movl %r14d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x000062b5 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x000062ba cmpl $4033, %eax + 0x0f, 0x82, 0x29, 0xfe, 0xff, 0xff, //0x000062bf jb LBB31_87 + 0x48, 0x83, 0x7c, 0x24, 0x08, 0x20, //0x000062c5 cmpq $32, $8(%rsp) + 0x0f, 0x82, 0x2e, 0x00, 0x00, 0x00, //0x000062cb jb LBB31_97 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x000062d1 vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x20, //0x000062d6 vmovups %xmm0, $32(%rsp) + 0xc4, 0xc1, 0x78, 0x10, 0x46, 0x10, //0x000062dc vmovups $16(%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x44, 0x24, 0x30, //0x000062e2 vmovups %xmm0, $48(%rsp) + 0x49, 0x83, 0xc6, 0x20, //0x000062e8 addq $32, %r14 + 0x48, 0x8b, 0x44, 0x24, 0x08, //0x000062ec movq $8(%rsp), %rax + 0x48, 0x8d, 0x48, 0xe0, //0x000062f1 leaq $-32(%rax), %rcx + 0x48, 0x8d, 0x54, 0x24, 0x40, //0x000062f5 leaq $64(%rsp), %rdx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000062fa jmp LBB31_98 + //0x000062ff LBB31_97 + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x000062ff leaq $32(%rsp), %rdx + 0x48, 0x8b, 0x4c, 0x24, 0x08, //0x00006304 movq $8(%rsp), %rcx + //0x00006309 LBB31_98 + 0x48, 0x83, 0xf9, 0x10, //0x00006309 cmpq $16, %rcx + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000630d jb LBB31_99 + 0xc4, 0xc1, 0x78, 0x10, 0x06, //0x00006313 vmovups (%r14), %xmm0 + 0xc5, 0xf8, 0x11, 0x02, //0x00006318 vmovups %xmm0, (%rdx) + 0x49, 0x83, 0xc6, 0x10, //0x0000631c addq $16, %r14 + 0x48, 0x83, 0xc2, 0x10, //0x00006320 addq $16, %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x00006324 addq $-16, %rcx + 0x48, 0x83, 0xf9, 0x08, //0x00006328 cmpq $8, %rcx + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x0000632c jae LBB31_104 + //0x00006332 LBB31_100 + 0x48, 0x83, 0xf9, 0x04, //0x00006332 cmpq $4, %rcx + 0x0f, 0x8c, 0x57, 0x00, 0x00, 0x00, //0x00006336 jl LBB31_101 + //0x0000633c LBB31_105 + 0x41, 0x8b, 0x06, //0x0000633c movl (%r14), %eax + 0x89, 0x02, //0x0000633f movl %eax, (%rdx) + 0x49, 0x83, 0xc6, 0x04, //0x00006341 addq $4, %r14 + 0x48, 0x83, 0xc2, 0x04, //0x00006345 addq $4, %rdx + 0x48, 0x83, 0xc1, 0xfc, //0x00006349 addq $-4, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000634d cmpq $2, %rcx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006351 jae LBB31_106 + //0x00006357 LBB31_102 + 0x4c, 0x89, 0xf0, //0x00006357 movq %r14, %rax + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x0000635a leaq $32(%rsp), %r14 + 0x48, 0x85, 0xc9, //0x0000635f testq %rcx, %rcx + 0x0f, 0x85, 0x59, 0x00, 0x00, 0x00, //0x00006362 jne LBB31_107 + 0xe9, 0x81, 0xfd, 0xff, 0xff, //0x00006368 jmp LBB31_87 + //0x0000636d LBB31_99 + 0x48, 0x83, 0xf9, 0x08, //0x0000636d cmpq $8, %rcx + 0x0f, 0x82, 0xbb, 0xff, 0xff, 0xff, //0x00006371 jb LBB31_100 + //0x00006377 LBB31_104 + 0x49, 0x8b, 0x06, //0x00006377 movq (%r14), %rax + 0x48, 0x89, 0x02, //0x0000637a movq %rax, (%rdx) + 0x49, 0x83, 0xc6, 0x08, //0x0000637d addq $8, %r14 + 0x48, 0x83, 0xc2, 0x08, //0x00006381 addq $8, %rdx + 0x48, 0x83, 0xc1, 0xf8, //0x00006385 addq $-8, %rcx + 0x48, 0x83, 0xf9, 0x04, //0x00006389 cmpq $4, %rcx + 0x0f, 0x8d, 0xa9, 0xff, 0xff, 0xff, //0x0000638d jge LBB31_105 + //0x00006393 LBB31_101 + 0x48, 0x83, 0xf9, 0x02, //0x00006393 cmpq $2, %rcx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006397 jb LBB31_102 + //0x0000639d LBB31_106 + 0x41, 0x0f, 0xb7, 0x06, //0x0000639d movzwl (%r14), %eax + 0x66, 0x89, 0x02, //0x000063a1 movw %ax, (%rdx) + 0x49, 0x83, 0xc6, 0x02, //0x000063a4 addq $2, %r14 + 0x48, 0x83, 0xc2, 0x02, //0x000063a8 addq $2, %rdx + 0x48, 0x83, 0xc1, 0xfe, //0x000063ac addq $-2, %rcx + 0x4c, 0x89, 0xf0, //0x000063b0 movq %r14, %rax + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000063b3 leaq $32(%rsp), %r14 + 0x48, 0x85, 0xc9, //0x000063b8 testq %rcx, %rcx + 0x0f, 0x84, 0x2d, 0xfd, 0xff, 0xff, //0x000063bb je LBB31_87 + //0x000063c1 LBB31_107 + 0x8a, 0x00, //0x000063c1 movb (%rax), %al + 0x88, 0x02, //0x000063c3 movb %al, (%rdx) + 0x4c, 0x8d, 0x74, 0x24, 0x20, //0x000063c5 leaq $32(%rsp), %r14 + 0xe9, 0x1f, 0xfd, 0xff, 0xff, //0x000063ca jmp LBB31_87 + //0x000063cf LBB31_108 + 0x48, 0x8b, 0x47, 0x08, //0x000063cf movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xca, //0x000063d3 bsfq %rdx, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x000063d7 subq $8(%rsp), %rcx + 0x48, 0x01, 0xc8, //0x000063dc addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x01, //0x000063df addq $1, %rax + 0x48, 0x8b, 0x74, 0x24, 0x18, //0x000063e3 movq $24(%rsp), %rsi + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000063e8 jmp LBB31_110 + //0x000063ed LBB31_109 + 0x48, 0x8b, 0x47, 0x08, //0x000063ed movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xca, //0x000063f1 bsfq %rdx, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x08, //0x000063f5 subq $8(%rsp), %rcx + 0x48, 0x01, 0xc8, //0x000063fa addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x01, //0x000063fd addq $1, %rax + //0x00006401 LBB31_110 + 0x48, 0x89, 0x06, //0x00006401 movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x00006404 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x00006408 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x0000640b cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x0000640f movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006412 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xd8, //0x00006419 cmovaq %rax, %r11 + 0xe9, 0x9c, 0xf7, 0xff, 0xff, //0x0000641d jmp LBB31_43 + //0x00006422 LBB31_111 + 0x0f, 0xbc, 0xc2, //0x00006422 bsfl %edx, %eax + 0x4c, 0x01, 0xd8, //0x00006425 addq %r11, %rax + 0x4c, 0x01, 0xe0, //0x00006428 addq %r12, %rax + 0x48, 0x83, 0xc0, 0x02, //0x0000642b addq $2, %rax + 0x48, 0x89, 0x06, //0x0000642f movq %rax, (%rsi) + 0xe9, 0x87, 0xf7, 0xff, 0xff, //0x00006432 jmp LBB31_43 + //0x00006437 LBB31_112 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00006437 movq $-2, %rdi + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x0000643e movl $2, %ecx + 0x48, 0x01, 0xca, //0x00006443 addq %rcx, %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006446 movq $-1, %rax + 0x49, 0x01, 0xfc, //0x0000644d addq %rdi, %r12 + 0x0f, 0x8e, 0x6b, 0xf7, 0xff, 0xff, //0x00006450 jle LBB31_44 + //0x00006456 LBB31_114 + 0x0f, 0xb6, 0x02, //0x00006456 movzbl (%rdx), %eax + 0x3c, 0x5c, //0x00006459 cmpb $92, %al + 0x0f, 0x84, 0xd6, 0xff, 0xff, 0xff, //0x0000645b je LBB31_112 + 0x3c, 0x22, //0x00006461 cmpb $34, %al + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00006463 je LBB31_118 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00006469 movq $-1, %rdi + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00006470 movl $1, %ecx + 0x48, 0x01, 0xca, //0x00006475 addq %rcx, %rdx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006478 movq $-1, %rax + 0x49, 0x01, 0xfc, //0x0000647f addq %rdi, %r12 + 0x0f, 0x8f, 0xce, 0xff, 0xff, 0xff, //0x00006482 jg LBB31_114 + 0xe9, 0x34, 0xf7, 0xff, 0xff, //0x00006488 jmp LBB31_44 + //0x0000648d LBB31_117 + 0x4c, 0x29, 0xf2, //0x0000648d subq %r14, %rdx + 0x48, 0x01, 0xca, //0x00006490 addq %rcx, %rdx + 0x48, 0x89, 0x16, //0x00006493 movq %rdx, (%rsi) + 0xe9, 0x23, 0xf7, 0xff, 0xff, //0x00006496 jmp LBB31_43 + //0x0000649b LBB31_118 + 0x4c, 0x29, 0xf2, //0x0000649b subq %r14, %rdx + 0x48, 0x83, 0xc2, 0x01, //0x0000649e addq $1, %rdx + 0x48, 0x89, 0x16, //0x000064a2 movq %rdx, (%rsi) + 0xe9, 0x14, 0xf7, 0xff, 0xff, //0x000064a5 jmp LBB31_43 + //0x000064aa LBB31_119 + 0x4c, 0x01, 0xf2, //0x000064aa addq %r14, %rdx + 0x48, 0x85, 0xc0, //0x000064ad testq %rax, %rax + 0x0f, 0x85, 0xbb, 0xf6, 0xff, 0xff, //0x000064b0 jne LBB31_34 + 0xe9, 0xeb, 0xf6, 0xff, 0xff, //0x000064b6 jmp LBB31_40 + //0x000064bb LBB31_120 + 0x4c, 0x01, 0xf2, //0x000064bb addq %r14, %rdx + 0xe9, 0x2a, 0xf8, 0xff, 0xff, //0x000064be jmp LBB31_56 + //0x000064c3 LBB31_121 + 0x48, 0x8b, 0x47, 0x08, //0x000064c3 movq $8(%rdi), %rax + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x000064c7 movq $24(%rsp), %rcx + 0x48, 0x89, 0x01, //0x000064cc movq %rax, (%rcx) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064cf movq $-1, %rax + 0xe9, 0xe6, 0xf6, 0xff, 0xff, //0x000064d6 jmp LBB31_44 + //0x000064db LBB31_122 + 0x48, 0x8b, 0x47, 0x08, //0x000064db movq $8(%rdi), %rax + 0x48, 0x89, 0x06, //0x000064df movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064e2 movq $-1, %rax + 0xe9, 0xd3, 0xf6, 0xff, 0xff, //0x000064e9 jmp LBB31_44 + //0x000064ee LBB31_123 + 0x49, 0x8d, 0x40, 0xff, //0x000064ee leaq $-1(%r8), %rax + 0x4c, 0x39, 0xe0, //0x000064f2 cmpq %r12, %rax + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000064f5 jne LBB31_125 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064fb movq $-1, %rax + 0xe9, 0xba, 0xf6, 0xff, 0xff, //0x00006502 jmp LBB31_44 + //0x00006507 LBB31_125 + 0x4b, 0x8d, 0x14, 0x14, //0x00006507 leaq (%r12,%r10), %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000650b addq $2, %rdx + 0x4d, 0x29, 0xe0, //0x0000650f subq %r12, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00006512 addq $-2, %r8 + 0x4d, 0x89, 0xc4, //0x00006516 movq %r8, %r12 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006519 movq $-1, %rax + 0xe9, 0xc8, 0xf7, 0xff, 0xff, //0x00006520 jmp LBB31_56 + 0x90, 0x90, 0x90, //0x00006525 .p2align 2, 0x90 + // // .set L31_0_set_44, LBB31_44-LJTI31_0 + // // .set L31_0_set_46, LBB31_46-LJTI31_0 + // // .set L31_0_set_47, LBB31_47-LJTI31_0 + // // .set L31_0_set_29, LBB31_29-LJTI31_0 + // // .set L31_0_set_57, LBB31_57-LJTI31_0 + // // .set L31_0_set_83, LBB31_83-LJTI31_0 + // // .set L31_0_set_45, LBB31_45-LJTI31_0 + // // .set L31_0_set_84, LBB31_84-LJTI31_0 + //0x00006528 LJTI31_0 + 0x99, 0xf6, 0xff, 0xff, //0x00006528 .long L31_0_set_44 + 0xbe, 0xf6, 0xff, 0xff, //0x0000652c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006530 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006534 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006538 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000653c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006540 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006544 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006548 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000654c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006550 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006554 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006558 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000655c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006560 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006564 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006568 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000656c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006570 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006574 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006578 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000657c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006580 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006584 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006588 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000658c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006590 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006594 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006598 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000659c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065a0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065a4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065a8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065ac .long L31_0_set_46 + 0xcd, 0xf6, 0xff, 0xff, //0x000065b0 .long L31_0_set_47 + 0xbe, 0xf6, 0xff, 0xff, //0x000065b4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065b8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065bc .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065c0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065c4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065c8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065cc .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065d0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065d4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065d8 .long L31_0_set_46 + 0xbc, 0xf5, 0xff, 0xff, //0x000065dc .long L31_0_set_29 + 0xbe, 0xf6, 0xff, 0xff, //0x000065e0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000065e4 .long L31_0_set_46 + 0xbc, 0xf5, 0xff, 0xff, //0x000065e8 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x000065ec .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x000065f0 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x000065f4 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x000065f8 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x000065fc .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x00006600 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x00006604 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x00006608 .long L31_0_set_29 + 0xbc, 0xf5, 0xff, 0xff, //0x0000660c .long L31_0_set_29 + 0xbe, 0xf6, 0xff, 0xff, //0x00006610 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006614 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006618 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000661c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006620 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006624 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006628 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000662c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006630 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006634 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006638 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000663c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006640 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006644 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006648 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000664c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006650 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006654 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006658 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000665c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006660 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006664 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006668 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000666c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006670 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006674 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006678 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000667c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006680 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006684 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006688 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000668c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006690 .long L31_0_set_46 + 0xd3, 0xf7, 0xff, 0xff, //0x00006694 .long L31_0_set_57 + 0xbe, 0xf6, 0xff, 0xff, //0x00006698 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000669c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066a0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066a4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066a8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066ac .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066b0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066b4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066b8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066bc .long L31_0_set_46 + 0x3f, 0xfb, 0xff, 0xff, //0x000066c0 .long L31_0_set_83 + 0xbe, 0xf6, 0xff, 0xff, //0x000066c4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066c8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066cc .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066d0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066d4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066d8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066dc .long L31_0_set_46 + 0xab, 0xf6, 0xff, 0xff, //0x000066e0 .long L31_0_set_45 + 0xbe, 0xf6, 0xff, 0xff, //0x000066e4 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066e8 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066ec .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066f0 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x000066f4 .long L31_0_set_46 + 0xab, 0xf6, 0xff, 0xff, //0x000066f8 .long L31_0_set_45 + 0xbe, 0xf6, 0xff, 0xff, //0x000066fc .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006700 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006704 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006708 .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x0000670c .long L31_0_set_46 + 0xbe, 0xf6, 0xff, 0xff, //0x00006710 .long L31_0_set_46 + 0x52, 0xfb, 0xff, 0xff, //0x00006714 .long L31_0_set_84 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006718 .p2align 4, 0x00 + //0x00006720 LCPI32_0 + 0x01, 0x00, 0x00, 0x00, //0x00006720 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x00006724 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00006728 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000672c .long 0 + //0x00006730 .p2align 4, 0x90 + //0x00006730 _get_by_path + 0x55, //0x00006730 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006731 movq %rsp, %rbp + 0x41, 0x57, //0x00006734 pushq %r15 + 0x41, 0x56, //0x00006736 pushq %r14 + 0x41, 0x55, //0x00006738 pushq %r13 + 0x41, 0x54, //0x0000673a pushq %r12 + 0x53, //0x0000673c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000673d subq $56, %rsp + 0x49, 0x89, 0xf5, //0x00006741 movq %rsi, %r13 + 0x49, 0x89, 0xfc, //0x00006744 movq %rdi, %r12 + 0x48, 0x8b, 0x42, 0x08, //0x00006747 movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x0000674b testq %rax, %rax + 0x0f, 0x84, 0xfb, 0x0b, 0x00, 0x00, //0x0000674e je LBB32_221 + 0x4c, 0x8b, 0x0a, //0x00006754 movq (%rdx), %r9 + 0x48, 0xc1, 0xe0, 0x04, //0x00006757 shlq $4, %rax + 0x4c, 0x01, 0xc8, //0x0000675b addq %r9, %rax + 0x48, 0x89, 0x45, 0xa8, //0x0000675e movq %rax, $-88(%rbp) + 0x49, 0x8b, 0x14, 0x24, //0x00006762 movq (%r12), %rdx + 0x49, 0x8b, 0x75, 0x00, //0x00006766 movq (%r13), %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000676a movabsq $4294977024, %r10 + 0x48, 0x89, 0x4d, 0xa0, //0x00006774 movq %rcx, $-96(%rbp) + //0x00006778 LBB32_2 + 0x4d, 0x8b, 0x44, 0x24, 0x08, //0x00006778 movq $8(%r12), %r8 + 0x4c, 0x39, 0xc6, //0x0000677d cmpq %r8, %rsi + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00006780 jae LBB32_7 + 0x8a, 0x04, 0x32, //0x00006786 movb (%rdx,%rsi), %al + 0x3c, 0x0d, //0x00006789 cmpb $13, %al + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000678b je LBB32_7 + 0x3c, 0x20, //0x00006791 cmpb $32, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006793 je LBB32_7 + 0x04, 0xf7, //0x00006799 addb $-9, %al + 0x3c, 0x01, //0x0000679b cmpb $1, %al + 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x0000679d jbe LBB32_7 + 0x48, 0x89, 0xf7, //0x000067a3 movq %rsi, %rdi + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x000067a6 jmp LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067ab .p2align 4, 0x90 + //0x000067b0 LBB32_7 + 0x48, 0x8d, 0x7e, 0x01, //0x000067b0 leaq $1(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x000067b4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000067b7 jae LBB32_11 + 0x8a, 0x04, 0x3a, //0x000067bd movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x000067c0 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000067c2 je LBB32_11 + 0x3c, 0x20, //0x000067c8 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x000067ca je LBB32_11 + 0x04, 0xf7, //0x000067d0 addb $-9, %al + 0x3c, 0x01, //0x000067d2 cmpb $1, %al + 0x0f, 0x87, 0xe5, 0x00, 0x00, 0x00, //0x000067d4 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000067da .p2align 4, 0x90 + //0x000067e0 LBB32_11 + 0x48, 0x8d, 0x7e, 0x02, //0x000067e0 leaq $2(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x000067e4 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000067e7 jae LBB32_15 + 0x8a, 0x04, 0x3a, //0x000067ed movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x000067f0 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000067f2 je LBB32_15 + 0x3c, 0x20, //0x000067f8 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x000067fa je LBB32_15 + 0x04, 0xf7, //0x00006800 addb $-9, %al + 0x3c, 0x01, //0x00006802 cmpb $1, %al + 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00006804 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000680a .p2align 4, 0x90 + //0x00006810 LBB32_15 + 0x48, 0x8d, 0x7e, 0x03, //0x00006810 leaq $3(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x00006814 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006817 jae LBB32_19 + 0x8a, 0x04, 0x3a, //0x0000681d movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x00006820 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006822 je LBB32_19 + 0x3c, 0x20, //0x00006828 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000682a je LBB32_19 + 0x04, 0xf7, //0x00006830 addb $-9, %al + 0x3c, 0x01, //0x00006832 cmpb $1, %al + 0x0f, 0x87, 0x85, 0x00, 0x00, 0x00, //0x00006834 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000683a .p2align 4, 0x90 + //0x00006840 LBB32_19 + 0x48, 0x8d, 0x46, 0x04, //0x00006840 leaq $4(%rsi), %rax + 0x49, 0x39, 0xc0, //0x00006844 cmpq %rax, %r8 + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00006847 jbe LBB32_25 + 0x49, 0x39, 0xc0, //0x0000684d cmpq %rax, %r8 + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x00006850 je LBB32_26 + 0x4a, 0x8d, 0x3c, 0x02, //0x00006856 leaq (%rdx,%r8), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000685a .p2align 4, 0x90 + //0x00006860 LBB32_22 + 0x0f, 0xbe, 0x1c, 0x02, //0x00006860 movsbl (%rdx,%rax), %ebx + 0x83, 0xfb, 0x20, //0x00006864 cmpl $32, %ebx + 0x0f, 0x87, 0x46, 0x00, 0x00, 0x00, //0x00006867 ja LBB32_28 + 0x49, 0x0f, 0xa3, 0xda, //0x0000686d btq %rbx, %r10 + 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x00006871 jae LBB32_28 + 0x48, 0x83, 0xc0, 0x01, //0x00006877 addq $1, %rax + 0x49, 0x39, 0xc0, //0x0000687b cmpq %rax, %r8 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000687e jne LBB32_22 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00006884 jmp LBB32_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006889 .p2align 4, 0x90 + //0x00006890 LBB32_25 + 0x49, 0x89, 0x45, 0x00, //0x00006890 movq %rax, (%r13) + 0x31, 0xff, //0x00006894 xorl %edi, %edi + 0x49, 0x8b, 0x31, //0x00006896 movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x00006899 testq %rsi, %rsi + 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x0000689c jne LBB32_31 + 0xe9, 0x1e, 0x0b, 0x00, 0x00, //0x000068a2 jmp LBB32_228 + //0x000068a7 LBB32_26 + 0x48, 0x01, 0xd0, //0x000068a7 addq %rdx, %rax + 0x48, 0x89, 0xc7, //0x000068aa movq %rax, %rdi + //0x000068ad LBB32_27 + 0x48, 0x29, 0xd7, //0x000068ad subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x000068b0 movq %rdi, %rax + //0x000068b3 LBB32_28 + 0x48, 0x89, 0xc7, //0x000068b3 movq %rax, %rdi + 0x4c, 0x39, 0xc0, //0x000068b6 cmpq %r8, %rax + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x000068b9 jae LBB32_30 + //0x000068bf LBB32_29 + 0x48, 0x8d, 0x47, 0x01, //0x000068bf leaq $1(%rdi), %rax + 0x49, 0x89, 0x45, 0x00, //0x000068c3 movq %rax, (%r13) + 0x40, 0x8a, 0x3c, 0x3a, //0x000068c7 movb (%rdx,%rdi), %dil + 0x49, 0x8b, 0x31, //0x000068cb movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x000068ce testq %rsi, %rsi + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x000068d1 jne LBB32_31 + 0xe9, 0xe9, 0x0a, 0x00, 0x00, //0x000068d7 jmp LBB32_228 + //0x000068dc LBB32_30 + 0x31, 0xff, //0x000068dc xorl %edi, %edi + 0x48, 0x89, 0xf0, //0x000068de movq %rsi, %rax + 0x49, 0x8b, 0x31, //0x000068e1 movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x000068e4 testq %rsi, %rsi + 0x0f, 0x84, 0xd8, 0x0a, 0x00, 0x00, //0x000068e7 je LBB32_228 + 0x90, 0x90, 0x90, //0x000068ed .p2align 4, 0x90 + //0x000068f0 LBB32_31 + 0x8a, 0x5e, 0x17, //0x000068f0 movb $23(%rsi), %bl + 0x80, 0xe3, 0x1f, //0x000068f3 andb $31, %bl + 0x80, 0xfb, 0x02, //0x000068f6 cmpb $2, %bl + 0x4c, 0x89, 0x4d, 0xb8, //0x000068f9 movq %r9, $-72(%rbp) + 0x0f, 0x84, 0xfd, 0x06, 0x00, 0x00, //0x000068fd je LBB32_161 + 0x80, 0xfb, 0x18, //0x00006903 cmpb $24, %bl + 0x0f, 0x85, 0xb9, 0x0a, 0x00, 0x00, //0x00006906 jne LBB32_228 + 0x40, 0x80, 0xff, 0x7b, //0x0000690c cmpb $123, %dil + 0x4c, 0x89, 0x6d, 0xd0, //0x00006910 movq %r13, $-48(%rbp) + 0x0f, 0x85, 0xc2, 0x0a, 0x00, 0x00, //0x00006914 jne LBB32_234 + //0x0000691a LBB32_34 + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000691a movq $8(%r12), %rcx + 0x48, 0x39, 0xc8, //0x0000691f cmpq %rcx, %rax + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006922 jae LBB32_39 + 0x8a, 0x1c, 0x02, //0x00006928 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x0000692b cmpb $13, %bl + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000692e je LBB32_39 + 0x80, 0xfb, 0x20, //0x00006934 cmpb $32, %bl + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00006937 je LBB32_39 + 0x80, 0xc3, 0xf7, //0x0000693d addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006940 cmpb $1, %bl + 0x0f, 0x86, 0x17, 0x00, 0x00, 0x00, //0x00006943 jbe LBB32_39 + 0x49, 0x89, 0xc7, //0x00006949 movq %rax, %r15 + 0xe9, 0x04, 0x01, 0x00, 0x00, //0x0000694c jmp LBB32_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006951 .p2align 4, 0x90 + //0x00006960 LBB32_39 + 0x4c, 0x8d, 0x78, 0x01, //0x00006960 leaq $1(%rax), %r15 + 0x49, 0x39, 0xcf, //0x00006964 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006967 jae LBB32_43 + 0x42, 0x8a, 0x1c, 0x3a, //0x0000696d movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00006971 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006974 je LBB32_43 + 0x80, 0xfb, 0x20, //0x0000697a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000697d je LBB32_43 + 0x80, 0xc3, 0xf7, //0x00006983 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006986 cmpb $1, %bl + 0x0f, 0x87, 0xc6, 0x00, 0x00, 0x00, //0x00006989 ja LBB32_60 + 0x90, //0x0000698f .p2align 4, 0x90 + //0x00006990 LBB32_43 + 0x4c, 0x8d, 0x78, 0x02, //0x00006990 leaq $2(%rax), %r15 + 0x49, 0x39, 0xcf, //0x00006994 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006997 jae LBB32_47 + 0x42, 0x8a, 0x1c, 0x3a, //0x0000699d movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000069a1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000069a4 je LBB32_47 + 0x80, 0xfb, 0x20, //0x000069aa cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000069ad je LBB32_47 + 0x80, 0xc3, 0xf7, //0x000069b3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000069b6 cmpb $1, %bl + 0x0f, 0x87, 0x96, 0x00, 0x00, 0x00, //0x000069b9 ja LBB32_60 + 0x90, //0x000069bf .p2align 4, 0x90 + //0x000069c0 LBB32_47 + 0x4c, 0x8d, 0x78, 0x03, //0x000069c0 leaq $3(%rax), %r15 + 0x49, 0x39, 0xcf, //0x000069c4 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000069c7 jae LBB32_51 + 0x42, 0x8a, 0x1c, 0x3a, //0x000069cd movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x000069d1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000069d4 je LBB32_51 + 0x80, 0xfb, 0x20, //0x000069da cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000069dd je LBB32_51 + 0x80, 0xc3, 0xf7, //0x000069e3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000069e6 cmpb $1, %bl + 0x0f, 0x87, 0x66, 0x00, 0x00, 0x00, //0x000069e9 ja LBB32_60 + 0x90, //0x000069ef .p2align 4, 0x90 + //0x000069f0 LBB32_51 + 0x4c, 0x8d, 0x78, 0x04, //0x000069f0 leaq $4(%rax), %r15 + 0x4c, 0x39, 0xf9, //0x000069f4 cmpq %r15, %rcx + 0x0f, 0x86, 0xdc, 0x09, 0x00, 0x00, //0x000069f7 jbe LBB32_231 + 0x4c, 0x39, 0xf9, //0x000069fd cmpq %r15, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006a00 je LBB32_57 + 0x48, 0x8d, 0x34, 0x0a, //0x00006a06 leaq (%rdx,%rcx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a0a .p2align 4, 0x90 + //0x00006a10 LBB32_54 + 0x42, 0x0f, 0xbe, 0x3c, 0x3a, //0x00006a10 movsbl (%rdx,%r15), %edi + 0x83, 0xff, 0x20, //0x00006a15 cmpl $32, %edi + 0x0f, 0x87, 0x2e, 0x00, 0x00, 0x00, //0x00006a18 ja LBB32_59 + 0x49, 0x0f, 0xa3, 0xfa, //0x00006a1e btq %rdi, %r10 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00006a22 jae LBB32_59 + 0x49, 0x83, 0xc7, 0x01, //0x00006a28 addq $1, %r15 + 0x4c, 0x39, 0xf9, //0x00006a2c cmpq %r15, %rcx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00006a2f jne LBB32_54 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00006a35 jmp LBB32_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a3a .p2align 4, 0x90 + //0x00006a40 LBB32_57 + 0x49, 0x01, 0xd7, //0x00006a40 addq %rdx, %r15 + 0x4c, 0x89, 0xfe, //0x00006a43 movq %r15, %rsi + //0x00006a46 LBB32_58 + 0x48, 0x29, 0xd6, //0x00006a46 subq %rdx, %rsi + 0x49, 0x89, 0xf7, //0x00006a49 movq %rsi, %r15 + //0x00006a4c LBB32_59 + 0x49, 0x39, 0xcf, //0x00006a4c cmpq %rcx, %r15 + 0x0f, 0x83, 0x87, 0x09, 0x00, 0x00, //0x00006a4f jae LBB32_234 + //0x00006a55 LBB32_60 + 0x4c, 0x89, 0xe8, //0x00006a55 movq %r13, %rax + 0x4d, 0x8d, 0x6f, 0x01, //0x00006a58 leaq $1(%r15), %r13 + 0x4c, 0x89, 0x28, //0x00006a5c movq %r13, (%rax) + 0x42, 0x8a, 0x0c, 0x3a, //0x00006a5f movb (%rdx,%r15), %cl + 0x80, 0xf9, 0x22, //0x00006a63 cmpb $34, %cl + 0x0f, 0x85, 0x1f, 0x09, 0x00, 0x00, //0x00006a66 jne LBB32_224 + 0x48, 0x8b, 0x45, 0xb8, //0x00006a6c movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00006a70 movq $8(%rax), %rax + 0x48, 0x8b, 0x18, //0x00006a74 movq (%rax), %rbx + 0x4c, 0x8b, 0x70, 0x08, //0x00006a77 movq $8(%rax), %r14 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006a7b movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xe7, //0x00006a83 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x00006a86 movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006a89 leaq $-80(%rbp), %rdx + 0xe8, 0x4e, 0x27, 0x00, 0x00, //0x00006a8d callq _advance_string_default + 0x48, 0x85, 0xc0, //0x00006a92 testq %rax, %rax + 0x0f, 0x88, 0x62, 0x09, 0x00, 0x00, //0x00006a95 js LBB32_236 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006a9b movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00006a9f movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x00006aa2 movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00006aa6 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006aaa je LBB32_64 + 0x48, 0x39, 0xc1, //0x00006ab0 cmpq %rax, %rcx + 0x0f, 0x8e, 0x48, 0x01, 0x00, 0x00, //0x00006ab3 jle LBB32_136 + //0x00006ab9 LBB32_64 + 0x48, 0x89, 0xc2, //0x00006ab9 movq %rax, %rdx + 0x4c, 0x29, 0xfa, //0x00006abc subq %r15, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x00006abf addq $-2, %rdx + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006ac3 movl $1, %r8d + 0x48, 0x89, 0xd1, //0x00006ac9 movq %rdx, %rcx + 0x4c, 0x09, 0xf1, //0x00006acc orq %r14, %rcx + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00006acf jne LBB32_66 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ad5 movabsq $4294977024, %r10 + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x00006adf jmp LBB32_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ae4 .p2align 4, 0x90 + //0x00006af0 LBB32_66 + 0x4c, 0x39, 0xf2, //0x00006af0 cmpq %r14, %rdx + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006af3 movabsq $4294977024, %r10 + 0x0f, 0x85, 0x39, 0x00, 0x00, 0x00, //0x00006afd jne LBB32_71 + 0x49, 0x8b, 0x3c, 0x24, //0x00006b03 movq (%r12), %rdi + 0x49, 0x01, 0xfd, //0x00006b07 addq %rdi, %r13 + 0x31, 0xf6, //0x00006b0a xorl %esi, %esi + 0x4c, 0x89, 0xf2, //0x00006b0c movq %r14, %rdx + 0x90, //0x00006b0f .p2align 4, 0x90 + //0x00006b10 LBB32_68 + 0x48, 0x83, 0xfa, 0x10, //0x00006b10 cmpq $16, %rdx + 0x0f, 0x82, 0x64, 0x00, 0x00, 0x00, //0x00006b14 jb LBB32_72 + 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x35, 0x00, //0x00006b1a vmovdqu (%r13,%rsi), %xmm0 + 0xc5, 0xf9, 0x74, 0x04, 0x33, //0x00006b21 vpcmpeqb (%rbx,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x00006b26 vpmovmskb %xmm0, %ecx + 0x48, 0x83, 0xc2, 0xf0, //0x00006b2a addq $-16, %rdx + 0x48, 0x83, 0xc6, 0x10, //0x00006b2e addq $16, %rsi + 0x66, 0x83, 0xf9, 0xff, //0x00006b32 cmpw $-1, %cx + 0x0f, 0x84, 0xd4, 0xff, 0xff, 0xff, //0x00006b36 je LBB32_68 + //0x00006b3c LBB32_71 + 0x45, 0x31, 0xc0, //0x00006b3c xorl %r8d, %r8d + //0x00006b3f LBB32_76 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006b3f movq $-48(%rbp), %r13 + 0x49, 0x8b, 0x14, 0x24, //0x00006b43 movq (%r12), %rdx + 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006b47 movq $8(%r12), %rsi + 0x48, 0x39, 0xf0, //0x00006b4c cmpq %rsi, %rax + 0x0f, 0x83, 0x1b, 0x02, 0x00, 0x00, //0x00006b4f jae LBB32_82 + //0x00006b55 LBB32_78 + 0x8a, 0x1c, 0x02, //0x00006b55 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00006b58 cmpb $13, %bl + 0x0f, 0x84, 0x0f, 0x02, 0x00, 0x00, //0x00006b5b je LBB32_82 + 0x80, 0xfb, 0x20, //0x00006b61 cmpb $32, %bl + 0x0f, 0x84, 0x06, 0x02, 0x00, 0x00, //0x00006b64 je LBB32_82 + 0x80, 0xc3, 0xf7, //0x00006b6a addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006b6d cmpb $1, %bl + 0x0f, 0x86, 0xfa, 0x01, 0x00, 0x00, //0x00006b70 jbe LBB32_82 + 0x48, 0x89, 0xc7, //0x00006b76 movq %rax, %rdi + 0xe9, 0xe7, 0x02, 0x00, 0x00, //0x00006b79 jmp LBB32_107 + //0x00006b7e LBB32_72 + 0x44, 0x01, 0xff, //0x00006b7e addl %r15d, %edi + 0x8d, 0x0c, 0x3e, //0x00006b81 leal (%rsi,%rdi), %ecx + 0x83, 0xc1, 0x01, //0x00006b84 addl $1, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006b87 andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006b8d cmpl $4080, %ecx + 0x0f, 0x87, 0x4b, 0x00, 0x00, 0x00, //0x00006b93 ja LBB32_101 + 0x8d, 0x0c, 0x33, //0x00006b99 leal (%rbx,%rsi), %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006b9c andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006ba2 cmpl $4081, %ecx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x00006ba8 jae LBB32_101 + 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x35, 0x00, //0x00006bae vmovdqu (%r13,%rsi), %xmm0 + 0xc5, 0xf9, 0x74, 0x04, 0x33, //0x00006bb5 vpcmpeqb (%rbx,%rsi), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xf0, //0x00006bba vpmovmskb %xmm0, %esi + 0x66, 0x83, 0xfe, 0xff, //0x00006bbe cmpw $-1, %si + 0x0f, 0x84, 0x77, 0xff, 0xff, 0xff, //0x00006bc2 je LBB32_76 + 0xf7, 0xd6, //0x00006bc8 notl %esi + 0x66, 0x0f, 0xbc, 0xce, //0x00006bca bsfw %si, %cx + 0x0f, 0xb7, 0xc9, //0x00006bce movzwl %cx, %ecx + 0x45, 0x31, 0xc0, //0x00006bd1 xorl %r8d, %r8d + 0x48, 0x39, 0xca, //0x00006bd4 cmpq %rcx, %rdx + 0x41, 0x0f, 0x96, 0xc0, //0x00006bd7 setbe %r8b + 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x00006bdb jmp LBB32_76 + //0x00006be0 .p2align 4, 0x90 + //0x00006be0 LBB32_100 + 0x48, 0x83, 0xc6, 0x01, //0x00006be0 addq $1, %rsi + //0x00006be4 LBB32_101 + 0x49, 0x39, 0xf6, //0x00006be4 cmpq %rsi, %r14 + 0x0f, 0x84, 0x52, 0xff, 0xff, 0xff, //0x00006be7 je LBB32_76 + 0x41, 0x0f, 0xb6, 0x4c, 0x35, 0x00, //0x00006bed movzbl (%r13,%rsi), %ecx + 0x3a, 0x0c, 0x33, //0x00006bf3 cmpb (%rbx,%rsi), %cl + 0x0f, 0x84, 0xe4, 0xff, 0xff, 0xff, //0x00006bf6 je LBB32_100 + 0xe9, 0x3b, 0xff, 0xff, 0xff, //0x00006bfc jmp LBB32_71 + //0x00006c01 LBB32_136 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00006c01 movq $0, $-64(%rbp) + 0x49, 0x8b, 0x0c, 0x24, //0x00006c09 movq (%r12), %rcx + 0x4a, 0x8d, 0x34, 0x29, //0x00006c0d leaq (%rcx,%r13), %rsi + 0x48, 0x89, 0x75, 0xc8, //0x00006c11 movq %rsi, $-56(%rbp) + 0x48, 0x01, 0xc1, //0x00006c15 addq %rax, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x00006c18 addq $-1, %rcx + 0x48, 0x83, 0xc0, 0xff, //0x00006c1c addq $-1, %rax + 0x4e, 0x8d, 0x3c, 0x33, //0x00006c20 leaq (%rbx,%r14), %r15 + 0x49, 0x39, 0xc5, //0x00006c24 cmpq %rax, %r13 + 0x0f, 0x8d, 0xdf, 0x00, 0x00, 0x00, //0x00006c27 jge LBB32_153 + 0x4d, 0x85, 0xf6, //0x00006c2d testq %r14, %r14 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006c30 movq $-48(%rbp), %r13 + 0x48, 0x8d, 0x55, 0xc0, //0x00006c34 leaq $-64(%rbp), %rdx + 0x0f, 0x8e, 0xd2, 0x00, 0x00, 0x00, //0x00006c38 jle LBB32_154 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c3e movabsq $4294977024, %r10 + 0x49, 0x89, 0xce, //0x00006c48 movq %rcx, %r14 + //0x00006c4b LBB32_139 + 0x8a, 0x06, //0x00006c4b movb (%rsi), %al + 0x3c, 0x5c, //0x00006c4d cmpb $92, %al + 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00006c4f jne LBB32_146 + 0x48, 0x8d, 0x7d, 0xc8, //0x00006c55 leaq $-56(%rbp), %rdi + 0x4c, 0x89, 0xf6, //0x00006c59 movq %r14, %rsi + 0xe8, 0x0f, 0x29, 0x00, 0x00, //0x00006c5c callq _unescape + 0x49, 0x89, 0xc0, //0x00006c61 movq %rax, %r8 + 0x48, 0x85, 0xc0, //0x00006c64 testq %rax, %rax + 0x0f, 0x88, 0xcd, 0x00, 0x00, 0x00, //0x00006c67 js LBB32_158 + 0x49, 0x8d, 0x34, 0x28, //0x00006c6d leaq (%r8,%rbp), %rsi + 0x48, 0x83, 0xc6, 0xc0, //0x00006c71 addq $-64, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00006c75 leaq $-64(%rbp), %rdx + 0x4c, 0x39, 0xfb, //0x00006c79 cmpq %r15, %rbx + 0x0f, 0x83, 0x59, 0x00, 0x00, 0x00, //0x00006c7c jae LBB32_148 + 0x48, 0x39, 0xd6, //0x00006c82 cmpq %rdx, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c85 movabsq $4294977024, %r10 + 0x48, 0x89, 0xd1, //0x00006c8f movq %rdx, %rcx + 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006c92 jbe LBB32_149 + //0x00006c98 LBB32_143 + 0x0f, 0xb6, 0x03, //0x00006c98 movzbl (%rbx), %eax + 0x3a, 0x01, //0x00006c9b cmpb (%rcx), %al + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00006c9d jne LBB32_149 + 0x48, 0x83, 0xc3, 0x01, //0x00006ca3 addq $1, %rbx + 0x48, 0x83, 0xc1, 0x01, //0x00006ca7 addq $1, %rcx + 0x4c, 0x39, 0xfb, //0x00006cab cmpq %r15, %rbx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00006cae jae LBB32_149 + 0x48, 0x39, 0xf1, //0x00006cb4 cmpq %rsi, %rcx + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x00006cb7 jb LBB32_143 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00006cbd jmp LBB32_149 + //0x00006cc2 LBB32_146 + 0x3a, 0x03, //0x00006cc2 cmpb (%rbx), %al + 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00006cc4 jne LBB32_160 + 0x48, 0x83, 0xc6, 0x01, //0x00006cca addq $1, %rsi + 0x48, 0x89, 0x75, 0xc8, //0x00006cce movq %rsi, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x01, //0x00006cd2 addq $1, %rbx + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00006cd6 jmp LBB32_151 + //0x00006cdb LBB32_148 + 0x48, 0x89, 0xd1, //0x00006cdb movq %rdx, %rcx + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006cde movabsq $4294977024, %r10 + //0x00006ce8 LBB32_149 + 0x48, 0x39, 0xf1, //0x00006ce8 cmpq %rsi, %rcx + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00006ceb jne LBB32_160 + 0x48, 0x8b, 0x75, 0xc8, //0x00006cf1 movq $-56(%rbp), %rsi + //0x00006cf5 LBB32_151 + 0x4c, 0x39, 0xf6, //0x00006cf5 cmpq %r14, %rsi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00006cf8 jae LBB32_155 + 0x4c, 0x39, 0xfb, //0x00006cfe cmpq %r15, %rbx + 0x0f, 0x82, 0x44, 0xff, 0xff, 0xff, //0x00006d01 jb LBB32_139 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006d07 jmp LBB32_155 + //0x00006d0c LBB32_153 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006d0c movq $-48(%rbp), %r13 + //0x00006d10 LBB32_154 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006d10 movabsq $4294977024, %r10 + 0x49, 0x89, 0xce, //0x00006d1a movq %rcx, %r14 + //0x00006d1d LBB32_155 + 0x4c, 0x31, 0xf6, //0x00006d1d xorq %r14, %rsi + 0x4c, 0x31, 0xfb, //0x00006d20 xorq %r15, %rbx + 0x45, 0x31, 0xc0, //0x00006d23 xorl %r8d, %r8d + 0x48, 0x09, 0xf3, //0x00006d26 orq %rsi, %rbx + 0x41, 0x0f, 0x94, 0xc0, //0x00006d29 sete %r8b + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00006d2d jmp LBB32_156 + //0x00006d32 LBB32_160 + 0x45, 0x31, 0xc0, //0x00006d32 xorl %r8d, %r8d + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00006d35 jmp LBB32_156 + //0x00006d3a LBB32_158 + 0x48, 0x8b, 0x45, 0xc8, //0x00006d3a movq $-56(%rbp), %rax + 0x49, 0x2b, 0x04, 0x24, //0x00006d3e subq (%r12), %rax + 0x49, 0x89, 0x45, 0x00, //0x00006d42 movq %rax, (%r13) + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006d46 movabsq $4294977024, %r10 + //0x00006d50 LBB32_156 + 0x4d, 0x85, 0xc0, //0x00006d50 testq %r8, %r8 + 0x0f, 0x88, 0x92, 0x06, 0x00, 0x00, //0x00006d53 js LBB32_235 + 0x49, 0x8b, 0x45, 0x00, //0x00006d59 movq (%r13), %rax + 0x49, 0x8b, 0x14, 0x24, //0x00006d5d movq (%r12), %rdx + 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006d61 movq $8(%r12), %rsi + 0x48, 0x39, 0xf0, //0x00006d66 cmpq %rsi, %rax + 0x0f, 0x82, 0xe6, 0xfd, 0xff, 0xff, //0x00006d69 jb LBB32_78 + 0x90, //0x00006d6f .p2align 4, 0x90 + //0x00006d70 LBB32_82 + 0x48, 0x8d, 0x78, 0x01, //0x00006d70 leaq $1(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006d74 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006d77 jae LBB32_86 + 0x8a, 0x1c, 0x3a, //0x00006d7d movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006d80 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006d83 je LBB32_86 + 0x80, 0xfb, 0x20, //0x00006d89 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006d8c je LBB32_86 + 0x80, 0xc3, 0xf7, //0x00006d92 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006d95 cmpb $1, %bl + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006d98 ja LBB32_107 + 0x90, 0x90, //0x00006d9e .p2align 4, 0x90 + //0x00006da0 LBB32_86 + 0x48, 0x8d, 0x78, 0x02, //0x00006da0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006da4 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006da7 jae LBB32_90 + 0x8a, 0x1c, 0x3a, //0x00006dad movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006db0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006db3 je LBB32_90 + 0x80, 0xfb, 0x20, //0x00006db9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006dbc je LBB32_90 + 0x80, 0xc3, 0xf7, //0x00006dc2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006dc5 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006dc8 ja LBB32_107 + 0x90, 0x90, //0x00006dce .p2align 4, 0x90 + //0x00006dd0 LBB32_90 + 0x48, 0x8d, 0x78, 0x03, //0x00006dd0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006dd4 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006dd7 jae LBB32_94 + 0x8a, 0x1c, 0x3a, //0x00006ddd movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006de0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006de3 je LBB32_94 + 0x80, 0xfb, 0x20, //0x00006de9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006dec je LBB32_94 + 0x80, 0xc3, 0xf7, //0x00006df2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006df5 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006df8 ja LBB32_107 + 0x90, 0x90, //0x00006dfe .p2align 4, 0x90 + //0x00006e00 LBB32_94 + 0x48, 0x8d, 0x78, 0x04, //0x00006e00 leaq $4(%rax), %rdi + 0x48, 0x39, 0xfe, //0x00006e04 cmpq %rdi, %rsi + 0x0f, 0x86, 0x93, 0x05, 0x00, 0x00, //0x00006e07 jbe LBB32_232 + 0x48, 0x39, 0xfe, //0x00006e0d cmpq %rdi, %rsi + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006e10 je LBB32_104 + 0x48, 0x8d, 0x1c, 0x32, //0x00006e16 leaq (%rdx,%rsi), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006e1a .p2align 4, 0x90 + //0x00006e20 LBB32_97 + 0x0f, 0xbe, 0x0c, 0x3a, //0x00006e20 movsbl (%rdx,%rdi), %ecx + 0x83, 0xf9, 0x20, //0x00006e24 cmpl $32, %ecx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006e27 ja LBB32_106 + 0x49, 0x0f, 0xa3, 0xca, //0x00006e2d btq %rcx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006e31 jae LBB32_106 + 0x48, 0x83, 0xc7, 0x01, //0x00006e37 addq $1, %rdi + 0x48, 0x39, 0xfe, //0x00006e3b cmpq %rdi, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006e3e jne LBB32_97 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006e44 jmp LBB32_105 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006e49 .p2align 4, 0x90 + //0x00006e50 LBB32_104 + 0x48, 0x01, 0xd7, //0x00006e50 addq %rdx, %rdi + 0x48, 0x89, 0xfb, //0x00006e53 movq %rdi, %rbx + //0x00006e56 LBB32_105 + 0x48, 0x29, 0xd3, //0x00006e56 subq %rdx, %rbx + 0x48, 0x89, 0xdf, //0x00006e59 movq %rbx, %rdi + //0x00006e5c LBB32_106 + 0x48, 0x39, 0xf7, //0x00006e5c cmpq %rsi, %rdi + 0x0f, 0x83, 0x77, 0x05, 0x00, 0x00, //0x00006e5f jae LBB32_234 + //0x00006e65 LBB32_107 + 0x48, 0x8d, 0x77, 0x01, //0x00006e65 leaq $1(%rdi), %rsi + 0x49, 0x89, 0x75, 0x00, //0x00006e69 movq %rsi, (%r13) + 0x80, 0x3c, 0x3a, 0x3a, //0x00006e6d cmpb $58, (%rdx,%rdi) + 0x0f, 0x85, 0x0c, 0x05, 0x00, 0x00, //0x00006e71 jne LBB32_233 + 0x4d, 0x85, 0xc0, //0x00006e77 testq %r8, %r8 + 0x0f, 0x85, 0xb9, 0x04, 0x00, 0x00, //0x00006e7a jne LBB32_220 + 0x4c, 0x89, 0xe7, //0x00006e80 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x00006e83 movq %r13, %rsi + 0xe8, 0xd5, 0xea, 0xff, 0xff, //0x00006e86 callq _skip_one_fast + 0x49, 0x8b, 0x14, 0x24, //0x00006e8b movq (%r12), %rdx + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006e8f movq $8(%r12), %rcx + 0x49, 0x8b, 0x45, 0x00, //0x00006e94 movq (%r13), %rax + 0x48, 0x39, 0xc8, //0x00006e98 cmpq %rcx, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x00006e9b jae LBB32_114 + 0x8a, 0x1c, 0x02, //0x00006ea1 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00006ea4 cmpb $13, %bl + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00006ea7 je LBB32_114 + 0x80, 0xfb, 0x20, //0x00006ead cmpb $32, %bl + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00006eb0 je LBB32_114 + 0x80, 0xc3, 0xf7, //0x00006eb6 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006eb9 cmpb $1, %bl + 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x00006ebc jbe LBB32_114 + 0x48, 0x89, 0xc6, //0x00006ec2 movq %rax, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ec5 movabsq $4294977024, %r10 + 0xe9, 0x11, 0x01, 0x00, 0x00, //0x00006ecf jmp LBB32_135 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ed4 .p2align 4, 0x90 + //0x00006ee0 LBB32_114 + 0x48, 0x8d, 0x70, 0x01, //0x00006ee0 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x00006ee4 cmpq %rcx, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006ee7 movabsq $4294977024, %r10 + 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00006ef1 jae LBB32_118 + 0x8a, 0x1c, 0x32, //0x00006ef7 movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00006efa cmpb $13, %bl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00006efd je LBB32_118 + 0x80, 0xfb, 0x20, //0x00006f03 cmpb $32, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00006f06 je LBB32_118 + 0x80, 0xc3, 0xf7, //0x00006f0c addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f0f cmpb $1, %bl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00006f12 ja LBB32_135 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f18 .p2align 4, 0x90 + //0x00006f20 LBB32_118 + 0x48, 0x8d, 0x70, 0x02, //0x00006f20 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x00006f24 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f27 jae LBB32_122 + 0x8a, 0x1c, 0x32, //0x00006f2d movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00006f30 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f33 je LBB32_122 + 0x80, 0xfb, 0x20, //0x00006f39 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f3c je LBB32_122 + 0x80, 0xc3, 0xf7, //0x00006f42 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f45 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006f48 ja LBB32_135 + 0x90, 0x90, //0x00006f4e .p2align 4, 0x90 + //0x00006f50 LBB32_122 + 0x48, 0x8d, 0x70, 0x03, //0x00006f50 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x00006f54 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f57 jae LBB32_126 + 0x8a, 0x1c, 0x32, //0x00006f5d movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x00006f60 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f63 je LBB32_126 + 0x80, 0xfb, 0x20, //0x00006f69 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f6c je LBB32_126 + 0x80, 0xc3, 0xf7, //0x00006f72 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f75 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006f78 ja LBB32_135 + 0x90, 0x90, //0x00006f7e .p2align 4, 0x90 + //0x00006f80 LBB32_126 + 0x48, 0x8d, 0x70, 0x04, //0x00006f80 leaq $4(%rax), %rsi + 0x48, 0x39, 0xf1, //0x00006f84 cmpq %rsi, %rcx + 0x0f, 0x86, 0xf6, 0x03, 0x00, 0x00, //0x00006f87 jbe LBB32_233 + 0x48, 0x39, 0xf1, //0x00006f8d cmpq %rsi, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006f90 je LBB32_132 + 0x48, 0x8d, 0x3c, 0x0a, //0x00006f96 leaq (%rdx,%rcx), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f9a .p2align 4, 0x90 + //0x00006fa0 LBB32_129 + 0x0f, 0xbe, 0x1c, 0x32, //0x00006fa0 movsbl (%rdx,%rsi), %ebx + 0x83, 0xfb, 0x20, //0x00006fa4 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006fa7 ja LBB32_134 + 0x49, 0x0f, 0xa3, 0xda, //0x00006fad btq %rbx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006fb1 jae LBB32_134 + 0x48, 0x83, 0xc6, 0x01, //0x00006fb7 addq $1, %rsi + 0x48, 0x39, 0xf1, //0x00006fbb cmpq %rsi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006fbe jne LBB32_129 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006fc4 jmp LBB32_133 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fc9 .p2align 4, 0x90 + //0x00006fd0 LBB32_132 + 0x48, 0x01, 0xd6, //0x00006fd0 addq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x00006fd3 movq %rsi, %rdi + //0x00006fd6 LBB32_133 + 0x48, 0x29, 0xd7, //0x00006fd6 subq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x00006fd9 movq %rdi, %rsi + //0x00006fdc LBB32_134 + 0x48, 0x39, 0xce, //0x00006fdc cmpq %rcx, %rsi + 0x0f, 0x83, 0xf7, 0x03, 0x00, 0x00, //0x00006fdf jae LBB32_234 + //0x00006fe5 LBB32_135 + 0x48, 0x8d, 0x46, 0x01, //0x00006fe5 leaq $1(%rsi), %rax + 0x49, 0x89, 0x45, 0x00, //0x00006fe9 movq %rax, (%r13) + 0x8a, 0x0c, 0x32, //0x00006fed movb (%rdx,%rsi), %cl + 0x80, 0xf9, 0x2c, //0x00006ff0 cmpb $44, %cl + 0x0f, 0x84, 0x21, 0xf9, 0xff, 0xff, //0x00006ff3 je LBB32_34 + 0xe9, 0xaa, 0x03, 0x00, 0x00, //0x00006ff9 jmp LBB32_225 + 0x90, 0x90, //0x00006ffe .p2align 4, 0x90 + //0x00007000 LBB32_161 + 0x40, 0x80, 0xff, 0x5b, //0x00007000 cmpb $91, %dil + 0x0f, 0x85, 0xd2, 0x03, 0x00, 0x00, //0x00007004 jne LBB32_234 + 0x49, 0x8b, 0x71, 0x08, //0x0000700a movq $8(%r9), %rsi + 0x4c, 0x8b, 0x36, //0x0000700e movq (%rsi), %r14 + 0x4d, 0x85, 0xf6, //0x00007011 testq %r14, %r14 + 0x0f, 0x88, 0xab, 0x03, 0x00, 0x00, //0x00007014 js LBB32_228 + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000701a movq $8(%r12), %rcx + 0x48, 0x39, 0xc8, //0x0000701f cmpq %rcx, %rax + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00007022 jae LBB32_168 + 0x40, 0x8a, 0x34, 0x02, //0x00007028 movb (%rdx,%rax), %sil + 0x40, 0x80, 0xfe, 0x0d, //0x0000702c cmpb $13, %sil + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007030 je LBB32_168 + 0x40, 0x80, 0xfe, 0x20, //0x00007036 cmpb $32, %sil + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000703a je LBB32_168 + 0x40, 0x80, 0xc6, 0xf7, //0x00007040 addb $-9, %sil + 0x40, 0x80, 0xfe, 0x01, //0x00007044 cmpb $1, %sil + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x00007048 jbe LBB32_168 + 0x48, 0x89, 0xc6, //0x0000704e movq %rax, %rsi + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x00007051 jmp LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007056 .p2align 4, 0x90 + //0x00007060 LBB32_168 + 0x48, 0x8d, 0x70, 0x01, //0x00007060 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x00007064 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007067 jae LBB32_172 + 0x40, 0x8a, 0x3c, 0x32, //0x0000706d movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00007071 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007075 je LBB32_172 + 0x40, 0x80, 0xff, 0x20, //0x0000707b cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000707f je LBB32_172 + 0x40, 0x80, 0xc7, 0xf7, //0x00007085 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x00007089 cmpb $1, %dil + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x0000708d ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007093 .p2align 4, 0x90 + //0x000070a0 LBB32_172 + 0x48, 0x8d, 0x70, 0x02, //0x000070a0 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x000070a4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000070a7 jae LBB32_176 + 0x40, 0x8a, 0x3c, 0x32, //0x000070ad movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x000070b1 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000070b5 je LBB32_176 + 0x40, 0x80, 0xff, 0x20, //0x000070bb cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000070bf je LBB32_176 + 0x40, 0x80, 0xc7, 0xf7, //0x000070c5 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x000070c9 cmpb $1, %dil + 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x000070cd ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000070d3 .p2align 4, 0x90 + //0x000070e0 LBB32_176 + 0x48, 0x8d, 0x70, 0x03, //0x000070e0 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x000070e4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000070e7 jae LBB32_180 + 0x40, 0x8a, 0x3c, 0x32, //0x000070ed movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x000070f1 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000070f5 je LBB32_180 + 0x40, 0x80, 0xff, 0x20, //0x000070fb cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000070ff je LBB32_180 + 0x40, 0x80, 0xc7, 0xf7, //0x00007105 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x00007109 cmpb $1, %dil + 0x0f, 0x87, 0x73, 0x00, 0x00, 0x00, //0x0000710d ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007113 .p2align 4, 0x90 + //0x00007120 LBB32_180 + 0x48, 0x8d, 0x70, 0x04, //0x00007120 leaq $4(%rax), %rsi + 0x48, 0x39, 0xf1, //0x00007124 cmpq %rsi, %rcx + 0x0f, 0x86, 0x3c, 0x00, 0x00, 0x00, //0x00007127 jbe LBB32_186 + 0x48, 0x39, 0xf1, //0x0000712d cmpq %rsi, %rcx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x00007130 je LBB32_187 + 0x48, 0x8d, 0x3c, 0x0a, //0x00007136 leaq (%rdx,%rcx), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000713a .p2align 4, 0x90 + //0x00007140 LBB32_183 + 0x0f, 0xbe, 0x1c, 0x32, //0x00007140 movsbl (%rdx,%rsi), %ebx + 0x83, 0xfb, 0x20, //0x00007144 cmpl $32, %ebx + 0x0f, 0x87, 0x30, 0x00, 0x00, 0x00, //0x00007147 ja LBB32_189 + 0x49, 0x0f, 0xa3, 0xda, //0x0000714d btq %rbx, %r10 + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x00007151 jae LBB32_189 + 0x48, 0x83, 0xc6, 0x01, //0x00007157 addq $1, %rsi + 0x48, 0x39, 0xf1, //0x0000715b cmpq %rsi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000715e jne LBB32_183 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00007164 jmp LBB32_188 + //0x00007169 LBB32_186 + 0x48, 0x89, 0xf0, //0x00007169 movq %rsi, %rax + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x0000716c jmp LBB32_191 + //0x00007171 LBB32_187 + 0x48, 0x01, 0xd6, //0x00007171 addq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x00007174 movq %rsi, %rdi + //0x00007177 LBB32_188 + 0x48, 0x29, 0xd7, //0x00007177 subq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x0000717a movq %rdi, %rsi + //0x0000717d LBB32_189 + 0x48, 0x39, 0xce, //0x0000717d cmpq %rcx, %rsi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x00007180 jae LBB32_191 + //0x00007186 LBB32_190 + 0x48, 0x8d, 0x46, 0x01, //0x00007186 leaq $1(%rsi), %rax + 0x49, 0x89, 0x45, 0x00, //0x0000718a movq %rax, (%r13) + 0x80, 0x3c, 0x32, 0x5d, //0x0000718e cmpb $93, (%rdx,%rsi) + 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x00007192 je LBB32_226 + //0x00007198 LBB32_191 + 0x48, 0x83, 0xc0, 0xff, //0x00007198 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x0000719c movq %rax, (%r13) + 0x48, 0x89, 0xc6, //0x000071a0 movq %rax, %rsi + 0x4d, 0x85, 0xf6, //0x000071a3 testq %r14, %r14 + 0x0f, 0x8e, 0x8d, 0x01, 0x00, 0x00, //0x000071a6 jle LBB32_220 + 0x90, 0x90, 0x90, 0x90, //0x000071ac .p2align 4, 0x90 + //0x000071b0 LBB32_192 + 0x4c, 0x89, 0xe7, //0x000071b0 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x000071b3 movq %r13, %rsi + 0xe8, 0xa5, 0xe7, 0xff, 0xff, //0x000071b6 callq _skip_one_fast + 0x49, 0x8b, 0x14, 0x24, //0x000071bb movq (%r12), %rdx + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x000071bf movq $8(%r12), %rcx + 0x49, 0x8b, 0x45, 0x00, //0x000071c4 movq (%r13), %rax + 0x48, 0x39, 0xc8, //0x000071c8 cmpq %rcx, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x000071cb jae LBB32_197 + 0x8a, 0x1c, 0x02, //0x000071d1 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x000071d4 cmpb $13, %bl + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x000071d7 je LBB32_197 + 0x80, 0xfb, 0x20, //0x000071dd cmpb $32, %bl + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000071e0 je LBB32_197 + 0x80, 0xc3, 0xf7, //0x000071e6 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000071e9 cmpb $1, %bl + 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x000071ec jbe LBB32_197 + 0x48, 0x89, 0xc7, //0x000071f2 movq %rax, %rdi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000071f5 movabsq $4294977024, %r10 + 0xe9, 0x11, 0x01, 0x00, 0x00, //0x000071ff jmp LBB32_218 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007204 .p2align 4, 0x90 + //0x00007210 LBB32_197 + 0x48, 0x8d, 0x78, 0x01, //0x00007210 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007214 cmpq %rcx, %rdi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007217 movabsq $4294977024, %r10 + 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007221 jae LBB32_201 + 0x8a, 0x1c, 0x3a, //0x00007227 movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x0000722a cmpb $13, %bl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000722d je LBB32_201 + 0x80, 0xfb, 0x20, //0x00007233 cmpb $32, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00007236 je LBB32_201 + 0x80, 0xc3, 0xf7, //0x0000723c addb $-9, %bl + 0x80, 0xfb, 0x01, //0x0000723f cmpb $1, %bl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00007242 ja LBB32_218 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007248 .p2align 4, 0x90 + //0x00007250 LBB32_201 + 0x48, 0x8d, 0x78, 0x02, //0x00007250 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007254 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007257 jae LBB32_205 + 0x8a, 0x1c, 0x3a, //0x0000725d movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00007260 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007263 je LBB32_205 + 0x80, 0xfb, 0x20, //0x00007269 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000726c je LBB32_205 + 0x80, 0xc3, 0xf7, //0x00007272 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00007275 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00007278 ja LBB32_218 + 0x90, 0x90, //0x0000727e .p2align 4, 0x90 + //0x00007280 LBB32_205 + 0x48, 0x8d, 0x78, 0x03, //0x00007280 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007284 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007287 jae LBB32_209 + 0x8a, 0x1c, 0x3a, //0x0000728d movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00007290 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007293 je LBB32_209 + 0x80, 0xfb, 0x20, //0x00007299 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000729c je LBB32_209 + 0x80, 0xc3, 0xf7, //0x000072a2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000072a5 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x000072a8 ja LBB32_218 + 0x90, 0x90, //0x000072ae .p2align 4, 0x90 + //0x000072b0 LBB32_209 + 0x48, 0x8d, 0x78, 0x04, //0x000072b0 leaq $4(%rax), %rdi + 0x48, 0x39, 0xf9, //0x000072b4 cmpq %rdi, %rcx + 0x0f, 0x86, 0xe3, 0x00, 0x00, 0x00, //0x000072b7 jbe LBB32_232 + 0x48, 0x39, 0xf9, //0x000072bd cmpq %rdi, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000072c0 je LBB32_215 + 0x48, 0x8d, 0x34, 0x0a, //0x000072c6 leaq (%rdx,%rcx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072ca .p2align 4, 0x90 + //0x000072d0 LBB32_212 + 0x0f, 0xbe, 0x1c, 0x3a, //0x000072d0 movsbl (%rdx,%rdi), %ebx + 0x83, 0xfb, 0x20, //0x000072d4 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000072d7 ja LBB32_217 + 0x49, 0x0f, 0xa3, 0xda, //0x000072dd btq %rbx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000072e1 jae LBB32_217 + 0x48, 0x83, 0xc7, 0x01, //0x000072e7 addq $1, %rdi + 0x48, 0x39, 0xf9, //0x000072eb cmpq %rdi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000072ee jne LBB32_212 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000072f4 jmp LBB32_216 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072f9 .p2align 4, 0x90 + //0x00007300 LBB32_215 + 0x48, 0x01, 0xd7, //0x00007300 addq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x00007303 movq %rdi, %rsi + //0x00007306 LBB32_216 + 0x48, 0x29, 0xd6, //0x00007306 subq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x00007309 movq %rsi, %rdi + //0x0000730c LBB32_217 + 0x48, 0x39, 0xcf, //0x0000730c cmpq %rcx, %rdi + 0x0f, 0x83, 0xc7, 0x00, 0x00, 0x00, //0x0000730f jae LBB32_234 + //0x00007315 LBB32_218 + 0x48, 0x8d, 0x77, 0x01, //0x00007315 leaq $1(%rdi), %rsi + 0x49, 0x89, 0x75, 0x00, //0x00007319 movq %rsi, (%r13) + 0x8a, 0x04, 0x3a, //0x0000731d movb (%rdx,%rdi), %al + 0x3c, 0x2c, //0x00007320 cmpb $44, %al + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00007322 jne LBB32_222 + 0x49, 0x8d, 0x46, 0xff, //0x00007328 leaq $-1(%r14), %rax + 0x49, 0x83, 0xfe, 0x02, //0x0000732c cmpq $2, %r14 + 0x49, 0x89, 0xc6, //0x00007330 movq %rax, %r14 + 0x0f, 0x8d, 0x77, 0xfe, 0xff, 0xff, //0x00007333 jge LBB32_192 + //0x00007339 LBB32_220 + 0x4c, 0x8b, 0x4d, 0xb8, //0x00007339 movq $-72(%rbp), %r9 + 0x49, 0x83, 0xc1, 0x10, //0x0000733d addq $16, %r9 + 0x4c, 0x3b, 0x4d, 0xa8, //0x00007341 cmpq $-88(%rbp), %r9 + 0x48, 0x8b, 0x4d, 0xa0, //0x00007345 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0x29, 0xf4, 0xff, 0xff, //0x00007349 jne LBB32_2 + //0x0000734f LBB32_221 + 0xc5, 0xf9, 0x6f, 0x05, 0xc9, 0xf3, 0xff, 0xff, //0x0000734f vmovdqa $-3127(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0xc5, 0xfa, 0x7f, 0x01, //0x00007357 vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x0000735b movq %rcx, %rdi + 0x4c, 0x89, 0xe6, //0x0000735e movq %r12, %rsi + 0x4c, 0x89, 0xea, //0x00007361 movq %r13, %rdx + 0x31, 0xc9, //0x00007364 xorl %ecx, %ecx + 0xe8, 0x15, 0xd6, 0xff, 0xff, //0x00007366 callq _fsm_exec + 0x49, 0x89, 0xc0, //0x0000736b movq %rax, %r8 + 0xe9, 0x78, 0x00, 0x00, 0x00, //0x0000736e jmp LBB32_235 + //0x00007373 LBB32_222 + 0x3c, 0x5d, //0x00007373 cmpb $93, %al + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x00007375 jne LBB32_233 + 0x48, 0x89, 0xf0, //0x0000737b movq %rsi, %rax + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x0000737e jmp LBB32_226 + //0x00007383 LBB32_233 + 0x48, 0x89, 0xf0, //0x00007383 movq %rsi, %rax + 0xe9, 0x51, 0x00, 0x00, 0x00, //0x00007386 jmp LBB32_234 + //0x0000738b LBB32_224 + 0x4c, 0x89, 0xe8, //0x0000738b movq %r13, %rax + 0x80, 0xf9, 0x7d, //0x0000738e cmpb $125, %cl + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007391 movq $-48(%rbp), %r13 + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007395 jne LBB32_234 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000739b jmp LBB32_226 + //0x000073a0 LBB32_232 + 0x48, 0x89, 0xf8, //0x000073a0 movq %rdi, %rax + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x000073a3 jmp LBB32_234 + //0x000073a8 LBB32_225 + 0x80, 0xf9, 0x7d, //0x000073a8 cmpb $125, %cl + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x000073ab jne LBB32_234 + //0x000073b1 LBB32_226 + 0x48, 0x83, 0xc0, 0xff, //0x000073b1 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x000073b5 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x000073b9 movq $-33, %r8 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x000073c0 jmp LBB32_235 + //0x000073c5 LBB32_228 + 0x48, 0x83, 0xc0, 0xff, //0x000073c5 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x000073c9 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x000073cd movq $-34, %r8 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x000073d4 jmp LBB32_235 + //0x000073d9 LBB32_231 + 0x4c, 0x89, 0xf8, //0x000073d9 movq %r15, %rax + //0x000073dc LBB32_234 + 0x48, 0x83, 0xc0, 0xff, //0x000073dc addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x000073e0 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000073e4 movq $-2, %r8 + //0x000073eb LBB32_235 + 0x4c, 0x89, 0xc0, //0x000073eb movq %r8, %rax + 0x48, 0x83, 0xc4, 0x38, //0x000073ee addq $56, %rsp + 0x5b, //0x000073f2 popq %rbx + 0x41, 0x5c, //0x000073f3 popq %r12 + 0x41, 0x5d, //0x000073f5 popq %r13 + 0x41, 0x5e, //0x000073f7 popq %r14 + 0x41, 0x5f, //0x000073f9 popq %r15 + 0x5d, //0x000073fb popq %rbp + 0xc3, //0x000073fc retq + //0x000073fd LBB32_236 + 0x49, 0x8b, 0x44, 0x24, 0x08, //0x000073fd movq $8(%r12), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007402 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007406 movq %rax, (%rcx) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007409 movq $-1, %r8 + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00007410 jmp LBB32_235 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007415 .p2align 4, 0x90 + //0x00007420 _validate_utf8 + 0x55, //0x00007420 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007421 movq %rsp, %rbp + 0x41, 0x57, //0x00007424 pushq %r15 + 0x41, 0x56, //0x00007426 pushq %r14 + 0x41, 0x54, //0x00007428 pushq %r12 + 0x53, //0x0000742a pushq %rbx + 0x50, //0x0000742b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000742c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000742f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00007433 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00007436 addq %r10, %rcx + 0x4f, 0x8d, 0x04, 0x1a, //0x00007439 leaq (%r10,%r11), %r8 + 0x49, 0x83, 0xc0, 0xfd, //0x0000743d addq $-3, %r8 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007441 jmp LBB33_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007446 .p2align 4, 0x90 + //0x00007450 LBB33_19 + 0x48, 0x01, 0xd9, //0x00007450 addq %rbx, %rcx + //0x00007453 LBB33_1 + 0x4c, 0x39, 0xc1, //0x00007453 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007456 jae LBB33_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000745c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007461 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007464 jns LBB33_19 + 0x8b, 0x01, //0x0000746a movl (%rcx), %eax + 0x89, 0xc7, //0x0000746c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000746e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007474 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000747a jne LBB33_10 + 0x89, 0xc7, //0x00007480 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007482 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007488 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000748e je LBB33_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007494 movl $3, %ebx + 0x85, 0xff, //0x00007499 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000749b jne LBB33_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074a1 .p2align 4, 0x90 + //0x000074b0 LBB33_10 + 0x89, 0xc7, //0x000074b0 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000074b2 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000074b8 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000074be jne LBB33_12 + 0x89, 0xc7, //0x000074c4 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000074c6 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x000074cb andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000074ce jne LBB33_19 + //0x000074d4 LBB33_12 + 0x89, 0xc7, //0x000074d4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000074d6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000074dc cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000074e2 jne LBB33_16 + 0x89, 0xc7, //0x000074e8 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000074ea andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000074f0 je LBB33_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000074f6 movl $4, %ebx + 0xa8, 0x04, //0x000074fb testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000074fd je LBB33_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007503 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007508 je LBB33_19 + //0x0000750e LBB33_16 + 0x48, 0x89, 0xcf, //0x0000750e movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x00007511 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x00007514 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007517 cmpq $4096, %rbx + 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x0000751e jae LBB33_17 + 0x48, 0x63, 0xc7, //0x00007524 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00007527 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x0000752b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000752e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007533 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007538 jmp LBB33_19 + //0x0000753d LBB33_2 + 0x4d, 0x01, 0xd3, //0x0000753d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00007540 cmpq %r11, %rcx + 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x00007543 jae LBB33_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00007549 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x0000754d leaq $-38(%rbp), %r9 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007551 jmp LBB33_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007556 .p2align 4, 0x90 + //0x00007560 LBB33_5 + 0x48, 0x83, 0xc1, 0x01, //0x00007560 addq $1, %rcx + 0x4c, 0x39, 0xd9, //0x00007564 cmpq %r11, %rcx + 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x00007567 jae LBB33_36 + //0x0000756d LBB33_4 + 0x80, 0x39, 0x00, //0x0000756d cmpb $0, (%rcx) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007570 jns LBB33_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007576 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x0000757a movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x0000757e movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007581 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007584 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007588 jb LBB33_21 + 0x44, 0x0f, 0xb6, 0x21, //0x0000758e movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007592 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007597 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000759b leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000759f addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x000075a3 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x000075a6 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x000075a9 je LBB33_24 + //0x000075af LBB33_25 + 0x41, 0x0f, 0xb6, 0x07, //0x000075af movzbl (%r15), %eax + 0x88, 0x07, //0x000075b3 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x000075b5 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x000075ba movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000075be jmp LBB33_26 + //0x000075c3 LBB33_21 + 0x45, 0x31, 0xe4, //0x000075c3 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x000075c6 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x000075c9 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x000075cc movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x000075cf testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x000075d2 jne LBB33_25 + //0x000075d8 LBB33_24 + 0x31, 0xff, //0x000075d8 xorl %edi, %edi + //0x000075da LBB33_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x000075da movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x000075de shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x000075e1 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x000075e5 shll $8, %ebx + 0x09, 0xc3, //0x000075e8 orl %eax, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x000075ea movzbl %r12b, %edi + 0x09, 0xdf, //0x000075ee orl %ebx, %edi + 0x89, 0xf8, //0x000075f0 movl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x000075f2 andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x000075f7 cmpl $8421600, %eax + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x000075fc jne LBB33_29 + 0x89, 0xf8, //0x00007602 movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007604 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007609 cmpl $8205, %eax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000760e je LBB33_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007614 movl $3, %ebx + 0x85, 0xc0, //0x00007619 testl %eax, %eax + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000761b jne LBB33_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007621 .p2align 4, 0x90 + //0x00007630 LBB33_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00007630 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007634 je LBB33_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x0000763a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007640 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007645 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x0000764b jne LBB33_31 + //0x00007651 LBB33_34 + 0x48, 0x01, 0xd9, //0x00007651 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007654 cmpq %r11, %rcx + 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00007657 jb LBB33_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x0000765d jmp LBB33_36 + //0x00007662 LBB33_31 + 0x48, 0x89, 0xc8, //0x00007662 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00007665 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00007668 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x0000766b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007672 jae LBB33_32 + 0x48, 0x98, //0x00007678 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x0000767a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x0000767e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007681 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007686 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x0000768b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x0000768e cmpq %r11, %rcx + 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007691 jb LBB33_4 + //0x00007697 LBB33_36 + 0x4c, 0x29, 0xd1, //0x00007697 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000769a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000769d xorl %eax, %eax + //0x0000769f LBB33_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000769f addq $8, %rsp + 0x5b, //0x000076a3 popq %rbx + 0x41, 0x5c, //0x000076a4 popq %r12 + 0x41, 0x5e, //0x000076a6 popq %r14 + 0x41, 0x5f, //0x000076a8 popq %r15 + 0x5d, //0x000076aa popq %rbp + 0xc3, //0x000076ab retq + //0x000076ac LBB33_32 + 0x48, 0x89, 0x06, //0x000076ac movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000076af movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x000076b6 jmp LBB33_37 + //0x000076bb LBB33_17 + 0x48, 0x89, 0x3e, //0x000076bb movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000076be movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x000076c5 jmp LBB33_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076ca .p2align 4, 0x90 + //0x000076d0 _validate_utf8_fast + 0x55, //0x000076d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000076d1 movq %rsp, %rbp + 0x53, //0x000076d4 pushq %rbx + 0x50, //0x000076d5 pushq %rax + 0x4c, 0x8b, 0x17, //0x000076d6 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000076d9 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x34, 0x1a, //0x000076dd leaq (%r10,%r11), %rsi + 0x48, 0x83, 0xc6, 0xfd, //0x000076e1 addq $-3, %rsi + 0x4c, 0x89, 0xd0, //0x000076e5 movq %r10, %rax + 0x4c, 0x39, 0xd6, //0x000076e8 cmpq %r10, %rsi + 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x000076eb jbe LBB34_14 + 0x4c, 0x89, 0xd0, //0x000076f1 movq %r10, %rax + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000076f4 jmp LBB34_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076f9 .p2align 4, 0x90 + //0x00007700 LBB34_2 + 0x48, 0x01, 0xd0, //0x00007700 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00007703 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007706 jae LBB34_14 + //0x0000770c LBB34_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000770c movl $1, %edx + 0x80, 0x38, 0x00, //0x00007711 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007714 jns LBB34_2 + 0x8b, 0x38, //0x0000771a movl (%rax), %edi + 0x89, 0xf9, //0x0000771c movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000771e andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007724 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000772a jne LBB34_7 + 0x89, 0xf9, //0x00007730 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x00007732 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x00007738 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000773e je LBB34_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00007744 movl $3, %edx + 0x85, 0xc9, //0x00007749 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000774b jne LBB34_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007751 .p2align 4, 0x90 + //0x00007760 LBB34_7 + 0x89, 0xf9, //0x00007760 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x00007762 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00007768 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000776e jne LBB34_9 + 0x89, 0xf9, //0x00007774 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00007776 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x0000777b andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000777e jne LBB34_2 + //0x00007784 LBB34_9 + 0x89, 0xf9, //0x00007784 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007786 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x0000778c cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007792 jne LBB34_13 + 0x89, 0xf9, //0x00007798 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000779a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000077a0 je LBB34_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000077a6 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x000077ab testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x000077af je LBB34_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x000077b5 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x000077bb je LBB34_2 + //0x000077c1 LBB34_13 + 0x48, 0xf7, 0xd0, //0x000077c1 notq %rax + 0x4c, 0x01, 0xd0, //0x000077c4 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000077c7 addq $8, %rsp + 0x5b, //0x000077cb popq %rbx + 0x5d, //0x000077cc popq %rbp + 0xc3, //0x000077cd retq + //0x000077ce LBB34_14 + 0x4d, 0x01, 0xd3, //0x000077ce addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x000077d1 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x000077d4 jae LBB34_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x000077da leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x000077de leaq $-14(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x000077e2 jmp LBB34_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000077e7 .p2align 4, 0x90 + //0x000077f0 LBB34_16 + 0x48, 0x83, 0xc0, 0x01, //0x000077f0 addq $1, %rax + 0x4c, 0x39, 0xd8, //0x000077f4 cmpq %r11, %rax + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x000077f7 jae LBB34_30 + //0x000077fd LBB34_17 + 0x80, 0x38, 0x00, //0x000077fd cmpb $0, (%rax) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007800 jns LBB34_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00007806 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x0000780a movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x0000780e movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00007811 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00007814 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007818 jb LBB34_21 + 0x0f, 0xb6, 0x30, //0x0000781e movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00007821 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00007825 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00007829 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x0000782d addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x00007831 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x00007834 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007837 je LBB34_22 + //0x0000783d LBB34_20 + 0x0f, 0xb6, 0x09, //0x0000783d movzbl (%rcx), %ecx + 0x88, 0x0b, //0x00007840 movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x00007842 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x00007846 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x0000784a jmp LBB34_23 + //0x0000784f LBB34_21 + 0x31, 0xf6, //0x0000784f xorl %esi, %esi + 0x31, 0xff, //0x00007851 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x00007853 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x00007856 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x00007859 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000785c jne LBB34_20 + //0x00007862 LBB34_22 + 0x31, 0xc9, //0x00007862 xorl %ecx, %ecx + //0x00007864 LBB34_23 + 0x0f, 0xb6, 0xc9, //0x00007864 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x00007867 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x0000786a movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x0000786e shll $8, %edi + 0x09, 0xcf, //0x00007871 orl %ecx, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x00007873 movzbl %sil, %edx + 0x09, 0xfa, //0x00007877 orl %edi, %edx + 0x89, 0xd1, //0x00007879 movl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000787b andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007881 cmpl $8421600, %ecx + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007887 jne LBB34_26 + 0x89, 0xd7, //0x0000788d movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x0000788f andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007895 cmpl $8205, %edi + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000789b je LBB34_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x000078a1 movl $3, %ecx + 0x85, 0xff, //0x000078a6 testl %edi, %edi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000078a8 jne LBB34_28 + 0x90, 0x90, //0x000078ae .p2align 4, 0x90 + //0x000078b0 LBB34_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x000078b0 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x000078b4 je LBB34_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000078ba andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000078c0 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000078c5 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x000078cb jne LBB34_13 + //0x000078d1 LBB34_28 + 0x48, 0x01, 0xc8, //0x000078d1 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x000078d4 cmpq %r11, %rax + 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x000078d7 jb LBB34_17 + //0x000078dd LBB34_30 + 0x31, 0xc0, //0x000078dd xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x000078df addq $8, %rsp + 0x5b, //0x000078e3 popq %rbx + 0x5d, //0x000078e4 popq %rbp + 0xc3, //0x000078e5 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, //0x000078e6 .p2align 5, 0x00 + //0x00007900 LCPI35_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007900 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007910 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00007920 .p2align 4, 0x00 + //0x00007920 LCPI35_1 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007920 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00007930 .p2align 4, 0x90 + //0x00007930 _f32toa + 0x55, //0x00007930 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007931 movq %rsp, %rbp + 0x41, 0x57, //0x00007934 pushq %r15 + 0x41, 0x56, //0x00007936 pushq %r14 + 0x41, 0x55, //0x00007938 pushq %r13 + 0x41, 0x54, //0x0000793a pushq %r12 + 0x53, //0x0000793c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000793d subq $16, %rsp + 0xc5, 0xf9, 0x7e, 0xc0, //0x00007941 vmovd %xmm0, %eax + 0x89, 0xc1, //0x00007945 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00007947 shrl $23, %ecx + 0x0f, 0xb6, 0xd1, //0x0000794a movzbl %cl, %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000794d cmpl $255, %edx + 0x0f, 0x84, 0x7f, 0x0e, 0x00, 0x00, //0x00007953 je LBB35_1 + 0xc6, 0x07, 0x2d, //0x00007959 movb $45, (%rdi) + 0x41, 0x89, 0xc2, //0x0000795c movl %eax, %r10d + 0x41, 0xc1, 0xea, 0x1f, //0x0000795f shrl $31, %r10d + 0x4e, 0x8d, 0x0c, 0x17, //0x00007963 leaq (%rdi,%r10), %r9 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007967 testl $2147483647, %eax + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x0000796c je LBB35_3 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007972 andl $8388607, %eax + 0x85, 0xd2, //0x00007977 testl %edx, %edx + 0x0f, 0x84, 0x60, 0x0e, 0x00, 0x00, //0x00007979 je LBB35_5 + 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x0000797f leal $8388608(%rax), %r11d + 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x00007986 leal $-150(%rdx), %r8d + 0x8d, 0x4a, 0x81, //0x0000798d leal $-127(%rdx), %ecx + 0x83, 0xf9, 0x17, //0x00007990 cmpl $23, %ecx + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00007993 ja LBB35_10 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007999 movl $150, %ecx + 0x29, 0xd1, //0x0000799e subl %edx, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000079a0 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x000079a7 shlq %cl, %rsi + 0xf7, 0xd6, //0x000079aa notl %esi + 0x44, 0x85, 0xde, //0x000079ac testl %r11d, %esi + 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x000079af je LBB35_12 + //0x000079b5 LBB35_10 + 0x4c, 0x89, 0x4d, 0xc8, //0x000079b5 movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000079b9 movq %rdi, $-48(%rbp) + //0x000079bd LBB35_6 + 0x45, 0x89, 0xdf, //0x000079bd movl %r11d, %r15d + 0x41, 0x83, 0xe7, 0x01, //0x000079c0 andl $1, %r15d + 0x85, 0xc0, //0x000079c4 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000079c6 sete %al + 0x83, 0xfa, 0x02, //0x000079c9 cmpl $2, %edx + 0x0f, 0x93, 0xc1, //0x000079cc setae %cl + 0x20, 0xc1, //0x000079cf andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000079d1 movzbl %cl, %ecx + 0x45, 0x89, 0xd9, //0x000079d4 movl %r11d, %r9d + 0x41, 0xc1, 0xe1, 0x02, //0x000079d7 shll $2, %r9d + 0x42, 0x8d, 0x04, 0x99, //0x000079db leal (%rcx,%r11,4), %eax + 0x83, 0xc0, 0xfe, //0x000079df addl $-2, %eax + 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x000079e2 imull $1262611, %r8d, %edx + 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x000079e9 leal $-524031(%rdx), %r14d + 0x84, 0xc9, //0x000079f0 testb %cl, %cl + 0x44, 0x0f, 0x44, 0xf2, //0x000079f2 cmovel %edx, %r14d + 0x41, 0xc1, 0xfe, 0x16, //0x000079f6 sarl $22, %r14d + 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x000079fa imull $-1741647, %r14d, %ecx + 0xc1, 0xe9, 0x13, //0x00007a01 shrl $19, %ecx + 0x44, 0x01, 0xc1, //0x00007a04 addl %r8d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007a07 movl $31, %edx + 0x44, 0x29, 0xf2, //0x00007a0c subl %r14d, %edx + 0x80, 0xc1, 0x01, //0x00007a0f addb $1, %cl + 0xd3, 0xe0, //0x00007a12 shll %cl, %eax + 0x48, 0x8d, 0x35, 0x55, 0xbd, 0x00, 0x00, //0x00007a14 leaq $48469(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0x4c, 0x8b, 0x2c, 0xd6, //0x00007a1b movq (%rsi,%rdx,8), %r13 + 0x49, 0xf7, 0xe5, //0x00007a1f mulq %r13 + 0x49, 0x89, 0xd0, //0x00007a22 movq %rdx, %r8 + 0x48, 0xc1, 0xe8, 0x20, //0x00007a25 shrq $32, %rax + 0x45, 0x31, 0xe4, //0x00007a29 xorl %r12d, %r12d + 0x83, 0xf8, 0x02, //0x00007a2c cmpl $2, %eax + 0x41, 0x0f, 0x93, 0xc4, //0x00007a2f setae %r12b + 0x41, 0xd3, 0xe1, //0x00007a33 shll %cl, %r9d + 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00007a36 leal $2(,%r11,4), %r11d + 0x4c, 0x89, 0xc8, //0x00007a3e movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x00007a41 mulq %r13 + 0x49, 0x89, 0xd1, //0x00007a44 movq %rdx, %r9 + 0x45, 0x09, 0xc4, //0x00007a47 orl %r8d, %r12d + 0x48, 0xc1, 0xe8, 0x20, //0x00007a4a shrq $32, %rax + 0x31, 0xdb, //0x00007a4e xorl %ebx, %ebx + 0x83, 0xf8, 0x02, //0x00007a50 cmpl $2, %eax + 0x0f, 0x93, 0xc3, //0x00007a53 setae %bl + 0x41, 0xd3, 0xe3, //0x00007a56 shll %cl, %r11d + 0x44, 0x09, 0xcb, //0x00007a59 orl %r9d, %ebx + 0x4c, 0x89, 0xd8, //0x00007a5c movq %r11, %rax + 0x49, 0xf7, 0xe5, //0x00007a5f mulq %r13 + 0x48, 0xc1, 0xe8, 0x20, //0x00007a62 shrq $32, %rax + 0x31, 0xc9, //0x00007a66 xorl %ecx, %ecx + 0x83, 0xf8, 0x02, //0x00007a68 cmpl $2, %eax + 0x0f, 0x93, 0xc1, //0x00007a6b setae %cl + 0x09, 0xd1, //0x00007a6e orl %edx, %ecx + 0x45, 0x01, 0xfc, //0x00007a70 addl %r15d, %r12d + 0x44, 0x29, 0xf9, //0x00007a73 subl %r15d, %ecx + 0x83, 0xfb, 0x28, //0x00007a76 cmpl $40, %ebx + 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00007a79 jb LBB35_31 + 0x44, 0x89, 0xc8, //0x00007a7f movl %r9d, %eax + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007a82 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00007a87 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007a8b shrq $37, %rdx + 0x44, 0x89, 0xe0, //0x00007a8f movl %r12d, %eax + 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x00007a92 leaq (,%rdx,8), %rsi + 0x48, 0x8d, 0x3c, 0xb6, //0x00007a9a leaq (%rsi,%rsi,4), %rdi + 0x48, 0x39, 0xc7, //0x00007a9e cmpq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc3, //0x00007aa1 setb %r11b + 0x48, 0x8d, 0x34, 0xb6, //0x00007aa5 leaq (%rsi,%rsi,4), %rsi + 0x48, 0x83, 0xc6, 0x28, //0x00007aa9 addq $40, %rsi + 0x89, 0xcf, //0x00007aad movl %ecx, %edi + 0x31, 0xc0, //0x00007aaf xorl %eax, %eax + 0x48, 0x39, 0xfe, //0x00007ab1 cmpq %rdi, %rsi + 0x41, 0x0f, 0x96, 0xc0, //0x00007ab4 setbe %r8b + 0x45, 0x38, 0xc3, //0x00007ab8 cmpb %r8b, %r11b + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00007abb je LBB35_8 + //0x00007ac1 LBB35_31 + 0x4d, 0x89, 0xc8, //0x00007ac1 movq %r9, %r8 + 0x49, 0xc1, 0xe8, 0x02, //0x00007ac4 shrq $2, %r8 + 0x44, 0x89, 0xca, //0x00007ac8 movl %r9d, %edx + 0x83, 0xe2, 0xfc, //0x00007acb andl $-4, %edx + 0x41, 0x39, 0xd4, //0x00007ace cmpl %edx, %r12d + 0x40, 0x0f, 0x97, 0xc6, //0x00007ad1 seta %sil + 0x8d, 0x7a, 0x04, //0x00007ad5 leal $4(%rdx), %edi + 0x39, 0xcf, //0x00007ad8 cmpl %ecx, %edi + 0x0f, 0x96, 0xc0, //0x00007ada setbe %al + 0x40, 0x30, 0xf0, //0x00007add xorb %sil, %al + 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00007ae0 je LBB35_32 + 0x83, 0xca, 0x02, //0x00007ae6 orl $2, %edx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007ae9 movl $1, %eax + 0x39, 0xd3, //0x00007aee cmpl %edx, %ebx + 0x4c, 0x8b, 0x65, 0xc8, //0x00007af0 movq $-56(%rbp), %r12 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007af4 ja LBB35_35 + 0x0f, 0x94, 0xc0, //0x00007afa sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x00007afd shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00007b01 andb %al, %r9b + 0x41, 0x0f, 0xb6, 0xc1, //0x00007b04 movzbl %r9b, %eax + //0x00007b08 LBB35_35 + 0x44, 0x01, 0xc0, //0x00007b08 addl %r8d, %eax + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b0b cmpl $100000, %eax + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007b10 jae LBB35_37 + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00007b16 jmp LBB35_40 + //0x00007b1b LBB35_3 + 0x41, 0xc6, 0x01, 0x30, //0x00007b1b movb $48, (%r9) + 0x41, 0x29, 0xf9, //0x00007b1f subl %edi, %r9d + 0x41, 0x83, 0xc1, 0x01, //0x00007b22 addl $1, %r9d + 0x44, 0x89, 0xc8, //0x00007b26 movl %r9d, %eax + 0xe9, 0x98, 0x0c, 0x00, 0x00, //0x00007b29 jmp LBB35_156 + //0x00007b2e LBB35_32 + 0x39, 0xf9, //0x00007b2e cmpl %edi, %ecx + 0x41, 0x83, 0xd8, 0xff, //0x00007b30 sbbl $-1, %r8d + 0x44, 0x89, 0xc0, //0x00007b34 movl %r8d, %eax + 0x4c, 0x8b, 0x65, 0xc8, //0x00007b37 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b3b cmpl $100000, %eax + 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00007b40 jb LBB35_40 + //0x00007b46 LBB35_37 + 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00007b46 movl $6, %r13d + 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x00007b4c cmpl $1000000, %eax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007b51 jb LBB35_45 + 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00007b57 movl $7, %r13d + 0x3d, 0x80, 0x96, 0x98, 0x00, //0x00007b5d cmpl $10000000, %eax + 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00007b62 jb LBB35_45 + 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00007b68 cmpl $100000000, %eax + 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x00007b6d movl $9, %r13d + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00007b73 jmp LBB35_44 + //0x00007b78 LBB35_8 + 0x44, 0x88, 0xc0, //0x00007b78 movb %r8b, %al + 0x01, 0xd0, //0x00007b7b addl %edx, %eax + 0x41, 0x83, 0xc6, 0x01, //0x00007b7d addl $1, %r14d + 0x4c, 0x8b, 0x65, 0xc8, //0x00007b81 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007b85 cmpl $100000, %eax + 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x00007b8a jae LBB35_37 + //0x00007b90 LBB35_40 + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007b90 movl $1, %r13d + 0x83, 0xf8, 0x0a, //0x00007b96 cmpl $10, %eax + 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x00007b99 jb LBB35_45 + 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00007b9f movl $2, %r13d + 0x83, 0xf8, 0x64, //0x00007ba5 cmpl $100, %eax + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007ba8 jb LBB35_45 + 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x00007bae movl $3, %r13d + 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x00007bb4 cmpl $1000, %eax + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007bb9 jb LBB35_45 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007bbf cmpl $10000, %eax + 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x00007bc4 movl $5, %r13d + //0x00007bca LBB35_44 + 0x41, 0x83, 0xdd, 0x00, //0x00007bca sbbl $0, %r13d + //0x00007bce LBB35_45 + 0x47, 0x8d, 0x0c, 0x2e, //0x00007bce leal (%r14,%r13), %r9d + 0x43, 0x8d, 0x0c, 0x2e, //0x00007bd2 leal (%r14,%r13), %ecx + 0x83, 0xc1, 0x05, //0x00007bd6 addl $5, %ecx + 0x83, 0xf9, 0x1b, //0x00007bd9 cmpl $27, %ecx + 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x00007bdc jb LBB35_70 + 0x44, 0x89, 0xea, //0x00007be2 movl %r13d, %edx + 0x49, 0x8d, 0x0c, 0x14, //0x00007be5 leaq (%r12,%rdx), %rcx + 0x48, 0x83, 0xc1, 0x01, //0x00007be9 addq $1, %rcx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007bed cmpl $10000, %eax + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00007bf2 jb LBB35_47 + 0x89, 0xc6, //0x00007bf8 movl %eax, %esi + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007bfa movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xde, //0x00007bff imulq %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x00007c03 shrq $45, %rbx + 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007c07 imull $-10000, %ebx, %r8d + 0x41, 0x01, 0xc0, //0x00007c0e addl %eax, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007c11 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00007c15 je LBB35_49 + 0x44, 0x89, 0xc0, //0x00007c1b movl %r8d, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007c1e imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007c25 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x00007c29 imull $100, %eax, %esi + 0x41, 0x29, 0xf0, //0x00007c2c subl %esi, %r8d + 0x48, 0x8d, 0x35, 0xba, 0x47, 0x00, 0x00, //0x00007c2f leaq $18362(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00007c36 movzwl (%rsi,%r8,2), %edi + 0x66, 0x89, 0x79, 0xfe, //0x00007c3b movw %di, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x46, //0x00007c3f movzwl (%rsi,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00007c43 movw %ax, $-4(%rcx) + 0x45, 0x31, 0xc0, //0x00007c47 xorl %r8d, %r8d + 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00007c4a jmp LBB35_51 + //0x00007c4f LBB35_70 + 0x45, 0x89, 0xe8, //0x00007c4f movl %r13d, %r8d + 0x45, 0x85, 0xf6, //0x00007c52 testl %r14d, %r14d + 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00007c55 js LBB35_71 + 0x4b, 0x8d, 0x14, 0x04, //0x00007c5b leaq (%r12,%r8), %rdx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007c5f cmpl $10000, %eax + 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00007c64 jb LBB35_124 + 0x89, 0xc1, //0x00007c6a movl %eax, %ecx + 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007c6c movl $3518437209, %esi + 0x48, 0x0f, 0xaf, 0xf1, //0x00007c71 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x00007c75 shrq $45, %rsi + 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00007c79 imull $-10000, %esi, %ecx + 0x01, 0xc1, //0x00007c7f addl %eax, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00007c81 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007c88 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x00007c8c imull $100, %eax, %edi + 0x29, 0xf9, //0x00007c8f subl %edi, %ecx + 0x48, 0x8d, 0x3d, 0x58, 0x47, 0x00, 0x00, //0x00007c91 leaq $18264(%rip), %rdi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4f, //0x00007c98 movzwl (%rdi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xfe, //0x00007c9c movw %cx, $-2(%rdx) + 0x48, 0x8d, 0x4a, 0xfc, //0x00007ca0 leaq $-4(%rdx), %rcx + 0x0f, 0xb7, 0x04, 0x47, //0x00007ca4 movzwl (%rdi,%rax,2), %eax + 0x66, 0x89, 0x42, 0xfc, //0x00007ca8 movw %ax, $-4(%rdx) + 0x89, 0xf0, //0x00007cac movl %esi, %eax + 0x83, 0xf8, 0x64, //0x00007cae cmpl $100, %eax + 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00007cb1 jae LBB35_128 + //0x00007cb7 LBB35_127 + 0x89, 0xc3, //0x00007cb7 movl %eax, %ebx + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00007cb9 jmp LBB35_130 + //0x00007cbe LBB35_47 + 0x45, 0x31, 0xc0, //0x00007cbe xorl %r8d, %r8d + 0x89, 0xc3, //0x00007cc1 movl %eax, %ebx + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007cc3 movq $-48(%rbp), %r13 + 0x83, 0xfb, 0x64, //0x00007cc7 cmpl $100, %ebx + 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00007cca jae LBB35_54 + //0x00007cd0 LBB35_53 + 0x89, 0xd8, //0x00007cd0 movl %ebx, %eax + 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00007cd2 jmp LBB35_56 + //0x00007cd7 LBB35_12 + 0x41, 0xd3, 0xeb, //0x00007cd7 shrl %cl, %r11d + 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00007cda cmpl $100000, %r11d + 0x0f, 0x82, 0xcb, 0x01, 0x00, 0x00, //0x00007ce1 jb LBB35_18 + 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00007ce7 movl $6, %ecx + 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00007cec cmpl $1000000, %r11d + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007cf3 jb LBB35_16 + 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00007cf9 movl $7, %ecx + 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00007cfe cmpl $10000000, %r11d + 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00007d05 jb LBB35_16 + 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00007d0b cmpl $100000000, %r11d + 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00007d12 movl $9, %ecx + 0x48, 0x83, 0xd9, 0x00, //0x00007d17 sbbq $0, %rcx + //0x00007d1b LBB35_16 + 0x4c, 0x01, 0xc9, //0x00007d1b addq %r9, %rcx + //0x00007d1e LBB35_17 + 0x44, 0x89, 0xd8, //0x00007d1e movl %r11d, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007d21 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00007d26 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00007d2a shrq $45, %rdx + 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00007d2e imull $-10000, %edx, %eax + 0x44, 0x01, 0xd8, //0x00007d34 addl %r11d, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00007d37 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00007d3e shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00007d42 imull $100, %esi, %ebx + 0x29, 0xd8, //0x00007d45 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0xa2, 0x46, 0x00, 0x00, //0x00007d47 leaq $18082(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007d4e movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfe, //0x00007d52 movw %ax, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x73, //0x00007d56 movzwl (%rbx,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00007d5a movw %ax, $-4(%rcx) + 0x48, 0x89, 0xc8, //0x00007d5e movq %rcx, %rax + 0x48, 0x83, 0xc1, 0xfc, //0x00007d61 addq $-4, %rcx + 0x41, 0x89, 0xd3, //0x00007d65 movl %edx, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00007d68 cmpl $100, %r11d + 0x0f, 0x83, 0x80, 0x01, 0x00, 0x00, //0x00007d6c jae LBB35_25 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00007d72 jmp LBB35_27 + //0x00007d77 LBB35_71 + 0x45, 0x85, 0xc9, //0x00007d77 testl %r9d, %r9d + 0x0f, 0x8f, 0x62, 0x06, 0x00, 0x00, //0x00007d7a jg LBB35_84 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00007d80 movw $11824, (%r12) + 0x49, 0x83, 0xc4, 0x02, //0x00007d87 addq $2, %r12 + 0x45, 0x85, 0xc9, //0x00007d8b testl %r9d, %r9d + 0x0f, 0x89, 0x4e, 0x06, 0x00, 0x00, //0x00007d8e jns LBB35_84 + 0x45, 0x89, 0xeb, //0x00007d94 movl %r13d, %r11d + 0x41, 0xf7, 0xd3, //0x00007d97 notl %r11d + 0x45, 0x29, 0xf3, //0x00007d9a subl %r14d, %r11d + 0x31, 0xc9, //0x00007d9d xorl %ecx, %ecx + 0x41, 0x83, 0xfb, 0x7f, //0x00007d9f cmpl $127, %r11d + 0x0f, 0x82, 0x18, 0x06, 0x00, 0x00, //0x00007da3 jb LBB35_82 + 0x4c, 0x89, 0xe7, //0x00007da9 movq %r12, %rdi + 0x49, 0x83, 0xc3, 0x01, //0x00007dac addq $1, %r11 + 0x4c, 0x89, 0xd9, //0x00007db0 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x00007db3 andq $-128, %rcx + 0x48, 0x8d, 0x51, 0x80, //0x00007db7 leaq $-128(%rcx), %rdx + 0x49, 0x89, 0xd4, //0x00007dbb movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x07, //0x00007dbe shrq $7, %r12 + 0x49, 0x83, 0xc4, 0x01, //0x00007dc2 addq $1, %r12 + 0x45, 0x89, 0xe7, //0x00007dc6 movl %r12d, %r15d + 0x41, 0x83, 0xe7, 0x03, //0x00007dc9 andl $3, %r15d + 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x00007dcd cmpq $384, %rdx + 0x0f, 0x83, 0xde, 0x04, 0x00, 0x00, //0x00007dd4 jae LBB35_76 + 0x31, 0xd2, //0x00007dda xorl %edx, %edx + 0xe9, 0x88, 0x05, 0x00, 0x00, //0x00007ddc jmp LBB35_78 + //0x00007de1 LBB35_124 + 0x48, 0x89, 0xd1, //0x00007de1 movq %rdx, %rcx + 0x83, 0xf8, 0x64, //0x00007de4 cmpl $100, %eax + 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00007de7 jb LBB35_127 + //0x00007ded LBB35_128 + 0x48, 0x83, 0xc1, 0xff, //0x00007ded addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0xf8, 0x45, 0x00, 0x00, //0x00007df1 leaq $17912(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007df8 .p2align 4, 0x90 + //0x00007e00 LBB35_129 + 0x89, 0xc6, //0x00007e00 movl %eax, %esi + 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00007e02 imulq $1374389535, %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00007e09 shrq $37, %rbx + 0x6b, 0xf3, 0x64, //0x00007e0d imull $100, %ebx, %esi + 0x89, 0xc7, //0x00007e10 movl %eax, %edi + 0x29, 0xf7, //0x00007e12 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007e14 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x00007e19 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007e1d addq $-2, %rcx + 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00007e21 cmpl $9999, %eax + 0x89, 0xd8, //0x00007e26 movl %ebx, %eax + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00007e28 ja LBB35_129 + //0x00007e2e LBB35_130 + 0x4d, 0x63, 0xe9, //0x00007e2e movslq %r9d, %r13 + 0x83, 0xfb, 0x0a, //0x00007e31 cmpl $10, %ebx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00007e34 jb LBB35_132 + 0x89, 0xd8, //0x00007e3a movl %ebx, %eax + 0x48, 0x8d, 0x0d, 0xad, 0x45, 0x00, 0x00, //0x00007e3c leaq $17837(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00007e43 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x04, 0x24, //0x00007e47 movw %ax, (%r12) + 0x4d, 0x01, 0xec, //0x00007e4c addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00007e4f cmpq %r13, %r8 + 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00007e52 jl LBB35_135 + 0xe9, 0xff, 0x03, 0x00, 0x00, //0x00007e58 jmp LBB35_134 + //0x00007e5d LBB35_132 + 0x80, 0xc3, 0x30, //0x00007e5d addb $48, %bl + 0x41, 0x88, 0x1c, 0x24, //0x00007e60 movb %bl, (%r12) + 0x4d, 0x01, 0xec, //0x00007e64 addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00007e67 cmpq %r13, %r8 + 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x00007e6a jge LBB35_134 + //0x00007e70 LBB35_135 + 0x48, 0x8b, 0x45, 0xd0, //0x00007e70 movq $-48(%rbp), %rax + 0x4c, 0x01, 0xd0, //0x00007e74 addq %r10, %rax + 0x4d, 0x8d, 0x34, 0x00, //0x00007e77 leaq (%r8,%rax), %r14 + 0x49, 0x83, 0xc6, 0x01, //0x00007e7b addq $1, %r14 + 0x49, 0x01, 0xc5, //0x00007e7f addq %rax, %r13 + 0x4d, 0x39, 0xee, //0x00007e82 cmpq %r13, %r14 + 0x4d, 0x89, 0xef, //0x00007e85 movq %r13, %r15 + 0x4d, 0x0f, 0x47, 0xfe, //0x00007e88 cmovaq %r14, %r15 + 0x4e, 0x8d, 0x1c, 0x00, //0x00007e8c leaq (%rax,%r8), %r11 + 0x4d, 0x29, 0xdf, //0x00007e90 subq %r11, %r15 + 0x49, 0x83, 0xff, 0x10, //0x00007e93 cmpq $16, %r15 + 0x0f, 0x82, 0xf5, 0x03, 0x00, 0x00, //0x00007e97 jb LBB35_152 + 0x49, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00007e9d cmpq $128, %r15 + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00007ea4 jae LBB35_141 + 0x45, 0x31, 0xc9, //0x00007eaa xorl %r9d, %r9d + 0xe9, 0x54, 0x03, 0x00, 0x00, //0x00007ead jmp LBB35_138 + //0x00007eb2 LBB35_18 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007eb2 movl $1, %eax + 0x41, 0x83, 0xfb, 0x0a, //0x00007eb7 cmpl $10, %r11d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ebb jb LBB35_21 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007ec1 movl $2, %eax + 0x41, 0x83, 0xfb, 0x64, //0x00007ec6 cmpl $100, %r11d + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00007eca jb LBB35_21 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00007ed0 movl $3, %eax + 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00007ed5 cmpl $1000, %r11d + 0x0f, 0x83, 0x86, 0x03, 0x00, 0x00, //0x00007edc jae LBB35_23 + //0x00007ee2 LBB35_21 + 0x4c, 0x01, 0xc8, //0x00007ee2 addq %r9, %rax + 0x48, 0x89, 0xc1, //0x00007ee5 movq %rax, %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00007ee8 cmpl $100, %r11d + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00007eec jb LBB35_27 + //0x00007ef2 LBB35_25 + 0x48, 0x83, 0xc1, 0xff, //0x00007ef2 addq $-1, %rcx + 0x4c, 0x8d, 0x05, 0xf3, 0x44, 0x00, 0x00, //0x00007ef6 leaq $17651(%rip), %r8 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, //0x00007efd .p2align 4, 0x90 + //0x00007f00 LBB35_26 + 0x44, 0x89, 0xde, //0x00007f00 movl %r11d, %esi + 0x44, 0x89, 0xdb, //0x00007f03 movl %r11d, %ebx + 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00007f06 imulq $1374389535, %rbx, %r11 + 0x49, 0xc1, 0xeb, 0x25, //0x00007f0d shrq $37, %r11 + 0x41, 0x6b, 0xdb, 0x64, //0x00007f11 imull $100, %r11d, %ebx + 0x89, 0xf2, //0x00007f15 movl %esi, %edx + 0x29, 0xda, //0x00007f17 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00007f19 movzwl (%r8,%rdx,2), %edx + 0x66, 0x89, 0x51, 0xff, //0x00007f1e movw %dx, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007f22 addq $-2, %rcx + 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00007f26 cmpl $9999, %esi + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00007f2c ja LBB35_26 + //0x00007f32 LBB35_27 + 0x41, 0x83, 0xfb, 0x0a, //0x00007f32 cmpl $10, %r11d + 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00007f36 jb LBB35_29 + 0x44, 0x89, 0xd9, //0x00007f3c movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0xaa, 0x44, 0x00, 0x00, //0x00007f3f leaq $17578(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00007f46 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00007f4a movw %cx, (%r9) + 0x29, 0xf8, //0x00007f4e subl %edi, %eax + 0xe9, 0x71, 0x08, 0x00, 0x00, //0x00007f50 jmp LBB35_156 + //0x00007f55 LBB35_29 + 0x41, 0x80, 0xc3, 0x30, //0x00007f55 addb $48, %r11b + 0x45, 0x88, 0x19, //0x00007f59 movb %r11b, (%r9) + 0x29, 0xf8, //0x00007f5c subl %edi, %eax + 0xe9, 0x63, 0x08, 0x00, 0x00, //0x00007f5e jmp LBB35_156 + //0x00007f63 LBB35_49 + 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00007f63 movl $4, %r8d + //0x00007f69 LBB35_51 + 0x48, 0x83, 0xc1, 0xfc, //0x00007f69 addq $-4, %rcx + 0x83, 0xfb, 0x64, //0x00007f6d cmpl $100, %ebx + 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x00007f70 jb LBB35_53 + //0x00007f76 LBB35_54 + 0x48, 0x83, 0xc1, 0xff, //0x00007f76 addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0x6f, 0x44, 0x00, 0x00, //0x00007f7a leaq $17519(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f81 .p2align 4, 0x90 + //0x00007f90 LBB35_55 + 0x89, 0xd8, //0x00007f90 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007f92 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007f99 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x00007f9d imull $100, %eax, %esi + 0x89, 0xdf, //0x00007fa0 movl %ebx, %edi + 0x29, 0xf7, //0x00007fa2 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007fa4 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x00007fa9 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007fad addq $-2, %rcx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00007fb1 cmpl $9999, %ebx + 0x89, 0xc3, //0x00007fb7 movl %eax, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00007fb9 ja LBB35_55 + //0x00007fbf LBB35_56 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00007fbf leaq $1(%r12), %rcx + 0x83, 0xf8, 0x0a, //0x00007fc4 cmpl $10, %eax + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00007fc7 jb LBB35_58 + 0x89, 0xc6, //0x00007fcd movl %eax, %esi + 0x48, 0x8d, 0x3d, 0x1a, 0x44, 0x00, 0x00, //0x00007fcf leaq $17434(%rip), %rdi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x77, //0x00007fd6 movb (%rdi,%rsi,2), %al + 0x8a, 0x5c, 0x77, 0x01, //0x00007fd9 movb $1(%rdi,%rsi,2), %bl + 0x41, 0x88, 0x44, 0x24, 0x01, //0x00007fdd movb %al, $1(%r12) + 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00007fe2 movb %bl, $2(%r12) + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00007fe7 jmp LBB35_59 + //0x00007fec LBB35_58 + 0x04, 0x30, //0x00007fec addb $48, %al + 0x88, 0x01, //0x00007fee movb %al, (%rcx) + //0x00007ff0 LBB35_59 + 0x4d, 0x29, 0xc2, //0x00007ff0 subq %r8, %r10 + 0x4d, 0x01, 0xea, //0x00007ff3 addq %r13, %r10 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007ff6 movl $1, %ebx + 0x4c, 0x29, 0xc3, //0x00007ffb subq %r8, %rbx + 0x90, 0x90, //0x00007ffe .p2align 4, 0x90 + //0x00008000 LBB35_60 + 0x48, 0x83, 0xc3, 0xff, //0x00008000 addq $-1, %rbx + 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008004 cmpb $48, (%r10,%rdx) + 0x4d, 0x8d, 0x52, 0xff, //0x00008009 leaq $-1(%r10), %r10 + 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x0000800d je LBB35_60 + 0x41, 0x88, 0x04, 0x24, //0x00008013 movb %al, (%r12) + 0x48, 0x01, 0xd3, //0x00008017 addq %rdx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x0000801a cmpq $2, %rbx + 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x0000801e jl LBB35_62 + 0x49, 0x8d, 0x04, 0x12, //0x00008024 leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00008028 addq $2, %rax + 0xc6, 0x01, 0x2e, //0x0000802c movb $46, (%rcx) + 0xc6, 0x00, 0x65, //0x0000802f movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x00008032 testl %r9d, %r9d + 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008035 jle LBB35_65 + //0x0000803b LBB35_66 + 0x41, 0x83, 0xc1, 0xff, //0x0000803b addl $-1, %r9d + 0xc6, 0x40, 0x01, 0x2b, //0x0000803f movb $43, $1(%rax) + 0x44, 0x89, 0xc9, //0x00008043 movl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x00008046 cmpl $10, %ecx + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008049 jl LBB35_69 + //0x0000804f LBB35_68 + 0x48, 0x63, 0xc9, //0x0000804f movslq %ecx, %rcx + 0x48, 0x8d, 0x15, 0x97, 0x43, 0x00, 0x00, //0x00008052 leaq $17303(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008059 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0x02, //0x0000805d movw %cx, $2(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x00008061 addq $4, %rax + 0xe9, 0x59, 0x07, 0x00, 0x00, //0x00008065 jmp LBB35_155 + //0x0000806a LBB35_62 + 0x49, 0x8d, 0x04, 0x12, //0x0000806a leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000806e addq $1, %rax + 0xc6, 0x00, 0x65, //0x00008072 movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x00008075 testl %r9d, %r9d + 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x00008078 jg LBB35_66 + //0x0000807e LBB35_65 + 0xc6, 0x40, 0x01, 0x2d, //0x0000807e movb $45, $1(%rax) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008082 movl $1, %ecx + 0x44, 0x29, 0xc9, //0x00008087 subl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x0000808a cmpl $10, %ecx + 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x0000808d jge LBB35_68 + //0x00008093 LBB35_69 + 0x80, 0xc1, 0x30, //0x00008093 addb $48, %cl + 0x88, 0x48, 0x02, //0x00008096 movb %cl, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00008099 addq $3, %rax + 0xe9, 0x21, 0x07, 0x00, 0x00, //0x0000809d jmp LBB35_155 + //0x000080a2 LBB35_141 + 0x4c, 0x89, 0xe6, //0x000080a2 movq %r12, %rsi + 0x4d, 0x89, 0xf9, //0x000080a5 movq %r15, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x000080a8 andq $-128, %r9 + 0x49, 0x8d, 0x41, 0x80, //0x000080ac leaq $-128(%r9), %rax + 0x48, 0x89, 0xc3, //0x000080b0 movq %rax, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x000080b3 shrq $7, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x000080b7 addq $1, %rbx + 0x41, 0x89, 0xdc, //0x000080bb movl %ebx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x000080be andl $3, %r12d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x000080c2 cmpq $384, %rax + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x000080c8 jae LBB35_143 + 0x31, 0xc9, //0x000080ce xorl %ecx, %ecx + 0xe9, 0xbc, 0x00, 0x00, 0x00, //0x000080d0 jmp LBB35_145 + //0x000080d5 LBB35_143 + 0x4b, 0x8d, 0x04, 0x02, //0x000080d5 leaq (%r10,%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x000080d9 movq $-48(%rbp), %rcx + 0x48, 0x01, 0xc8, //0x000080dd addq %rcx, %rax + 0x48, 0x05, 0xe0, 0x01, 0x00, 0x00, //0x000080e0 addq $480, %rax + 0x48, 0x83, 0xe3, 0xfc, //0x000080e6 andq $-4, %rbx + 0x48, 0xf7, 0xdb, //0x000080ea negq %rbx + 0x31, 0xc9, //0x000080ed xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x09, 0xf8, 0xff, 0xff, //0x000080ef vmovdqa $-2039(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080f7 .p2align 4, 0x90 + //0x00008100 LBB35_144 + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xfe, 0xff, 0xff, //0x00008100 vmovdqu %ymm0, $-480(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xfe, 0xff, 0xff, //0x00008109 vmovdqu %ymm0, $-448(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xfe, 0xff, 0xff, //0x00008112 vmovdqu %ymm0, $-416(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0xfe, 0xff, 0xff, //0x0000811b vmovdqu %ymm0, $-384(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0xfe, 0xff, 0xff, //0x00008124 vmovdqu %ymm0, $-352(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0xfe, 0xff, 0xff, //0x0000812d vmovdqu %ymm0, $-320(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0xfe, 0xff, 0xff, //0x00008136 vmovdqu %ymm0, $-288(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0xff, 0xff, 0xff, //0x0000813f vmovdqu %ymm0, $-256(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008148 vmovdqu %ymm0, $-224(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x00008151 vmovdqu %ymm0, $-192(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x0000815a vmovdqu %ymm0, $-160(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x80, //0x00008163 vmovdqu %ymm0, $-128(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008169 vmovdqu %ymm0, $-96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x0000816f vmovdqu %ymm0, $-64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008175 vmovdqu %ymm0, $-32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x0000817b vmovdqu %ymm0, (%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008180 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00008187 addq $4, %rbx + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x0000818b jne LBB35_144 + //0x00008191 LBB35_145 + 0x4d, 0x85, 0xe4, //0x00008191 testq %r12, %r12 + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00008194 je LBB35_148 + 0x4c, 0x01, 0xd1, //0x0000819a addq %r10, %rcx + 0x4c, 0x01, 0xc1, //0x0000819d addq %r8, %rcx + 0x48, 0x8b, 0x45, 0xd0, //0x000081a0 movq $-48(%rbp), %rax + 0x48, 0x01, 0xc8, //0x000081a4 addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x60, //0x000081a7 addq $96, %rax + 0x49, 0xc1, 0xe4, 0x07, //0x000081ab shlq $7, %r12 + 0x31, 0xc9, //0x000081af xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xf7, 0xff, 0xff, //0x000081b1 vmovdqa $-2233(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000081b9 .p2align 4, 0x90 + //0x000081c0 LBB35_147 + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x000081c0 vmovdqu %ymm0, $-96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x000081c6 vmovdqu %ymm0, $-64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x000081cc vmovdqu %ymm0, $-32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x000081d2 vmovdqu %ymm0, (%rax,%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x000081d7 subq $-128, %rcx + 0x49, 0x39, 0xcc, //0x000081db cmpq %rcx, %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000081de jne LBB35_147 + //0x000081e4 LBB35_148 + 0x4d, 0x39, 0xcf, //0x000081e4 cmpq %r9, %r15 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x000081e7 jne LBB35_150 + 0x48, 0x89, 0xf0, //0x000081ed movq %rsi, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x000081f0 movq $-48(%rbp), %r13 + 0xe9, 0xca, 0x05, 0x00, 0x00, //0x000081f4 jmp LBB35_155 + //0x000081f9 LBB35_150 + 0x41, 0xf6, 0xc7, 0x70, //0x000081f9 testb $112, %r15b + 0x49, 0x89, 0xf4, //0x000081fd movq %rsi, %r12 + 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00008200 je LBB35_151 + //0x00008206 LBB35_138 + 0x4d, 0x39, 0xee, //0x00008206 cmpq %r13, %r14 + 0x4d, 0x0f, 0x47, 0xee, //0x00008209 cmovaq %r14, %r13 + 0x4d, 0x29, 0xdd, //0x0000820d subq %r11, %r13 + 0x4c, 0x89, 0xe8, //0x00008210 movq %r13, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00008213 andq $-16, %rax + 0x48, 0x01, 0xc2, //0x00008217 addq %rax, %rdx + 0x4d, 0x01, 0xca, //0x0000821a addq %r9, %r10 + 0x4d, 0x01, 0xc2, //0x0000821d addq %r8, %r10 + 0x4c, 0x03, 0x55, 0xd0, //0x00008220 addq $-48(%rbp), %r10 + 0x48, 0x89, 0xc1, //0x00008224 movq %rax, %rcx + 0x4c, 0x29, 0xc9, //0x00008227 subq %r9, %rcx + 0x31, 0xdb, //0x0000822a xorl %ebx, %ebx + 0xc5, 0xf9, 0x6f, 0x05, 0xec, 0xf6, 0xff, 0xff, //0x0000822c vmovdqa $-2324(%rip), %xmm0 /* LCPI35_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008234 .p2align 4, 0x90 + //0x00008240 LBB35_139 + 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x1a, //0x00008240 vmovdqu %xmm0, (%r10,%rbx) + 0x48, 0x83, 0xc3, 0x10, //0x00008246 addq $16, %rbx + 0x48, 0x39, 0xd9, //0x0000824a cmpq %rbx, %rcx + 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x0000824d jne LBB35_139 + 0x49, 0x39, 0xc5, //0x00008253 cmpq %rax, %r13 + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00008256 jne LBB35_152 + //0x0000825c LBB35_134 + 0x4c, 0x89, 0xe0, //0x0000825c movq %r12, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000825f movq $-48(%rbp), %r13 + 0xe9, 0x5b, 0x05, 0x00, 0x00, //0x00008263 jmp LBB35_155 + //0x00008268 LBB35_23 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008268 cmpl $10000, %r11d + 0x4c, 0x89, 0xc9, //0x0000826f movq %r9, %rcx + 0x48, 0x83, 0xd9, 0x00, //0x00008272 sbbq $0, %rcx + 0x48, 0x83, 0xc1, 0x05, //0x00008276 addq $5, %rcx + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000827a cmpl $10000, %r11d + 0x0f, 0x83, 0x97, 0xfa, 0xff, 0xff, //0x00008281 jae LBB35_17 + 0x48, 0x89, 0xc8, //0x00008287 movq %rcx, %rax + 0xe9, 0x63, 0xfc, 0xff, 0xff, //0x0000828a jmp LBB35_25 + //0x0000828f LBB35_151 + 0x4c, 0x01, 0xca, //0x0000828f addq %r9, %rdx + //0x00008292 LBB35_152 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00008292 movq $-48(%rbp), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008296 .p2align 4, 0x90 + //0x000082a0 LBB35_153 + 0xc6, 0x02, 0x30, //0x000082a0 movb $48, (%rdx) + 0x48, 0x83, 0xc2, 0x01, //0x000082a3 addq $1, %rdx + 0x4c, 0x39, 0xe2, //0x000082a7 cmpq %r12, %rdx + 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000082aa jb LBB35_153 + 0x4c, 0x89, 0xe0, //0x000082b0 movq %r12, %rax + 0xe9, 0x0b, 0x05, 0x00, 0x00, //0x000082b3 jmp LBB35_155 + //0x000082b8 LBB35_76 + 0x48, 0x8b, 0x55, 0xd0, //0x000082b8 movq $-48(%rbp), %rdx + 0x49, 0x8d, 0x1c, 0x12, //0x000082bc leaq (%r10,%rdx), %rbx + 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000082c0 addq $482, %rbx + 0x49, 0x83, 0xe4, 0xfc, //0x000082c7 andq $-4, %r12 + 0x49, 0xf7, 0xdc, //0x000082cb negq %r12 + 0x31, 0xd2, //0x000082ce xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x28, 0xf6, 0xff, 0xff, //0x000082d0 vmovdqa $-2520(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + //0x000082d8 LBB35_77 + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xfe, 0xff, 0xff, //0x000082d8 vmovdqu %ymm0, $-480(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xfe, 0xff, 0xff, //0x000082e1 vmovdqu %ymm0, $-448(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xfe, 0xff, 0xff, //0x000082ea vmovdqu %ymm0, $-416(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x80, 0xfe, 0xff, 0xff, //0x000082f3 vmovdqu %ymm0, $-384(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xa0, 0xfe, 0xff, 0xff, //0x000082fc vmovdqu %ymm0, $-352(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xc0, 0xfe, 0xff, 0xff, //0x00008305 vmovdqu %ymm0, $-320(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xe0, 0xfe, 0xff, 0xff, //0x0000830e vmovdqu %ymm0, $-288(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x00, 0xff, 0xff, 0xff, //0x00008317 vmovdqu %ymm0, $-256(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00008320 vmovdqu %ymm0, $-224(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00008329 vmovdqu %ymm0, $-192(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00008332 vmovdqu %ymm0, $-160(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0x80, //0x0000833b vmovdqu %ymm0, $-128(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xa0, //0x00008341 vmovdqu %ymm0, $-96(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xc0, //0x00008347 vmovdqu %ymm0, $-64(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xe0, //0x0000834d vmovdqu %ymm0, $-32(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x04, 0x13, //0x00008353 vmovdqu %ymm0, (%rbx,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00008358 addq $512, %rdx + 0x49, 0x83, 0xc4, 0x04, //0x0000835f addq $4, %r12 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00008363 jne LBB35_77 + //0x00008369 LBB35_78 + 0x4d, 0x85, 0xff, //0x00008369 testq %r15, %r15 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x0000836c je LBB35_81 + 0x4c, 0x01, 0xd2, //0x00008372 addq %r10, %rdx + 0x48, 0x8b, 0x75, 0xd0, //0x00008375 movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf2, //0x00008379 addq %rsi, %rdx + 0x48, 0x83, 0xc2, 0x62, //0x0000837c addq $98, %rdx + 0x49, 0xc1, 0xe7, 0x07, //0x00008380 shlq $7, %r15 + 0x31, 0xf6, //0x00008384 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0x72, 0xf5, 0xff, 0xff, //0x00008386 vmovdqa $-2702(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + //0x0000838e LBB35_80 + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xa0, //0x0000838e vmovdqu %ymm0, $-96(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xc0, //0x00008394 vmovdqu %ymm0, $-64(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xe0, //0x0000839a vmovdqu %ymm0, $-32(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x04, 0x32, //0x000083a0 vmovdqu %ymm0, (%rdx,%rsi) + 0x48, 0x83, 0xee, 0x80, //0x000083a5 subq $-128, %rsi + 0x49, 0x39, 0xf7, //0x000083a9 cmpq %rsi, %r15 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000083ac jne LBB35_80 + //0x000083b2 LBB35_81 + 0x49, 0x89, 0xfc, //0x000083b2 movq %rdi, %r12 + 0x49, 0x01, 0xcc, //0x000083b5 addq %rcx, %r12 + 0x49, 0x39, 0xcb, //0x000083b8 cmpq %rcx, %r11 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000083bb je LBB35_84 + //0x000083c1 LBB35_82 + 0x44, 0x01, 0xc9, //0x000083c1 addl %r9d, %ecx + 0xf7, 0xd9, //0x000083c4 negl %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083c6 .p2align 4, 0x90 + //0x000083d0 LBB35_83 + 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000083d0 movb $48, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x000083d5 addq $1, %r12 + 0x83, 0xc1, 0xff, //0x000083d9 addl $-1, %ecx + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000083dc jne LBB35_83 + //0x000083e2 LBB35_84 + 0x4f, 0x8d, 0x3c, 0x04, //0x000083e2 leaq (%r12,%r8), %r15 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000083e6 cmpl $10000, %eax + 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x000083eb jb LBB35_85 + 0x89, 0xc2, //0x000083f1 movl %eax, %edx + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000083f3 movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xda, //0x000083f8 imulq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x000083fc shrq $45, %rbx + 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00008400 imull $-10000, %ebx, %edx + 0x01, 0xc2, //0x00008406 addl %eax, %edx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00008408 je LBB35_87 + 0x89, 0xd0, //0x0000840e movl %edx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008410 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008417 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x0000841b imull $100, %eax, %esi + 0x29, 0xf2, //0x0000841e subl %esi, %edx + 0x48, 0x8d, 0x35, 0xc9, 0x3f, 0x00, 0x00, //0x00008420 leaq $16329(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00008427 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000842b movw %dx, $-2(%r15) + 0x0f, 0xb7, 0x04, 0x46, //0x00008430 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00008434 movw %ax, $-4(%r15) + 0x45, 0x31, 0xdb, //0x00008439 xorl %r11d, %r11d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000843c jmp LBB35_89 + //0x00008441 LBB35_85 + 0x45, 0x31, 0xdb, //0x00008441 xorl %r11d, %r11d + 0x4c, 0x89, 0xfa, //0x00008444 movq %r15, %rdx + 0x89, 0xc3, //0x00008447 movl %eax, %ebx + 0x83, 0xfb, 0x64, //0x00008449 cmpl $100, %ebx + 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000844c jae LBB35_92 + //0x00008452 LBB35_91 + 0x89, 0xd8, //0x00008452 movl %ebx, %eax + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00008454 jmp LBB35_94 + //0x00008459 LBB35_87 + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00008459 movl $4, %r11d + //0x0000845f LBB35_89 + 0x49, 0x8d, 0x57, 0xfc, //0x0000845f leaq $-4(%r15), %rdx + 0x83, 0xfb, 0x64, //0x00008463 cmpl $100, %ebx + 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00008466 jb LBB35_91 + //0x0000846c LBB35_92 + 0x48, 0x83, 0xc2, 0xff, //0x0000846c addq $-1, %rdx + 0x48, 0x8d, 0x35, 0x79, 0x3f, 0x00, 0x00, //0x00008470 leaq $16249(%rip), %rsi /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008477 .p2align 4, 0x90 + //0x00008480 LBB35_93 + 0x89, 0xd8, //0x00008480 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008482 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008489 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x0000848d imull $100, %eax, %edi + 0x89, 0xd9, //0x00008490 movl %ebx, %ecx + 0x29, 0xf9, //0x00008492 subl %edi, %ecx + 0x0f, 0xb7, 0x0c, 0x4e, //0x00008494 movzwl (%rsi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xff, //0x00008498 movw %cx, $-1(%rdx) + 0x48, 0x83, 0xc2, 0xfe, //0x0000849c addq $-2, %rdx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000084a0 cmpl $9999, %ebx + 0x89, 0xc3, //0x000084a6 movl %eax, %ebx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000084a8 ja LBB35_93 + //0x000084ae LBB35_94 + 0x83, 0xf8, 0x0a, //0x000084ae cmpl $10, %eax + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000084b1 jb LBB35_96 + 0x89, 0xc0, //0x000084b7 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x30, 0x3f, 0x00, 0x00, //0x000084b9 leaq $16176(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000084c0 movzwl (%rcx,%rax,2), %eax + 0x4d, 0x89, 0xe2, //0x000084c4 movq %r12, %r10 + 0x66, 0x41, 0x89, 0x04, 0x24, //0x000084c7 movw %ax, (%r12) + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000084cc jmp LBB35_97 + //0x000084d1 LBB35_96 + 0x04, 0x30, //0x000084d1 addb $48, %al + 0x4d, 0x89, 0xe2, //0x000084d3 movq %r12, %r10 + 0x41, 0x88, 0x04, 0x24, //0x000084d6 movb %al, (%r12) + //0x000084da LBB35_97 + 0x4d, 0x29, 0xdf, //0x000084da subq %r11, %r15 + 0x4d, 0x29, 0xd8, //0x000084dd subq %r11, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000084e0 addq $1, %r8 + 0x43, 0x8d, 0x04, 0x33, //0x000084e4 leal (%r11,%r14), %eax + 0xb1, 0x01, //0x000084e8 movb $1, %cl + 0x28, 0xc1, //0x000084ea subb %al, %cl + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000084ec movl $1, %edx + 0x44, 0x29, 0xf2, //0x000084f1 subl %r14d, %edx + 0x44, 0x29, 0xda, //0x000084f4 subl %r11d, %edx + 0x47, 0x8d, 0x24, 0x1e, //0x000084f7 leal (%r14,%r11), %r12d + 0x41, 0x83, 0xc4, 0xfe, //0x000084fb addl $-2, %r12d + 0x45, 0x01, 0xde, //0x000084ff addl %r11d, %r14d + 0x41, 0x83, 0xc6, 0xff, //0x00008502 addl $-1, %r14d + 0x31, 0xdb, //0x00008506 xorl %ebx, %ebx + 0x44, 0x89, 0xe6, //0x00008508 movl %r12d, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000850b .p2align 4, 0x90 + //0x00008510 LBB35_98 + 0x80, 0xc1, 0x03, //0x00008510 addb $3, %cl + 0x83, 0xc6, 0x01, //0x00008513 addl $1, %esi + 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00008516 cmpb $48, $-1(%r15,%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x0000851c leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00008520 je LBB35_98 + 0x49, 0x8d, 0x04, 0x1f, //0x00008526 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000852a addq $1, %rax + 0x45, 0x85, 0xc9, //0x0000852e testl %r9d, %r9d + 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00008531 jle LBB35_100 + 0x45, 0x29, 0xdd, //0x00008537 subl %r11d, %r13d + 0x42, 0x8d, 0x3c, 0x2b, //0x0000853a leal (%rbx,%r13), %edi + 0x83, 0xc7, 0x01, //0x0000853e addl $1, %edi + 0x41, 0x39, 0xf9, //0x00008541 cmpl %edi, %r9d + 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00008544 jge LBB35_102 + 0x83, 0xc2, 0xff, //0x0000854a addl $-1, %edx + 0x48, 0x63, 0xc2, //0x0000854d movslq %edx, %rax + 0x48, 0x8d, 0x34, 0x18, //0x00008550 leaq (%rax,%rbx), %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00008554 addq $1, %rsi + 0x85, 0xf6, //0x00008558 testl %esi, %esi + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000855a movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000855e jle LBB35_120 + 0x41, 0x89, 0xf0, //0x00008564 movl %esi, %r8d + 0x49, 0x8d, 0x50, 0xff, //0x00008567 leaq $-1(%r8), %rdx + 0x48, 0x83, 0xfa, 0x03, //0x0000856b cmpq $3, %rdx + 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000856f jae LBB35_121 + 0x31, 0xd2, //0x00008575 xorl %edx, %edx + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00008577 jmp LBB35_117 + //0x0000857c LBB35_100 + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000857c movq $-48(%rbp), %r13 + 0xe9, 0x3e, 0x02, 0x00, 0x00, //0x00008580 jmp LBB35_155 + //0x00008585 LBB35_102 + 0x45, 0x89, 0xf6, //0x00008585 movl %r14d, %r14d + 0x49, 0x29, 0xde, //0x00008588 subq %rbx, %r14 + 0x45, 0x85, 0xf6, //0x0000858b testl %r14d, %r14d + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000858e movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x00008592 jle LBB35_155 + 0x45, 0x89, 0xe3, //0x00008598 movl %r12d, %r11d + 0x4c, 0x89, 0xd9, //0x0000859b movq %r11, %rcx + 0x48, 0x29, 0xd9, //0x0000859e subq %rbx, %rcx + 0x31, 0xd2, //0x000085a1 xorl %edx, %edx + 0x83, 0xf9, 0x7f, //0x000085a3 cmpl $127, %ecx + 0x0f, 0x82, 0x04, 0x02, 0x00, 0x00, //0x000085a6 jb LBB35_112 + 0x49, 0x29, 0xdb, //0x000085ac subq %rbx, %r11 + 0x41, 0x89, 0xc9, //0x000085af movl %ecx, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x000085b2 addq $1, %r9 + 0x4c, 0x89, 0xca, //0x000085b6 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0x80, //0x000085b9 andq $-128, %rdx + 0x4d, 0x01, 0xc2, //0x000085bd addq %r8, %r10 + 0x89, 0xf0, //0x000085c0 movl %esi, %eax + 0x48, 0x83, 0xc0, 0x01, //0x000085c2 addq $1, %rax + 0x48, 0x83, 0xe0, 0x80, //0x000085c6 andq $-128, %rax + 0x4c, 0x01, 0xd0, //0x000085ca addq %r10, %rax + 0x48, 0x8d, 0x4a, 0x80, //0x000085cd leaq $-128(%rdx), %rcx + 0x49, 0x89, 0xc8, //0x000085d1 movq %rcx, %r8 + 0x49, 0xc1, 0xe8, 0x07, //0x000085d4 shrq $7, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000085d8 addq $1, %r8 + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000085dc cmpq $384, %rcx + 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x000085e3 jae LBB35_106 + 0x31, 0xc9, //0x000085e9 xorl %ecx, %ecx + 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x000085eb jmp LBB35_108 + //0x000085f0 LBB35_121 + 0x83, 0xe6, 0xfc, //0x000085f0 andl $-4, %esi + 0x48, 0xf7, 0xde, //0x000085f3 negq %rsi + 0x31, 0xd2, //0x000085f6 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000085f8 .p2align 4, 0x90 + //0x00008600 LBB35_122 + 0x49, 0x8d, 0x3c, 0x17, //0x00008600 leaq (%r15,%rdx), %rdi + 0x8b, 0x44, 0x3b, 0xfd, //0x00008604 movl $-3(%rbx,%rdi), %eax + 0x89, 0x44, 0x3b, 0xfe, //0x00008608 movl %eax, $-2(%rbx,%rdi) + 0x48, 0x83, 0xc2, 0xfc, //0x0000860c addq $-4, %rdx + 0x48, 0x39, 0xd6, //0x00008610 cmpq %rdx, %rsi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008613 jne LBB35_122 + 0x48, 0xf7, 0xda, //0x00008619 negq %rdx + //0x0000861c LBB35_117 + 0x41, 0xf6, 0xc0, 0x03, //0x0000861c testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008620 je LBB35_120 + 0x0f, 0xb6, 0xf9, //0x00008626 movzbl %cl, %edi + 0x83, 0xe7, 0x03, //0x00008629 andl $3, %edi + 0x48, 0xf7, 0xdf, //0x0000862c negq %rdi + 0x4c, 0x89, 0xf9, //0x0000862f movq %r15, %rcx + 0x48, 0x29, 0xd1, //0x00008632 subq %rdx, %rcx + 0x31, 0xd2, //0x00008635 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008637 .p2align 4, 0x90 + //0x00008640 LBB35_119 + 0x48, 0x8d, 0x34, 0x11, //0x00008640 leaq (%rcx,%rdx), %rsi + 0x0f, 0xb6, 0x04, 0x33, //0x00008644 movzbl (%rbx,%rsi), %eax + 0x88, 0x44, 0x33, 0x01, //0x00008648 movb %al, $1(%rbx,%rsi) + 0x48, 0x83, 0xc2, 0xff, //0x0000864c addq $-1, %rdx + 0x48, 0x39, 0xd7, //0x00008650 cmpq %rdx, %rdi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008653 jne LBB35_119 + //0x00008659 LBB35_120 + 0x49, 0x63, 0xc1, //0x00008659 movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000865c movb $46, (%r10,%rax) + 0x49, 0x8d, 0x04, 0x1f, //0x00008661 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00008665 addq $2, %rax + 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00008669 jmp LBB35_155 + //0x0000866e LBB35_106 + 0x44, 0x89, 0xde, //0x0000866e movl %r11d, %esi + 0x48, 0x83, 0xc6, 0x01, //0x00008671 addq $1, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00008675 andq $-128, %rsi + 0x48, 0x83, 0xc6, 0x80, //0x00008679 addq $-128, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x0000867d shrq $7, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00008681 addq $1, %rsi + 0x48, 0x83, 0xe6, 0xfc, //0x00008685 andq $-4, %rsi + 0x48, 0xf7, 0xde, //0x00008689 negq %rsi + 0x31, 0xc9, //0x0000868c xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x6a, 0xf2, 0xff, 0xff, //0x0000868e vmovdqa $-3478(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + //0x00008696 LBB35_107 + 0x49, 0x8d, 0x3c, 0x0f, //0x00008696 leaq (%r15,%rcx), %rdi + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x01, //0x0000869a vmovdqu %ymm0, $1(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x21, //0x000086a0 vmovdqu %ymm0, $33(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x41, //0x000086a6 vmovdqu %ymm0, $65(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x61, //0x000086ac vmovdqu %ymm0, $97(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000086b2 vmovdqu %ymm0, $129(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000086bb vmovdqu %ymm0, $161(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000086c4 vmovdqu %ymm0, $193(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x000086cd vmovdqu %ymm0, $225(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x01, 0x01, 0x00, 0x00, //0x000086d6 vmovdqu %ymm0, $257(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x21, 0x01, 0x00, 0x00, //0x000086df vmovdqu %ymm0, $289(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x41, 0x01, 0x00, 0x00, //0x000086e8 vmovdqu %ymm0, $321(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x61, 0x01, 0x00, 0x00, //0x000086f1 vmovdqu %ymm0, $353(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x01, 0x00, 0x00, //0x000086fa vmovdqu %ymm0, $385(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x01, 0x00, 0x00, //0x00008703 vmovdqu %ymm0, $417(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x01, 0x00, 0x00, //0x0000870c vmovdqu %ymm0, $449(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x01, 0x00, 0x00, //0x00008715 vmovdqu %ymm0, $481(%rbx,%rdi) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000871e addq $512, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x00008725 addq $4, %rsi + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00008729 jne LBB35_107 + //0x0000872f LBB35_108 + 0x48, 0x01, 0xd8, //0x0000872f addq %rbx, %rax + 0x41, 0xf6, 0xc0, 0x03, //0x00008732 testb $3, %r8b + 0x0f, 0x84, 0x5c, 0x00, 0x00, 0x00, //0x00008736 je LBB35_111 + 0x41, 0x83, 0xc3, 0x01, //0x0000873c addl $1, %r11d + 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00008740 andl $384, %r11d + 0x41, 0x83, 0xc3, 0x80, //0x00008747 addl $-128, %r11d + 0x41, 0xc1, 0xeb, 0x07, //0x0000874b shrl $7, %r11d + 0x41, 0x80, 0xc3, 0x01, //0x0000874f addb $1, %r11b + 0x45, 0x0f, 0xb6, 0xc3, //0x00008753 movzbl %r11b, %r8d + 0x41, 0x83, 0xe0, 0x03, //0x00008757 andl $3, %r8d + 0x49, 0xc1, 0xe0, 0x07, //0x0000875b shlq $7, %r8 + 0x4c, 0x01, 0xf9, //0x0000875f addq %r15, %rcx + 0x48, 0x83, 0xc1, 0x61, //0x00008762 addq $97, %rcx + 0x31, 0xf6, //0x00008766 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0x90, 0xf1, 0xff, 0xff, //0x00008768 vmovdqa $-3696(%rip), %ymm0 /* LCPI35_0+0(%rip) */ + //0x00008770 LBB35_110 + 0x48, 0x8d, 0x3c, 0x31, //0x00008770 leaq (%rcx,%rsi), %rdi + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xa0, //0x00008774 vmovdqu %ymm0, $-96(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xc0, //0x0000877a vmovdqu %ymm0, $-64(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xe0, //0x00008780 vmovdqu %ymm0, $-32(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x04, 0x3b, //0x00008786 vmovdqu %ymm0, (%rbx,%rdi) + 0x48, 0x83, 0xee, 0x80, //0x0000878b subq $-128, %rsi + 0x49, 0x39, 0xf0, //0x0000878f cmpq %rsi, %r8 + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00008792 jne LBB35_110 + //0x00008798 LBB35_111 + 0x49, 0x39, 0xd1, //0x00008798 cmpq %rdx, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x0000879b je LBB35_155 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000087a1 .p2align 4, 0x90 + //0x000087b0 LBB35_112 + 0xc6, 0x00, 0x30, //0x000087b0 movb $48, (%rax) + 0x48, 0x83, 0xc0, 0x01, //0x000087b3 addq $1, %rax + 0x83, 0xc2, 0x01, //0x000087b7 addl $1, %edx + 0x44, 0x39, 0xf2, //0x000087ba cmpl %r14d, %edx + 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x000087bd jl LBB35_112 + //0x000087c3 LBB35_155 + 0x44, 0x29, 0xe8, //0x000087c3 subl %r13d, %eax + //0x000087c6 LBB35_156 + 0x48, 0x83, 0xc4, 0x10, //0x000087c6 addq $16, %rsp + 0x5b, //0x000087ca popq %rbx + 0x41, 0x5c, //0x000087cb popq %r12 + 0x41, 0x5d, //0x000087cd popq %r13 + 0x41, 0x5e, //0x000087cf popq %r14 + 0x41, 0x5f, //0x000087d1 popq %r15 + 0x5d, //0x000087d3 popq %rbp + 0xc5, 0xf8, 0x77, //0x000087d4 vzeroupper + 0xc3, //0x000087d7 retq + //0x000087d8 LBB35_1 + 0x31, 0xc0, //0x000087d8 xorl %eax, %eax + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000087da jmp LBB35_156 + //0x000087df LBB35_5 + 0x4c, 0x89, 0x4d, 0xc8, //0x000087df movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000087e3 movq %rdi, $-48(%rbp) + 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x000087e7 movl $-149, %r8d + 0x41, 0x89, 0xc3, //0x000087ed movl %eax, %r11d + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x000087f0 jmp LBB35_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000087f5 .p2align 4, 0x00 + //0x00008800 LCPI36_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00008800 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x00008810 LCPI36_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00008810 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00008820 LCPI36_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008820 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x00008830 LCPI36_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008830 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00008840 LCPI36_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008840 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00008850 LCPI36_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008850 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00008860 LCPI36_6 + 0xbf, //0x00008860 .byte 191 + 0xbf, //0x00008861 .byte 191 + 0xbf, //0x00008862 .byte 191 + 0xbf, //0x00008863 .byte 191 + 0xbf, //0x00008864 .byte 191 + 0xbf, //0x00008865 .byte 191 + 0xbf, //0x00008866 .byte 191 + 0xbf, //0x00008867 .byte 191 + 0x00, //0x00008868 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008869 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000886f BYTE $0x00 // .space 1, '\x00' + //0x00008870 LCPI36_7 + 0x1a, //0x00008870 .byte 26 + 0x1a, //0x00008871 .byte 26 + 0x1a, //0x00008872 .byte 26 + 0x1a, //0x00008873 .byte 26 + 0x1a, //0x00008874 .byte 26 + 0x1a, //0x00008875 .byte 26 + 0x1a, //0x00008876 .byte 26 + 0x1a, //0x00008877 .byte 26 + 0x00, //0x00008878 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008879 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000887f BYTE $0x00 // .space 1, '\x00' + //0x00008880 LCPI36_8 + 0x20, //0x00008880 .byte 32 + 0x20, //0x00008881 .byte 32 + 0x20, //0x00008882 .byte 32 + 0x20, //0x00008883 .byte 32 + 0x20, //0x00008884 .byte 32 + 0x20, //0x00008885 .byte 32 + 0x20, //0x00008886 .byte 32 + 0x20, //0x00008887 .byte 32 + 0x00, //0x00008888 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008889 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000888f BYTE $0x00 // .space 1, '\x00' + //0x00008890 .p2align 4, 0x90 + //0x00008890 _to_lower + 0x55, //0x00008890 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008891 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x00008894 cmpq $16, %rdx + 0x0f, 0x82, 0xec, 0x00, 0x00, 0x00, //0x00008898 jb LBB36_1 + 0x4c, 0x8d, 0x42, 0xf0, //0x0000889e leaq $-16(%rdx), %r8 + 0x41, 0xf6, 0xc0, 0x10, //0x000088a2 testb $16, %r8b + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000088a6 je LBB36_6 + 0x49, 0x83, 0xf8, 0x10, //0x000088ac cmpq $16, %r8 + 0x0f, 0x83, 0x54, 0x00, 0x00, 0x00, //0x000088b0 jae LBB36_8 + //0x000088b6 LBB36_2 + 0x4d, 0x85, 0xc0, //0x000088b6 testq %r8, %r8 + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x000088b9 jne LBB36_3 + 0xe9, 0x89, 0x01, 0x00, 0x00, //0x000088bf jmp LBB36_32 + //0x000088c4 LBB36_6 + 0xc5, 0xfa, 0x6f, 0x06, //0x000088c4 vmovdqu (%rsi), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x30, 0xff, 0xff, 0xff, //0x000088c8 vpcmpgtb $-208(%rip), %xmm0, %xmm1 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x38, 0xff, 0xff, 0xff, //0x000088d0 vmovdqa $-200(%rip), %xmm2 /* LCPI36_1+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x000088d8 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xc9, //0x000088dc vpand %xmm1, %xmm2, %xmm1 + 0xc5, 0xf1, 0xdb, 0x0d, 0x38, 0xff, 0xff, 0xff, //0x000088e0 vpand $-200(%rip), %xmm1, %xmm1 /* LCPI36_2+0(%rip) */ + 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x000088e8 vpsllw $5, %xmm1, %xmm1 + 0xc5, 0xf1, 0xfc, 0xc0, //0x000088ed vpaddb %xmm0, %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x000088f1 vmovdqu %xmm0, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x000088f5 addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x000088f9 addq $16, %rdi + 0x4c, 0x89, 0xc2, //0x000088fd movq %r8, %rdx + 0x49, 0x83, 0xf8, 0x10, //0x00008900 cmpq $16, %r8 + 0x0f, 0x82, 0xac, 0xff, 0xff, 0xff, //0x00008904 jb LBB36_2 + //0x0000890a LBB36_8 + 0xc5, 0xf9, 0x6f, 0x05, 0xee, 0xfe, 0xff, 0xff, //0x0000890a vmovdqa $-274(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xf6, 0xfe, 0xff, 0xff, //0x00008912 vmovdqa $-266(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xfe, 0xfe, 0xff, 0xff, //0x0000891a vmovdqa $-258(%rip), %xmm2 /* LCPI36_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008922 .p2align 4, 0x90 + //0x00008930 LBB36_9 + 0xc5, 0xfa, 0x6f, 0x1e, //0x00008930 vmovdqu (%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00008934 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x00008938 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000893c vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00008940 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008944 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x00008949 vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1f, //0x0000894d vmovdqu %xmm3, (%rdi) + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x00008951 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00008956 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x0000895a vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000895e vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00008962 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00008966 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x0000896b vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x0000896f vmovdqu %xmm3, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x00008974 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x00008978 addq $32, %rdi + 0x48, 0x83, 0xc2, 0xe0, //0x0000897c addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x0f, //0x00008980 cmpq $15, %rdx + 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x00008984 ja LBB36_9 + //0x0000898a LBB36_1 + 0x49, 0x89, 0xd0, //0x0000898a movq %rdx, %r8 + 0x4d, 0x85, 0xc0, //0x0000898d testq %r8, %r8 + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00008990 je LBB36_32 + //0x00008996 LBB36_3 + 0x49, 0x83, 0xf8, 0x08, //0x00008996 cmpq $8, %r8 + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x0000899a jb LBB36_4 + 0x4a, 0x8d, 0x04, 0x06, //0x000089a0 leaq (%rsi,%r8), %rax + 0x48, 0x39, 0xc7, //0x000089a4 cmpq %rax, %rdi + 0x0f, 0x83, 0xa2, 0x00, 0x00, 0x00, //0x000089a7 jae LBB36_12 + 0x4a, 0x8d, 0x04, 0x07, //0x000089ad leaq (%rdi,%r8), %rax + 0x48, 0x39, 0xc6, //0x000089b1 cmpq %rax, %rsi + 0x0f, 0x83, 0x95, 0x00, 0x00, 0x00, //0x000089b4 jae LBB36_12 + //0x000089ba LBB36_4 + 0x49, 0x89, 0xf3, //0x000089ba movq %rsi, %r11 + 0x4d, 0x89, 0xc1, //0x000089bd movq %r8, %r9 + 0x48, 0x89, 0xfa, //0x000089c0 movq %rdi, %rdx + //0x000089c3 LBB36_17 + 0x41, 0xf6, 0xc1, 0x01, //0x000089c3 testb $1, %r9b + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x000089c7 jne LBB36_28 + 0x4d, 0x89, 0xc8, //0x000089cd movq %r9, %r8 + 0x49, 0x83, 0xf9, 0x01, //0x000089d0 cmpq $1, %r9 + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000089d4 jne LBB36_30 + 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x000089da jmp LBB36_32 + //0x000089df LBB36_28 + 0x41, 0x0f, 0xb6, 0x03, //0x000089df movzbl (%r11), %eax + 0x8d, 0x70, 0xbf, //0x000089e3 leal $-65(%rax), %esi + 0x8d, 0x78, 0x20, //0x000089e6 leal $32(%rax), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x000089e9 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x000089ed movzbl %dil, %esi + 0x0f, 0x43, 0xf0, //0x000089f1 cmovael %eax, %esi + 0x4d, 0x8d, 0x41, 0xff, //0x000089f4 leaq $-1(%r9), %r8 + 0x40, 0x88, 0x32, //0x000089f8 movb %sil, (%rdx) + 0x49, 0x83, 0xc3, 0x01, //0x000089fb addq $1, %r11 + 0x48, 0x83, 0xc2, 0x01, //0x000089ff addq $1, %rdx + 0x49, 0x83, 0xf9, 0x01, //0x00008a03 cmpq $1, %r9 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00008a07 je LBB36_32 + //0x00008a0d LBB36_30 + 0x31, 0xf6, //0x00008a0d xorl %esi, %esi + 0x90, //0x00008a0f .p2align 4, 0x90 + //0x00008a10 LBB36_31 + 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00008a10 movzbl (%r11,%rsi), %edi + 0x8d, 0x47, 0xbf, //0x00008a15 leal $-65(%rdi), %eax + 0x8d, 0x4f, 0x20, //0x00008a18 leal $32(%rdi), %ecx + 0x3c, 0x1a, //0x00008a1b cmpb $26, %al + 0x0f, 0xb6, 0xc1, //0x00008a1d movzbl %cl, %eax + 0x0f, 0x43, 0xc7, //0x00008a20 cmovael %edi, %eax + 0x88, 0x04, 0x32, //0x00008a23 movb %al, (%rdx,%rsi) + 0x41, 0x0f, 0xb6, 0x44, 0x33, 0x01, //0x00008a26 movzbl $1(%r11,%rsi), %eax + 0x8d, 0x48, 0xbf, //0x00008a2c leal $-65(%rax), %ecx + 0x8d, 0x78, 0x20, //0x00008a2f leal $32(%rax), %edi + 0x80, 0xf9, 0x1a, //0x00008a32 cmpb $26, %cl + 0x40, 0x0f, 0xb6, 0xcf, //0x00008a35 movzbl %dil, %ecx + 0x0f, 0x43, 0xc8, //0x00008a39 cmovael %eax, %ecx + 0x88, 0x4c, 0x32, 0x01, //0x00008a3c movb %cl, $1(%rdx,%rsi) + 0x48, 0x83, 0xc6, 0x02, //0x00008a40 addq $2, %rsi + 0x49, 0x39, 0xf0, //0x00008a44 cmpq %rsi, %r8 + 0x0f, 0x85, 0xc3, 0xff, 0xff, 0xff, //0x00008a47 jne LBB36_31 + //0x00008a4d LBB36_32 + 0x5d, //0x00008a4d popq %rbp + 0xc3, //0x00008a4e retq + //0x00008a4f LBB36_12 + 0x49, 0x83, 0xf8, 0x10, //0x00008a4f cmpq $16, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008a53 jae LBB36_19 + 0x31, 0xc0, //0x00008a59 xorl %eax, %eax + 0xe9, 0xf8, 0x00, 0x00, 0x00, //0x00008a5b jmp LBB36_14 + //0x00008a60 LBB36_19 + 0x4c, 0x89, 0xc0, //0x00008a60 movq %r8, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00008a63 andq $-16, %rax + 0x48, 0x8d, 0x48, 0xf0, //0x00008a67 leaq $-16(%rax), %rcx + 0x49, 0x89, 0xc9, //0x00008a6b movq %rcx, %r9 + 0x49, 0xc1, 0xe9, 0x04, //0x00008a6e shrq $4, %r9 + 0x49, 0x83, 0xc1, 0x01, //0x00008a72 addq $1, %r9 + 0x48, 0x85, 0xc9, //0x00008a76 testq %rcx, %rcx + 0x0f, 0x84, 0x4c, 0x01, 0x00, 0x00, //0x00008a79 je LBB36_20 + 0x4c, 0x89, 0xc9, //0x00008a7f movq %r9, %rcx + 0x48, 0x83, 0xe1, 0xfe, //0x00008a82 andq $-2, %rcx + 0x48, 0xf7, 0xd9, //0x00008a86 negq %rcx + 0x31, 0xd2, //0x00008a89 xorl %edx, %edx + 0xc5, 0xf9, 0x6f, 0x05, 0x9d, 0xfd, 0xff, 0xff, //0x00008a8b vmovdqa $-611(%rip), %xmm0 /* LCPI36_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa5, 0xfd, 0xff, 0xff, //0x00008a93 vmovdqa $-603(%rip), %xmm1 /* LCPI36_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfd, 0xff, 0xff, //0x00008a9b vmovdqa $-595(%rip), %xmm2 /* LCPI36_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008aa3 .p2align 4, 0x90 + //0x00008ab0 LBB36_22 + 0xc5, 0xfa, 0x6f, 0x1c, 0x16, //0x00008ab0 vmovdqu (%rsi,%rdx), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x00008ab5 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x00008ab9 vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x00008abd vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x00008ac1 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008ac5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1c, 0x17, //0x00008acb vmovdqu %xmm3, (%rdi,%rdx) + 0xc5, 0xfa, 0x6f, 0x5c, 0x16, 0x10, //0x00008ad0 vmovdqu $16(%rsi,%rdx), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x00008ad6 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x00008ada vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x00008ade vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x00008ae2 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x00008ae6 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5c, 0x17, 0x10, //0x00008aec vmovdqu %xmm3, $16(%rdi,%rdx) + 0x48, 0x83, 0xc2, 0x20, //0x00008af2 addq $32, %rdx + 0x48, 0x83, 0xc1, 0x02, //0x00008af6 addq $2, %rcx + 0x0f, 0x85, 0xb0, 0xff, 0xff, 0xff, //0x00008afa jne LBB36_22 + 0x41, 0xf6, 0xc1, 0x01, //0x00008b00 testb $1, %r9b + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00008b04 je LBB36_25 + //0x00008b0a LBB36_24 + 0xc5, 0xfa, 0x6f, 0x04, 0x16, //0x00008b0a vmovdqu (%rsi,%rdx), %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x19, 0xfd, 0xff, 0xff, //0x00008b0f vpaddb $-743(%rip), %xmm0, %xmm1 /* LCPI36_3+0(%rip) */ + 0xc5, 0xf1, 0xda, 0x15, 0x21, 0xfd, 0xff, 0xff, //0x00008b17 vpminub $-735(%rip), %xmm1, %xmm2 /* LCPI36_4+0(%rip) */ + 0xc5, 0xf9, 0xfc, 0x1d, 0x29, 0xfd, 0xff, 0xff, //0x00008b1f vpaddb $-727(%rip), %xmm0, %xmm3 /* LCPI36_5+0(%rip) */ + 0xc5, 0xf1, 0x74, 0xca, //0x00008b27 vpcmpeqb %xmm2, %xmm1, %xmm1 + 0xc4, 0xe3, 0x79, 0x4c, 0xc3, 0x10, //0x00008b2b vpblendvb %xmm1, %xmm3, %xmm0, %xmm0 + 0xc5, 0xfa, 0x7f, 0x04, 0x17, //0x00008b31 vmovdqu %xmm0, (%rdi,%rdx) + //0x00008b36 LBB36_25 + 0x49, 0x39, 0xc0, //0x00008b36 cmpq %rax, %r8 + 0x0f, 0x84, 0x0e, 0xff, 0xff, 0xff, //0x00008b39 je LBB36_32 + 0x41, 0xf6, 0xc0, 0x08, //0x00008b3f testb $8, %r8b + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00008b43 jne LBB36_14 + 0x48, 0x01, 0xc7, //0x00008b49 addq %rax, %rdi + 0x41, 0x83, 0xe0, 0x0f, //0x00008b4c andl $15, %r8d + 0x48, 0x01, 0xc6, //0x00008b50 addq %rax, %rsi + 0xe9, 0x62, 0xfe, 0xff, 0xff, //0x00008b53 jmp LBB36_4 + //0x00008b58 LBB36_14 + 0x4d, 0x89, 0xc2, //0x00008b58 movq %r8, %r10 + 0x49, 0x83, 0xe2, 0xf8, //0x00008b5b andq $-8, %r10 + 0x4e, 0x8d, 0x1c, 0x16, //0x00008b5f leaq (%rsi,%r10), %r11 + 0x45, 0x89, 0xc1, //0x00008b63 movl %r8d, %r9d + 0x41, 0x83, 0xe1, 0x07, //0x00008b66 andl $7, %r9d + 0x4a, 0x8d, 0x14, 0x17, //0x00008b6a leaq (%rdi,%r10), %rdx + 0xc5, 0xf9, 0x6f, 0x05, 0xea, 0xfc, 0xff, 0xff, //0x00008b6e vmovdqa $-790(%rip), %xmm0 /* LCPI36_6+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xf2, 0xfc, 0xff, 0xff, //0x00008b76 vmovdqa $-782(%rip), %xmm1 /* LCPI36_7+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xfa, 0xfc, 0xff, 0xff, //0x00008b7e vmovdqa $-774(%rip), %xmm2 /* LCPI36_8+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b86 .p2align 4, 0x90 + //0x00008b90 LBB36_15 + 0xc5, 0xfa, 0x7e, 0x1c, 0x06, //0x00008b90 vmovq (%rsi,%rax), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x00008b95 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xde, 0xe9, //0x00008b99 vpmaxub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x00008b9d vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x00008ba1 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x51, 0x4c, 0xdb, 0x40, //0x00008ba5 vpblendvb %xmm4, %xmm3, %xmm5, %xmm3 + 0xc5, 0xf9, 0xd6, 0x1c, 0x07, //0x00008bab vmovq %xmm3, (%rdi,%rax) + 0x48, 0x83, 0xc0, 0x08, //0x00008bb0 addq $8, %rax + 0x49, 0x39, 0xc2, //0x00008bb4 cmpq %rax, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x00008bb7 jne LBB36_15 + 0x4d, 0x39, 0xd0, //0x00008bbd cmpq %r10, %r8 + 0x0f, 0x85, 0xfd, 0xfd, 0xff, 0xff, //0x00008bc0 jne LBB36_17 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x00008bc6 jmp LBB36_32 + //0x00008bcb LBB36_20 + 0x31, 0xd2, //0x00008bcb xorl %edx, %edx + 0x41, 0xf6, 0xc1, 0x01, //0x00008bcd testb $1, %r9b + 0x0f, 0x85, 0x33, 0xff, 0xff, 0xff, //0x00008bd1 jne LBB36_24 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00008bd7 jmp LBB36_25 + 0x90, 0x90, 0x90, 0x90, //0x00008bdc .p2align 4, 0x90 + //0x00008be0 _format_significand + 0x55, //0x00008be0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008be1 movq %rsp, %rbp + 0x41, 0x56, //0x00008be4 pushq %r14 + 0x53, //0x00008be6 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00008be7 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00008bea addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00008bed movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00008bf0 shrq $32, %rax + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00008bf4 jne LBB37_2 + 0x45, 0x31, 0xc9, //0x00008bfa xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008bfd movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008c00 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008c03 cmpl $10000, %edx + 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00008c09 jae LBB37_8 + //0x00008c0f LBB37_7 + 0x89, 0xd7, //0x00008c0f movl %edx, %edi + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00008c11 jmp LBB37_10 + //0x00008c16 LBB37_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008c16 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00008c20 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00008c23 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00008c26 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008c2a imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00008c30 addl %edi, %ecx + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00008c32 je LBB37_3 + 0x89, 0xc8, //0x00008c38 movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008c3a movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00008c40 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00008c44 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008c48 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008c4e subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008c50 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008c53 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008c57 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008c5b imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008c61 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008c63 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008c66 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008c69 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008c70 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008c74 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008c78 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008c7a movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008c7e movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008c81 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008c84 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008c8a shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008c8d imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008c90 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008c92 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x53, 0x37, 0x00, 0x00, //0x00008c96 leaq $14163(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008c9d movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008ca2 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008ca7 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008cac movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008cb1 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008cb6 movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008cbb movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008cbf movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008cc4 xorl %r9d, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00008cc7 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ccb cmpl $10000, %edx + 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00008cd1 jb LBB37_7 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00008cd7 jmp LBB37_8 + //0x00008cdc LBB37_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008cdc movl $8, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00008ce2 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008ce6 cmpl $10000, %edx + 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00008cec jb LBB37_7 + //0x00008cf2 LBB37_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008cf2 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xf1, 0x36, 0x00, 0x00, //0x00008cf8 leaq $14065(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008cff .p2align 4, 0x90 + //0x00008d00 LBB37_9 + 0x89, 0xd7, //0x00008d00 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008d02 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008d06 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008d0a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008d10 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008d12 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008d19 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008d1d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008d20 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008d22 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008d27 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008d2c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008d31 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008d36 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008d3a cmpl $99999999, %edx + 0x89, 0xfa, //0x00008d40 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008d42 ja LBB37_9 + //0x00008d48 LBB37_10 + 0x83, 0xff, 0x64, //0x00008d48 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008d4b jae LBB37_11 + 0x83, 0xff, 0x0a, //0x00008d51 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008d54 jb LBB37_14 + //0x00008d5a LBB37_13 + 0x89, 0xf8, //0x00008d5a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x8d, 0x36, 0x00, 0x00, //0x00008d5c leaq $13965(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008d63 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008d67 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008d6c jmp LBB37_15 + //0x00008d71 LBB37_11 + 0x0f, 0xb7, 0xc7, //0x00008d71 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008d74 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008d77 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008d7d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008d80 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008d83 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008d85 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x61, 0x36, 0x00, 0x00, //0x00008d88 leaq $13921(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d8f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008d93 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008d98 addq $-2, %r14 + 0x89, 0xc7, //0x00008d9c movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008d9e cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008da1 jae LBB37_13 + //0x00008da7 LBB37_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008da7 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008dab movb %dil, (%rsi) + //0x00008dae LBB37_15 + 0x4d, 0x29, 0xc8, //0x00008dae subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008db1 movq %r8, %rax + 0x5b, //0x00008db4 popq %rbx + 0x41, 0x5e, //0x00008db5 popq %r14 + 0x5d, //0x00008db7 popq %rbp + 0xc3, //0x00008db8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008db9 .p2align 4, 0x90 + //0x00008dc0 _left_shift + 0x55, //0x00008dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008dc1 movq %rsp, %rbp + 0x41, 0x57, //0x00008dc4 pushq %r15 + 0x41, 0x56, //0x00008dc6 pushq %r14 + 0x53, //0x00008dc8 pushq %rbx + 0x89, 0xf1, //0x00008dc9 movl %esi, %ecx + 0x4c, 0x6b, 0xf1, 0x68, //0x00008dcb imulq $104, %rcx, %r14 + 0x48, 0x8d, 0x15, 0x0a, 0x90, 0x00, 0x00, //0x00008dcf leaq $36874(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x45, 0x8b, 0x04, 0x16, //0x00008dd6 movl (%r14,%rdx), %r8d + 0x4c, 0x8b, 0x1f, //0x00008dda movq (%rdi), %r11 + 0x4c, 0x63, 0x4f, 0x10, //0x00008ddd movslq $16(%rdi), %r9 + 0x45, 0x89, 0xca, //0x00008de1 movl %r9d, %r10d + 0x4d, 0x85, 0xc9, //0x00008de4 testq %r9, %r9 + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00008de7 je LBB38_1 + 0x49, 0x8d, 0x34, 0x16, //0x00008ded leaq (%r14,%rdx), %rsi + 0x48, 0x83, 0xc6, 0x04, //0x00008df1 addq $4, %rsi + 0x31, 0xdb, //0x00008df5 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008df7 .p2align 4, 0x90 + //0x00008e00 LBB38_3 + 0x0f, 0xb6, 0x04, 0x1e, //0x00008e00 movzbl (%rsi,%rbx), %eax + 0x84, 0xc0, //0x00008e04 testb %al, %al + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008e06 je LBB38_10 + 0x41, 0x38, 0x04, 0x1b, //0x00008e0c cmpb %al, (%r11,%rbx) + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00008e10 jne LBB38_5 + 0x48, 0x83, 0xc3, 0x01, //0x00008e16 addq $1, %rbx + 0x49, 0x39, 0xd9, //0x00008e1a cmpq %rbx, %r9 + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00008e1d jne LBB38_3 + 0x44, 0x89, 0xce, //0x00008e23 movl %r9d, %esi + 0x4c, 0x01, 0xf2, //0x00008e26 addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008e29 cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00008e2e jne LBB38_9 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00008e34 jmp LBB38_10 + //0x00008e39 LBB38_1 + 0x31, 0xf6, //0x00008e39 xorl %esi, %esi + 0x4c, 0x01, 0xf2, //0x00008e3b addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008e3e cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00008e43 je LBB38_10 + //0x00008e49 LBB38_9 + 0x41, 0x83, 0xc0, 0xff, //0x00008e49 addl $-1, %r8d + //0x00008e4d LBB38_10 + 0x45, 0x85, 0xd2, //0x00008e4d testl %r10d, %r10d + 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00008e50 jle LBB38_25 + 0x43, 0x8d, 0x04, 0x10, //0x00008e56 leal (%r8,%r10), %eax + 0x4c, 0x63, 0xf8, //0x00008e5a movslq %eax, %r15 + 0x41, 0x83, 0xc1, 0xff, //0x00008e5d addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x00008e61 addq $-1, %r15 + 0x31, 0xd2, //0x00008e65 xorl %edx, %edx + 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00008e67 movabsq $-3689348814741910323, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008e71 .p2align 4, 0x90 + //0x00008e80 LBB38_12 + 0x44, 0x89, 0xc8, //0x00008e80 movl %r9d, %eax + 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00008e83 movsbq (%r11,%rax), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00008e88 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00008e8c shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00008e8f addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00008e92 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x00008e95 mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x00008e98 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008e9c leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008ea0 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00008ea4 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00008ea7 subq %rbx, %rax + 0x4c, 0x39, 0x7f, 0x08, //0x00008eaa cmpq %r15, $8(%rdi) + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x00008eae jbe LBB38_18 + 0x04, 0x30, //0x00008eb4 addb $48, %al + 0x43, 0x88, 0x04, 0x3b, //0x00008eb6 movb %al, (%r11,%r15) + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00008eba jmp LBB38_20 + 0x90, //0x00008ebf .p2align 4, 0x90 + //0x00008ec0 LBB38_18 + 0x48, 0x85, 0xc0, //0x00008ec0 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00008ec3 je LBB38_20 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008ec9 movl $1, $28(%rdi) + //0x00008ed0 LBB38_20 + 0x49, 0x83, 0xfa, 0x02, //0x00008ed0 cmpq $2, %r10 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00008ed4 jl LBB38_14 + 0x49, 0x83, 0xc2, 0xff, //0x00008eda addq $-1, %r10 + 0x4c, 0x8b, 0x1f, //0x00008ede movq (%rdi), %r11 + 0x41, 0x83, 0xc1, 0xff, //0x00008ee1 addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x00008ee5 addq $-1, %r15 + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00008ee9 jmp LBB38_12 + //0x00008eee LBB38_14 + 0x48, 0x83, 0xfe, 0x0a, //0x00008eee cmpq $10, %rsi + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00008ef2 jae LBB38_15 + //0x00008ef8 LBB38_25 + 0x48, 0x63, 0x4f, 0x10, //0x00008ef8 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00008efc movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00008eff addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00008f02 movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00008f05 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00008f09 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00008f0c ja LBB38_27 + 0x89, 0x4f, 0x10, //0x00008f12 movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00008f15 movl %ecx, %eax + //0x00008f17 LBB38_27 + 0x44, 0x01, 0x47, 0x14, //0x00008f17 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00008f1b testl %eax, %eax + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00008f1d jle LBB38_31 + 0x48, 0x8b, 0x0f, //0x00008f23 movq (%rdi), %rcx + 0x89, 0xc2, //0x00008f26 movl %eax, %edx + 0x48, 0x83, 0xc2, 0x01, //0x00008f28 addq $1, %rdx + 0x83, 0xc0, 0xff, //0x00008f2c addl $-1, %eax + 0x90, //0x00008f2f .p2align 4, 0x90 + //0x00008f30 LBB38_29 + 0x89, 0xc6, //0x00008f30 movl %eax, %esi + 0x80, 0x3c, 0x31, 0x30, //0x00008f32 cmpb $48, (%rcx,%rsi) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00008f36 jne LBB38_33 + 0x89, 0x47, 0x10, //0x00008f3c movl %eax, $16(%rdi) + 0x48, 0x83, 0xc2, 0xff, //0x00008f3f addq $-1, %rdx + 0x83, 0xc0, 0xff, //0x00008f43 addl $-1, %eax + 0x48, 0x83, 0xfa, 0x01, //0x00008f46 cmpq $1, %rdx + 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x00008f4a jg LBB38_29 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00008f50 jmp LBB38_32 + //0x00008f55 LBB38_31 + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00008f55 jne LBB38_33 + //0x00008f5b LBB38_32 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00008f5b movl $0, $20(%rdi) + //0x00008f62 LBB38_33 + 0x5b, //0x00008f62 popq %rbx + 0x41, 0x5e, //0x00008f63 popq %r14 + 0x41, 0x5f, //0x00008f65 popq %r15 + 0x5d, //0x00008f67 popq %rbp + 0xc3, //0x00008f68 retq + //0x00008f69 LBB38_15 + 0x45, 0x01, 0xc1, //0x00008f69 addl %r8d, %r9d + 0x49, 0x63, 0xf1, //0x00008f6c movslq %r9d, %rsi + 0x48, 0x83, 0xc6, 0xff, //0x00008f6f addq $-1, %rsi + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00008f73 jmp LBB38_16 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f78 .p2align 4, 0x90 + //0x00008f80 LBB38_17 + 0x04, 0x30, //0x00008f80 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00008f82 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00008f85 movb %al, (%rbx,%rsi) + //0x00008f88 LBB38_24 + 0x48, 0x83, 0xc6, 0xff, //0x00008f88 addq $-1, %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00008f8c cmpq $9, %rcx + 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00008f90 jbe LBB38_25 + //0x00008f96 LBB38_16 + 0x48, 0x89, 0xd1, //0x00008f96 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00008f99 movq %rdx, %rax + 0x49, 0xf7, 0xe6, //0x00008f9c mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x00008f9f shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00008fa3 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00008fa7 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00008fab movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00008fae subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00008fb1 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00008fb5 ja LBB38_17 + 0x48, 0x85, 0xc0, //0x00008fbb testq %rax, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00008fbe je LBB38_24 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00008fc4 movl $1, $28(%rdi) + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00008fcb jmp LBB38_24 + //0x00008fd0 LBB38_5 + 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x00008fd0 jl LBB38_9 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x00008fd6 jmp LBB38_10 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fdb .p2align 4, 0x90 + //0x00008fe0 _right_shift + 0x55, //0x00008fe0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008fe1 movq %rsp, %rbp + 0x53, //0x00008fe4 pushq %rbx + 0x89, 0xf1, //0x00008fe5 movl %esi, %ecx + 0x44, 0x8b, 0x47, 0x10, //0x00008fe7 movl $16(%rdi), %r8d + 0x31, 0xd2, //0x00008feb xorl %edx, %edx + 0x45, 0x85, 0xc0, //0x00008fed testl %r8d, %r8d + 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x00008ff0 movl $0, %r11d + 0x45, 0x0f, 0x4f, 0xd8, //0x00008ff6 cmovgl %r8d, %r11d + 0x31, 0xc0, //0x00008ffa xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x00008ffc .p2align 4, 0x90 + //0x00009000 LBB39_1 + 0x49, 0x39, 0xd3, //0x00009000 cmpq %rdx, %r11 + 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00009003 je LBB39_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009009 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x0000900d movq (%rdi), %rsi + 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x00009010 movsbq (%rsi,%rdx), %rsi + 0x48, 0x8d, 0x04, 0x46, //0x00009015 leaq (%rsi,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x00009019 addq $-48, %rax + 0x48, 0x83, 0xc2, 0x01, //0x0000901d addq $1, %rdx + 0x48, 0x89, 0xc6, //0x00009021 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009024 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00009027 testq %rsi, %rsi + 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x0000902a je LBB39_1 + 0x41, 0x89, 0xd3, //0x00009030 movl %edx, %r11d + //0x00009033 LBB39_7 + 0x8b, 0x57, 0x14, //0x00009033 movl $20(%rdi), %edx + 0x44, 0x29, 0xda, //0x00009036 subl %r11d, %edx + 0x83, 0xc2, 0x01, //0x00009039 addl $1, %edx + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000903c movq $-1, %r9 + 0x49, 0xd3, 0xe1, //0x00009043 shlq %cl, %r9 + 0x89, 0x57, 0x14, //0x00009046 movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd1, //0x00009049 notq %r9 + 0x45, 0x31, 0xd2, //0x0000904c xorl %r10d, %r10d + 0x45, 0x39, 0xc3, //0x0000904f cmpl %r8d, %r11d + 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009052 jge LBB39_10 + 0x4d, 0x63, 0xc3, //0x00009058 movslq %r11d, %r8 + 0x48, 0x8b, 0x37, //0x0000905b movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x0000905e xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009061 .p2align 4, 0x90 + //0x00009070 LBB39_9 + 0x48, 0x89, 0xc2, //0x00009070 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009073 shrq %cl, %rdx + 0x4c, 0x21, 0xc8, //0x00009076 andq %r9, %rax + 0x80, 0xc2, 0x30, //0x00009079 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x0000907c movb %dl, (%rsi,%r10) + 0x48, 0x8b, 0x37, //0x00009080 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x06, //0x00009083 leaq (%rsi,%r8), %rdx + 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009087 movsbq (%r10,%rdx), %r11 + 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x0000908c leaq $1(%r8,%r10), %rbx + 0x49, 0x83, 0xc2, 0x01, //0x00009091 addq $1, %r10 + 0x48, 0x8d, 0x04, 0x80, //0x00009095 leaq (%rax,%rax,4), %rax + 0x49, 0x8d, 0x04, 0x43, //0x00009099 leaq (%r11,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x0000909d addq $-48, %rax + 0x48, 0x63, 0x57, 0x10, //0x000090a1 movslq $16(%rdi), %rdx + 0x48, 0x39, 0xd3, //0x000090a5 cmpq %rdx, %rbx + 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x000090a8 jl LBB39_9 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x000090ae jmp LBB39_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090b3 .p2align 4, 0x90 + //0x000090c0 LBB39_12 + 0x40, 0x80, 0xc6, 0x30, //0x000090c0 addb $48, %sil + 0x48, 0x8b, 0x1f, //0x000090c4 movq (%rdi), %rbx + 0x40, 0x88, 0x34, 0x13, //0x000090c7 movb %sil, (%rbx,%rdx) + 0x83, 0xc2, 0x01, //0x000090cb addl $1, %edx + 0x41, 0x89, 0xd2, //0x000090ce movl %edx, %r10d + //0x000090d1 LBB39_15 + 0x48, 0x01, 0xc0, //0x000090d1 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000090d4 leaq (%rax,%rax,4), %rax + //0x000090d8 LBB39_10 + 0x48, 0x85, 0xc0, //0x000090d8 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000090db je LBB39_16 + 0x48, 0x89, 0xc6, //0x000090e1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x000090e4 shrq %cl, %rsi + 0x4c, 0x21, 0xc8, //0x000090e7 andq %r9, %rax + 0x49, 0x63, 0xd2, //0x000090ea movslq %r10d, %rdx + 0x48, 0x39, 0x57, 0x08, //0x000090ed cmpq %rdx, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000090f1 ja LBB39_12 + 0x48, 0x85, 0xf6, //0x000090f7 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000090fa je LBB39_15 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009100 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009107 jmp LBB39_15 + //0x0000910c LBB39_16 + 0x44, 0x89, 0x57, 0x10, //0x0000910c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00009110 testl %r10d, %r10d + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x00009113 jle LBB39_20 + 0x48, 0x8b, 0x07, //0x00009119 movq (%rdi), %rax + 0x44, 0x89, 0xd1, //0x0000911c movl %r10d, %ecx + 0x48, 0x83, 0xc1, 0x01, //0x0000911f addq $1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x00009123 addl $-1, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009127 .p2align 4, 0x90 + //0x00009130 LBB39_18 + 0x44, 0x89, 0xd2, //0x00009130 movl %r10d, %edx + 0x80, 0x3c, 0x10, 0x30, //0x00009133 cmpb $48, (%rax,%rdx) + 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009137 jne LBB39_22 + 0x44, 0x89, 0x57, 0x10, //0x0000913d movl %r10d, $16(%rdi) + 0x48, 0x83, 0xc1, 0xff, //0x00009141 addq $-1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x00009145 addl $-1, %r10d + 0x48, 0x83, 0xf9, 0x01, //0x00009149 cmpq $1, %rcx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x0000914d jg LBB39_18 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009153 jmp LBB39_21 + //0x00009158 LBB39_2 + 0x48, 0x85, 0xc0, //0x00009158 testq %rax, %rax + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000915b je LBB39_23 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009161 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009170 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009173 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009176 testq %rdx, %rdx + 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009179 jne LBB39_7 + //0x0000917f LBB39_4 + 0x48, 0x01, 0xc0, //0x0000917f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009182 leaq (%rax,%rax,4), %rax + 0x41, 0x83, 0xc3, 0x01, //0x00009186 addl $1, %r11d + 0x48, 0x89, 0xc2, //0x0000918a movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x0000918d shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009190 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009193 je LBB39_4 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009199 jmp LBB39_7 + //0x0000919e LBB39_20 + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x0000919e je LBB39_21 + //0x000091a4 LBB39_22 + 0x5b, //0x000091a4 popq %rbx + 0x5d, //0x000091a5 popq %rbp + 0xc3, //0x000091a6 retq + //0x000091a7 LBB39_21 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x000091a7 movl $0, $20(%rdi) + 0x5b, //0x000091ae popq %rbx + 0x5d, //0x000091af popq %rbp + 0xc3, //0x000091b0 retq + //0x000091b1 LBB39_23 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x000091b1 movl $0, $16(%rdi) + 0x5b, //0x000091b8 popq %rbx + 0x5d, //0x000091b9 popq %rbp + 0xc3, //0x000091ba retq + 0x00, 0x00, 0x00, 0x00, 0x00, //0x000091bb .p2align 4, 0x00 + //0x000091c0 LCPI40_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000091c0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000091d0 LCPI40_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000091d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000091e0 .p2align 4, 0x90 + //0x000091e0 _advance_string_default + 0x55, //0x000091e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000091e1 movq %rsp, %rbp + 0x41, 0x57, //0x000091e4 pushq %r15 + 0x41, 0x56, //0x000091e6 pushq %r14 + 0x41, 0x55, //0x000091e8 pushq %r13 + 0x41, 0x54, //0x000091ea pushq %r12 + 0x53, //0x000091ec pushq %rbx + 0x50, //0x000091ed pushq %rax + 0x4c, 0x8b, 0x7f, 0x08, //0x000091ee movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x000091f2 subq %rsi, %r15 + 0x0f, 0x84, 0x68, 0x03, 0x00, 0x00, //0x000091f5 je LBB40_17 + 0x4c, 0x8b, 0x0f, //0x000091fb movq (%rdi), %r9 + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000091fe movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x00009205 cmpq $64, %r15 + 0x0f, 0x82, 0xdf, 0x01, 0x00, 0x00, //0x00009209 jb LBB40_18 + 0x48, 0x89, 0xf7, //0x0000920f movq %rsi, %rdi + 0x48, 0xf7, 0xd7, //0x00009212 notq %rdi + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00009215 movq $-1, $-48(%rbp) + 0x45, 0x31, 0xf6, //0x0000921d xorl %r14d, %r14d + 0xc5, 0xf9, 0x6f, 0x05, 0x98, 0xff, 0xff, 0xff, //0x00009220 vmovdqa $-104(%rip), %xmm0 /* LCPI40_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xa0, 0xff, 0xff, 0xff, //0x00009228 vmovdqa $-96(%rip), %xmm1 /* LCPI40_1+0(%rip) */ + //0x00009230 .p2align 4, 0x90 + //0x00009230 LBB40_3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x14, 0x31, //0x00009230 vmovdqu (%r9,%rsi), %xmm2 + 0xc4, 0xc1, 0x7a, 0x6f, 0x5c, 0x31, 0x10, //0x00009236 vmovdqu $16(%r9,%rsi), %xmm3 + 0xc4, 0xc1, 0x7a, 0x6f, 0x64, 0x31, 0x20, //0x0000923d vmovdqu $32(%r9,%rsi), %xmm4 + 0xc4, 0xc1, 0x7a, 0x6f, 0x6c, 0x31, 0x30, //0x00009244 vmovdqu $48(%r9,%rsi), %xmm5 + 0xc5, 0xe9, 0x74, 0xf0, //0x0000924b vpcmpeqb %xmm0, %xmm2, %xmm6 + 0xc5, 0x79, 0xd7, 0xe6, //0x0000924f vpmovmskb %xmm6, %r12d + 0xc5, 0xe1, 0x74, 0xf0, //0x00009253 vpcmpeqb %xmm0, %xmm3, %xmm6 + 0xc5, 0xf9, 0xd7, 0xde, //0x00009257 vpmovmskb %xmm6, %ebx + 0xc5, 0xd9, 0x74, 0xf0, //0x0000925b vpcmpeqb %xmm0, %xmm4, %xmm6 + 0xc5, 0xf9, 0xd7, 0xc6, //0x0000925f vpmovmskb %xmm6, %eax + 0xc5, 0xd1, 0x74, 0xf0, //0x00009263 vpcmpeqb %xmm0, %xmm5, %xmm6 + 0xc5, 0x79, 0xd7, 0xc6, //0x00009267 vpmovmskb %xmm6, %r8d + 0xc5, 0xe9, 0x74, 0xd1, //0x0000926b vpcmpeqb %xmm1, %xmm2, %xmm2 + 0xc5, 0x79, 0xd7, 0xea, //0x0000926f vpmovmskb %xmm2, %r13d + 0xc5, 0xe1, 0x74, 0xd1, //0x00009273 vpcmpeqb %xmm1, %xmm3, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x00009277 vpmovmskb %xmm2, %ecx + 0xc5, 0xd9, 0x74, 0xd1, //0x0000927b vpcmpeqb %xmm1, %xmm4, %xmm2 + 0xc5, 0x79, 0xd7, 0xd2, //0x0000927f vpmovmskb %xmm2, %r10d + 0xc5, 0xd1, 0x74, 0xd1, //0x00009283 vpcmpeqb %xmm1, %xmm5, %xmm2 + 0xc5, 0x79, 0xd7, 0xda, //0x00009287 vpmovmskb %xmm2, %r11d + 0x49, 0xc1, 0xe0, 0x30, //0x0000928b shlq $48, %r8 + 0x48, 0xc1, 0xe0, 0x20, //0x0000928f shlq $32, %rax + 0x4c, 0x09, 0xc0, //0x00009293 orq %r8, %rax + 0x48, 0xc1, 0xe3, 0x10, //0x00009296 shlq $16, %rbx + 0x48, 0x09, 0xc3, //0x0000929a orq %rax, %rbx + 0x49, 0x09, 0xdc, //0x0000929d orq %rbx, %r12 + 0x49, 0xc1, 0xe3, 0x30, //0x000092a0 shlq $48, %r11 + 0x49, 0xc1, 0xe2, 0x20, //0x000092a4 shlq $32, %r10 + 0x4d, 0x09, 0xda, //0x000092a8 orq %r11, %r10 + 0x48, 0xc1, 0xe1, 0x10, //0x000092ab shlq $16, %rcx + 0x4c, 0x09, 0xd1, //0x000092af orq %r10, %rcx + 0x49, 0x09, 0xcd, //0x000092b2 orq %rcx, %r13 + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000092b5 jne LBB40_7 + 0x4d, 0x85, 0xf6, //0x000092bb testq %r14, %r14 + 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x000092be jne LBB40_9 + 0x45, 0x31, 0xf6, //0x000092c4 xorl %r14d, %r14d + 0x4d, 0x85, 0xe4, //0x000092c7 testq %r12, %r12 + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000092ca jne LBB40_10 + //0x000092d0 LBB40_6 + 0x49, 0x83, 0xc7, 0xc0, //0x000092d0 addq $-64, %r15 + 0x48, 0x83, 0xc7, 0xc0, //0x000092d4 addq $-64, %rdi + 0x48, 0x83, 0xc6, 0x40, //0x000092d8 addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x000092dc cmpq $63, %r15 + 0x0f, 0x87, 0x4a, 0xff, 0xff, 0xff, //0x000092e0 ja LBB40_3 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000092e6 jmp LBB40_12 + //0x000092eb LBB40_7 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000092eb cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000092f0 jne LBB40_9 + 0x49, 0x0f, 0xbc, 0xc5, //0x000092f6 bsfq %r13, %rax + 0x48, 0x01, 0xf0, //0x000092fa addq %rsi, %rax + 0x48, 0x89, 0x45, 0xd0, //0x000092fd movq %rax, $-48(%rbp) + 0x48, 0x89, 0x02, //0x00009301 movq %rax, (%rdx) + //0x00009304 LBB40_9 + 0x4c, 0x89, 0xf0, //0x00009304 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00009307 notq %rax + 0x4c, 0x21, 0xe8, //0x0000930a andq %r13, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x0000930d leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf0, //0x00009311 orq %r14, %r8 + 0x4c, 0x89, 0xc1, //0x00009314 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009317 notq %rcx + 0x4c, 0x21, 0xe9, //0x0000931a andq %r13, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000931d movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xd9, //0x00009327 andq %rbx, %rcx + 0x45, 0x31, 0xf6, //0x0000932a xorl %r14d, %r14d + 0x48, 0x01, 0xc1, //0x0000932d addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc6, //0x00009330 setb %r14b + 0x48, 0x01, 0xc9, //0x00009334 addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00009337 movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x00009341 xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x00009344 andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00009347 notq %rcx + 0x49, 0x21, 0xcc, //0x0000934a andq %rcx, %r12 + 0x4d, 0x85, 0xe4, //0x0000934d testq %r12, %r12 + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00009350 je LBB40_6 + //0x00009356 LBB40_10 + 0x49, 0x0f, 0xbc, 0xc4, //0x00009356 bsfq %r12, %rax + 0x48, 0x29, 0xf8, //0x0000935a subq %rdi, %rax + //0x0000935d LBB40_11 + 0x48, 0x83, 0xc4, 0x08, //0x0000935d addq $8, %rsp + 0x5b, //0x00009361 popq %rbx + 0x41, 0x5c, //0x00009362 popq %r12 + 0x41, 0x5d, //0x00009364 popq %r13 + 0x41, 0x5e, //0x00009366 popq %r14 + 0x41, 0x5f, //0x00009368 popq %r15 + 0x5d, //0x0000936a popq %rbp + 0xc3, //0x0000936b retq + //0x0000936c LBB40_12 + 0x4c, 0x01, 0xce, //0x0000936c addq %r9, %rsi + 0x49, 0x83, 0xff, 0x20, //0x0000936f cmpq $32, %r15 + 0x0f, 0x82, 0xf2, 0x00, 0x00, 0x00, //0x00009373 jb LBB40_23 + //0x00009379 LBB40_13 + 0xc5, 0xfa, 0x6f, 0x06, //0x00009379 vmovdqu (%rsi), %xmm0 + 0xc5, 0xfa, 0x6f, 0x4e, 0x10, //0x0000937d vmovdqu $16(%rsi), %xmm1 + 0xc5, 0xf9, 0x6f, 0x15, 0x36, 0xfe, 0xff, 0xff, //0x00009382 vmovdqa $-458(%rip), %xmm2 /* LCPI40_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x1d, 0x3e, 0xfe, 0xff, 0xff, //0x0000938a vmovdqa $-450(%rip), %xmm3 /* LCPI40_1+0(%rip) */ + 0xc5, 0xf9, 0x74, 0xe2, //0x00009392 vpcmpeqb %xmm2, %xmm0, %xmm4 + 0xc5, 0xf9, 0xd7, 0xfc, //0x00009396 vpmovmskb %xmm4, %edi + 0xc5, 0xf1, 0x74, 0xd2, //0x0000939a vpcmpeqb %xmm2, %xmm1, %xmm2 + 0xc5, 0xf9, 0xd7, 0xca, //0x0000939e vpmovmskb %xmm2, %ecx + 0xc5, 0xf9, 0x74, 0xc3, //0x000093a2 vpcmpeqb %xmm3, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000093a6 vpmovmskb %xmm0, %eax + 0xc5, 0xf1, 0x74, 0xc3, //0x000093aa vpcmpeqb %xmm3, %xmm1, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd8, //0x000093ae vpmovmskb %xmm0, %ebx + 0x48, 0xc1, 0xe1, 0x10, //0x000093b2 shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x000093b6 orq %rcx, %rdi + 0x48, 0xc1, 0xe3, 0x10, //0x000093b9 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000093bd orq %rbx, %rax + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x000093c0 jne LBB40_19 + 0x4d, 0x85, 0xf6, //0x000093c6 testq %r14, %r14 + 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x000093c9 jne LBB40_21 + 0x45, 0x31, 0xf6, //0x000093cf xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x000093d2 testq %rdi, %rdi + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x000093d5 je LBB40_22 + //0x000093db LBB40_16 + 0x48, 0x0f, 0xbc, 0xc7, //0x000093db bsfq %rdi, %rax + 0x4c, 0x29, 0xce, //0x000093df subq %r9, %rsi + 0x48, 0x01, 0xf0, //0x000093e2 addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x000093e5 addq $1, %rax + 0xe9, 0x6f, 0xff, 0xff, 0xff, //0x000093e9 jmp LBB40_11 + //0x000093ee LBB40_18 + 0x4c, 0x01, 0xce, //0x000093ee addq %r9, %rsi + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000093f1 movq $-1, $-48(%rbp) + 0x45, 0x31, 0xf6, //0x000093f9 xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x000093fc cmpq $32, %r15 + 0x0f, 0x83, 0x73, 0xff, 0xff, 0xff, //0x00009400 jae LBB40_13 + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00009406 jmp LBB40_23 + //0x0000940b LBB40_19 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x0000940b cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x14, 0x00, 0x00, 0x00, //0x00009410 jne LBB40_21 + 0x48, 0x89, 0xf1, //0x00009416 movq %rsi, %rcx + 0x4c, 0x29, 0xc9, //0x00009419 subq %r9, %rcx + 0x48, 0x0f, 0xbc, 0xd8, //0x0000941c bsfq %rax, %rbx + 0x48, 0x01, 0xcb, //0x00009420 addq %rcx, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00009423 movq %rbx, $-48(%rbp) + 0x48, 0x89, 0x1a, //0x00009427 movq %rbx, (%rdx) + //0x0000942a LBB40_21 + 0x44, 0x89, 0xf1, //0x0000942a movl %r14d, %ecx + 0xf7, 0xd1, //0x0000942d notl %ecx + 0x21, 0xc1, //0x0000942f andl %eax, %ecx + 0x45, 0x8d, 0x04, 0x4e, //0x00009431 leal (%r14,%rcx,2), %r8d + 0x8d, 0x1c, 0x09, //0x00009435 leal (%rcx,%rcx), %ebx + 0xf7, 0xd3, //0x00009438 notl %ebx + 0x21, 0xc3, //0x0000943a andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000943c andl $-1431655766, %ebx + 0x45, 0x31, 0xf6, //0x00009442 xorl %r14d, %r14d + 0x01, 0xcb, //0x00009445 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc6, //0x00009447 setb %r14b + 0x01, 0xdb, //0x0000944b addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000944d xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x00009453 andl %r8d, %ebx + 0xf7, 0xd3, //0x00009456 notl %ebx + 0x21, 0xdf, //0x00009458 andl %ebx, %edi + 0x48, 0x85, 0xff, //0x0000945a testq %rdi, %rdi + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x0000945d jne LBB40_16 + //0x00009463 LBB40_22 + 0x48, 0x83, 0xc6, 0x20, //0x00009463 addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00009467 addq $-32, %r15 + //0x0000946b LBB40_23 + 0x4d, 0x85, 0xf6, //0x0000946b testq %r14, %r14 + 0x0f, 0x85, 0xb5, 0x00, 0x00, 0x00, //0x0000946e jne LBB40_37 + 0x4d, 0x85, 0xff, //0x00009474 testq %r15, %r15 + 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00009477 je LBB40_36 + //0x0000947d LBB40_25 + 0x4c, 0x89, 0xcf, //0x0000947d movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x00009480 notq %rdi + 0x48, 0x83, 0xc7, 0x01, //0x00009483 addq $1, %rdi + //0x00009487 LBB40_26 + 0x31, 0xc0, //0x00009487 xorl %eax, %eax + //0x00009489 LBB40_27 + 0x48, 0x89, 0xc3, //0x00009489 movq %rax, %rbx + 0x0f, 0xb6, 0x0c, 0x06, //0x0000948c movzbl (%rsi,%rax), %ecx + 0x80, 0xf9, 0x22, //0x00009490 cmpb $34, %cl + 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x00009493 je LBB40_35 + 0x80, 0xf9, 0x5c, //0x00009499 cmpb $92, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000949c je LBB40_30 + 0x48, 0x8d, 0x43, 0x01, //0x000094a2 leaq $1(%rbx), %rax + 0x49, 0x39, 0xc7, //0x000094a6 cmpq %rax, %r15 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x000094a9 jne LBB40_27 + 0xe9, 0x53, 0x00, 0x00, 0x00, //0x000094af jmp LBB40_34 + //0x000094b4 LBB40_30 + 0x49, 0x8d, 0x4f, 0xff, //0x000094b4 leaq $-1(%r15), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000094b8 movq $-1, %rax + 0x48, 0x39, 0xd9, //0x000094bf cmpq %rbx, %rcx + 0x0f, 0x84, 0x95, 0xfe, 0xff, 0xff, //0x000094c2 je LBB40_11 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000094c8 cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000094cd jne LBB40_33 + 0x48, 0x8d, 0x0c, 0x37, //0x000094d3 leaq (%rdi,%rsi), %rcx + 0x48, 0x01, 0xd9, //0x000094d7 addq %rbx, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x000094da movq %rcx, $-48(%rbp) + 0x48, 0x89, 0x0a, //0x000094de movq %rcx, (%rdx) + //0x000094e1 LBB40_33 + 0x48, 0x01, 0xde, //0x000094e1 addq %rbx, %rsi + 0x48, 0x83, 0xc6, 0x02, //0x000094e4 addq $2, %rsi + 0x4c, 0x89, 0xf9, //0x000094e8 movq %r15, %rcx + 0x48, 0x29, 0xd9, //0x000094eb subq %rbx, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000094ee addq $-2, %rcx + 0x49, 0x83, 0xc7, 0xfe, //0x000094f2 addq $-2, %r15 + 0x49, 0x39, 0xdf, //0x000094f6 cmpq %rbx, %r15 + 0x49, 0x89, 0xcf, //0x000094f9 movq %rcx, %r15 + 0x0f, 0x85, 0x85, 0xff, 0xff, 0xff, //0x000094fc jne LBB40_26 + 0xe9, 0x56, 0xfe, 0xff, 0xff, //0x00009502 jmp LBB40_11 + //0x00009507 LBB40_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009507 movq $-1, %rax + 0x80, 0xf9, 0x22, //0x0000950e cmpb $34, %cl + 0x0f, 0x85, 0x46, 0xfe, 0xff, 0xff, //0x00009511 jne LBB40_11 + //0x00009517 LBB40_35 + 0x48, 0x01, 0xde, //0x00009517 addq %rbx, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x0000951a addq $1, %rsi + //0x0000951e LBB40_36 + 0x4c, 0x29, 0xce, //0x0000951e subq %r9, %rsi + 0x48, 0x89, 0xf0, //0x00009521 movq %rsi, %rax + 0xe9, 0x34, 0xfe, 0xff, 0xff, //0x00009524 jmp LBB40_11 + //0x00009529 LBB40_37 + 0x4d, 0x85, 0xff, //0x00009529 testq %r15, %r15 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x0000952c je LBB40_17 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x00009532 cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009537 jne LBB40_40 + 0x4c, 0x89, 0xc8, //0x0000953d movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00009540 notq %rax + 0x48, 0x01, 0xf0, //0x00009543 addq %rsi, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00009546 movq %rax, $-48(%rbp) + 0x48, 0x89, 0x02, //0x0000954a movq %rax, (%rdx) + //0x0000954d LBB40_40 + 0x48, 0x83, 0xc6, 0x01, //0x0000954d addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x00009551 addq $-1, %r15 + 0x4d, 0x85, 0xff, //0x00009555 testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0xff, 0xff, 0xff, //0x00009558 jne LBB40_25 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x0000955e jmp LBB40_36 + //0x00009563 LBB40_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00009563 movq $-1, %rax + 0xe9, 0xee, 0xfd, 0xff, 0xff, //0x0000956a jmp LBB40_11 + 0x90, //0x0000956f .p2align 4, 0x90 + //0x00009570 _unescape + 0x55, //0x00009570 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009571 movq %rsp, %rbp + 0x41, 0x57, //0x00009574 pushq %r15 + 0x41, 0x56, //0x00009576 pushq %r14 + 0x41, 0x55, //0x00009578 pushq %r13 + 0x41, 0x54, //0x0000957a pushq %r12 + 0x53, //0x0000957c pushq %rbx + 0x50, //0x0000957d pushq %rax + 0x4c, 0x8b, 0x2f, //0x0000957e movq (%rdi), %r13 + 0x4c, 0x29, 0xee, //0x00009581 subq %r13, %rsi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00009584 movq $-1, %rbx + 0x48, 0x85, 0xf6, //0x0000958b testq %rsi, %rsi + 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000958e jle LBB41_13 + 0x49, 0x89, 0xd6, //0x00009594 movq %rdx, %r14 + 0x49, 0x89, 0xff, //0x00009597 movq %rdi, %r15 + 0x49, 0x8d, 0x45, 0x01, //0x0000959a leaq $1(%r13), %rax + 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000959e movzbl $1(%r13), %ecx + 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x000095a3 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x000095aa movb (%rcx,%rdx), %cl + 0x80, 0xf9, 0xff, //0x000095ad cmpb $-1, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000095b0 je LBB41_4 + 0x84, 0xc9, //0x000095b6 testb %cl, %cl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000095b8 jne LBB41_6 + 0x49, 0x89, 0x07, //0x000095be movq %rax, (%r15) + 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x000095c1 movq $-3, %rbx + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000095c8 jmp LBB41_13 + //0x000095cd LBB41_4 + 0x48, 0x83, 0xfe, 0x03, //0x000095cd cmpq $3, %rsi + 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x000095d1 jg LBB41_7 + 0x49, 0x89, 0x07, //0x000095d7 movq %rax, (%r15) + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000095da jmp LBB41_13 + //0x000095df LBB41_6 + 0x41, 0x88, 0x0e, //0x000095df movb %cl, (%r14) + 0x49, 0x83, 0x07, 0x02, //0x000095e2 addq $2, (%r15) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000095e6 movl $1, %ebx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x000095eb jmp LBB41_13 + //0x000095f0 LBB41_7 + 0x41, 0x8b, 0x4d, 0x02, //0x000095f0 movl $2(%r13), %ecx + 0x89, 0xc8, //0x000095f4 movl %ecx, %eax + 0xf7, 0xd0, //0x000095f6 notl %eax + 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x000095f8 leal $-808464432(%rcx), %edx + 0x25, 0x80, 0x80, 0x80, 0x80, //0x000095fe andl $-2139062144, %eax + 0x85, 0xd0, //0x00009603 testl %edx, %eax + 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x00009605 jne LBB41_11 + 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x0000960b leal $421075225(%rcx), %edx + 0x09, 0xca, //0x00009611 orl %ecx, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00009613 testl $-2139062144, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009619 jne LBB41_11 + 0x89, 0xca, //0x0000961f movl %ecx, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x00009621 andl $2139062143, %edx + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00009627 movl $-1061109568, %edi + 0x29, 0xd7, //0x0000962c subl %edx, %edi + 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000962e leal $1179010630(%rdx), %ebx + 0x21, 0xc7, //0x00009634 andl %eax, %edi + 0x85, 0xdf, //0x00009636 testl %ebx, %edi + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00009638 jne LBB41_11 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000963e movl $-522133280, %edi + 0x29, 0xd7, //0x00009643 subl %edx, %edi + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00009645 addl $960051513, %edx + 0x21, 0xf8, //0x0000964b andl %edi, %eax + 0x85, 0xd0, //0x0000964d testl %edx, %eax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000964f je LBB41_14 + //0x00009655 LBB41_11 + 0x49, 0x83, 0xc5, 0x02, //0x00009655 addq $2, %r13 + 0x4d, 0x89, 0x2f, //0x00009659 movq %r13, (%r15) + //0x0000965c LBB41_12 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000965c movq $-2, %rbx + //0x00009663 LBB41_13 + 0x48, 0x89, 0xd8, //0x00009663 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00009666 addq $8, %rsp + 0x5b, //0x0000966a popq %rbx + 0x41, 0x5c, //0x0000966b popq %r12 + 0x41, 0x5d, //0x0000966d popq %r13 + 0x41, 0x5e, //0x0000966f popq %r14 + 0x41, 0x5f, //0x00009671 popq %r15 + 0x5d, //0x00009673 popq %rbp + 0xc3, //0x00009674 retq + //0x00009675 LBB41_14 + 0x0f, 0xc9, //0x00009675 bswapl %ecx + 0x89, 0xc8, //0x00009677 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009679 shrl $4, %eax + 0xf7, 0xd0, //0x0000967c notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000967e andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00009683 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00009686 andl $252645135, %ecx + 0x01, 0xc1, //0x0000968c addl %eax, %ecx + 0x89, 0xc8, //0x0000968e movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009690 shrl $4, %eax + 0x09, 0xc8, //0x00009693 orl %ecx, %eax + 0x89, 0xc1, //0x00009695 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00009697 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000969a andl $65280, %ecx + 0x44, 0x0f, 0xb6, 0xe0, //0x000096a0 movzbl %al, %r12d + 0x41, 0x09, 0xcc, //0x000096a4 orl %ecx, %r12d + 0x49, 0x8d, 0x55, 0x06, //0x000096a7 leaq $6(%r13), %rdx + 0x49, 0x89, 0x17, //0x000096ab movq %rdx, (%r15) + 0x41, 0x83, 0xfc, 0x7f, //0x000096ae cmpl $127, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000096b2 jbe LBB41_18 + 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x000096b8 cmpl $2047, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000096bf jbe LBB41_19 + 0x89, 0xc7, //0x000096c5 movl %eax, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x000096c7 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x000096cd cmpl $14155776, %edi + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000096d3 je LBB41_20 + 0xc1, 0xe9, 0x0c, //0x000096d9 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000096dc orb $-32, %cl + 0x41, 0x88, 0x0e, //0x000096df movb %cl, (%r14) + 0x41, 0xc1, 0xec, 0x06, //0x000096e2 shrl $6, %r12d + 0x41, 0x80, 0xe4, 0x3f, //0x000096e6 andb $63, %r12b + 0x41, 0x80, 0xcc, 0x80, //0x000096ea orb $-128, %r12b + 0x45, 0x88, 0x66, 0x01, //0x000096ee movb %r12b, $1(%r14) + 0x24, 0x3f, //0x000096f2 andb $63, %al + 0x0c, 0x80, //0x000096f4 orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x000096f6 movb %al, $2(%r14) + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000096fa movl $3, %ebx + 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x000096ff jmp LBB41_13 + //0x00009704 LBB41_18 + 0x41, 0x88, 0x06, //0x00009704 movb %al, (%r14) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00009707 movl $1, %ebx + 0xe9, 0x52, 0xff, 0xff, 0xff, //0x0000970c jmp LBB41_13 + //0x00009711 LBB41_19 + 0x41, 0xc1, 0xec, 0x06, //0x00009711 shrl $6, %r12d + 0x41, 0x80, 0xcc, 0xc0, //0x00009715 orb $-64, %r12b + 0x45, 0x88, 0x26, //0x00009719 movb %r12b, (%r14) + 0x24, 0x3f, //0x0000971c andb $63, %al + 0x0c, 0x80, //0x0000971e orb $-128, %al + 0x41, 0x88, 0x46, 0x01, //0x00009720 movb %al, $1(%r14) + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00009724 movl $2, %ebx + 0xe9, 0x35, 0xff, 0xff, 0xff, //0x00009729 jmp LBB41_13 + //0x0000972e LBB41_20 + 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000972e movq $-4, %rbx + 0x48, 0x83, 0xfe, 0x06, //0x00009735 cmpq $6, %rsi + 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x00009739 jl LBB41_13 + 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000973f cmpl $56319, %r12d + 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x00009746 ja LBB41_13 + 0x80, 0x3a, 0x5c, //0x0000974c cmpb $92, (%rdx) + 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000974f jne LBB41_13 + 0x41, 0x80, 0x7d, 0x07, 0x75, //0x00009755 cmpb $117, $7(%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000975a jne LBB41_13 + 0x49, 0x8d, 0x7d, 0x08, //0x00009760 leaq $8(%r13), %rdi + 0x48, 0x89, 0x7d, 0xd0, //0x00009764 movq %rdi, $-48(%rbp) + 0xe8, 0x33, 0x8e, 0xff, 0xff, //0x00009768 callq _unhex16_is + 0x84, 0xc0, //0x0000976d testb %al, %al + 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000976f je LBB41_27 + 0x48, 0x8b, 0x45, 0xd0, //0x00009775 movq $-48(%rbp), %rax + 0x8b, 0x08, //0x00009779 movl (%rax), %ecx + 0x0f, 0xc9, //0x0000977b bswapl %ecx + 0x89, 0xc8, //0x0000977d movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000977f shrl $4, %eax + 0xf7, 0xd0, //0x00009782 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00009784 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00009789 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000978c andl $252645135, %ecx + 0x01, 0xc1, //0x00009792 addl %eax, %ecx + 0x89, 0xc8, //0x00009794 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009796 shrl $4, %eax + 0x09, 0xc8, //0x00009799 orl %ecx, %eax + 0x89, 0xc1, //0x0000979b movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000979d andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000097a3 cmpl $14417920, %ecx + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x000097a9 jne LBB41_28 + 0x89, 0xc1, //0x000097af movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x000097b1 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000097b4 andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x000097ba movzbl %al, %eax + 0x09, 0xc8, //0x000097bd orl %ecx, %eax + 0x41, 0xc1, 0xe4, 0x0a, //0x000097bf shll $10, %r12d + 0x42, 0x8d, 0x0c, 0x20, //0x000097c3 leal (%rax,%r12), %ecx + 0x44, 0x01, 0xe0, //0x000097c7 addl %r12d, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000097ca addl $-56613888, %eax + 0x89, 0xc2, //0x000097cf movl %eax, %edx + 0xc1, 0xea, 0x12, //0x000097d1 shrl $18, %edx + 0x80, 0xca, 0xf0, //0x000097d4 orb $-16, %dl + 0x41, 0x88, 0x16, //0x000097d7 movb %dl, (%r14) + 0x89, 0xc2, //0x000097da movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x000097dc shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x000097df andb $63, %dl + 0x80, 0xca, 0x80, //0x000097e2 orb $-128, %dl + 0x41, 0x88, 0x56, 0x01, //0x000097e5 movb %dl, $1(%r14) + 0xc1, 0xe8, 0x06, //0x000097e9 shrl $6, %eax + 0x24, 0x3f, //0x000097ec andb $63, %al + 0x0c, 0x80, //0x000097ee orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x000097f0 movb %al, $2(%r14) + 0x80, 0xe1, 0x3f, //0x000097f4 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000097f7 orb $-128, %cl + 0x41, 0x88, 0x4e, 0x03, //0x000097fa movb %cl, $3(%r14) + 0x49, 0x83, 0xc5, 0x0c, //0x000097fe addq $12, %r13 + 0x4d, 0x89, 0x2f, //0x00009802 movq %r13, (%r15) + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00009805 movl $4, %ebx + 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x0000980a jmp LBB41_13 + //0x0000980f LBB41_27 + 0x48, 0x8b, 0x45, 0xd0, //0x0000980f movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x00009813 movq %rax, (%r15) + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x00009816 jmp LBB41_12 + //0x0000981b LBB41_28 + 0x48, 0x8b, 0x45, 0xd0, //0x0000981b movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x0000981f movq %rax, (%r15) + 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x00009822 jmp LBB41_13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009827 .p2align 4, 0x00 + //0x00009830 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009830 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009838 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009840 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009848 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009850 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009858 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009860 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009868 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009870 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009878 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009880 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009888 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009890 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009898 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x000098a0 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x000098a8 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x000098b0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x000098b8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x000098c0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x000098c8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x000098d0 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x000098d8 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x000098e0 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x000098e8 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x000098f0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x000098f8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009900 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009908 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009910 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009918 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009920 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009928 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009930 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009938 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009940 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009948 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009950 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009958 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009960 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009968 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009970 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009978 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009980 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009988 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009990 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009998 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x000099a0 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x000099a8 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x000099b0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x000099b8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x000099c0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x000099c8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x000099d0 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x000099d8 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x000099e0 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x000099e8 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x000099f0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x000099f8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009a00 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009a08 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009a10 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009a18 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009a20 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009a28 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009a30 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009a38 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009a40 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009a48 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009a50 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009a58 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009a60 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009a68 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009a70 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009a78 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009a80 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009a88 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009a90 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009a98 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009aa0 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009aa8 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009ab0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009ab8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009ac0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009ac8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009ad0 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009ad8 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009ae0 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009ae8 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009af0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009af8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009b00 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009b08 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009b10 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009b18 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009b20 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009b28 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009b30 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009b38 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009b40 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009b48 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009b50 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009b58 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009b60 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009b68 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009b70 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009b78 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009b80 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009b88 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009b90 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009b98 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009ba0 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009ba8 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009bb0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009bb8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009bc0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009bc8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009bd0 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009bd8 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009be0 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009be8 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009bf0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009bf8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009c00 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009c08 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009c10 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009c18 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009c20 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009c28 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009c30 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009c38 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009c40 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009c48 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009c50 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009c58 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009c60 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009c68 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009c70 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009c78 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009c80 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009c88 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009c90 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009c98 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009ca0 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009ca8 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009cb0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009cb8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009cc0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009cc8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009cd0 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009cd8 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009ce0 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009ce8 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009cf0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009cf8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009d00 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009d08 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009d10 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009d18 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009d20 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009d28 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009d30 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009d38 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009d40 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009d48 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009d50 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009d58 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009d60 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009d68 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009d70 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009d78 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009d80 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009d88 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009d90 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009d98 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009da0 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009da8 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009db0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009db8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009dc0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009dc8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009dd0 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009dd8 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009de0 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009de8 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009df0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009df8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009e00 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009e08 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x00009e10 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x00009e18 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x00009e20 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x00009e28 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x00009e30 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x00009e38 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x00009e40 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x00009e48 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x00009e50 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x00009e58 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x00009e60 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x00009e68 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x00009e70 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x00009e78 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x00009e80 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x00009e88 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x00009e90 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x00009e98 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x00009ea0 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x00009ea8 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x00009eb0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x00009eb8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x00009ec0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x00009ec8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x00009ed0 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x00009ed8 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x00009ee0 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x00009ee8 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x00009ef0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x00009ef8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x00009f00 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x00009f08 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x00009f10 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x00009f18 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x00009f20 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x00009f28 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x00009f30 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x00009f38 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x00009f40 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x00009f48 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x00009f50 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x00009f58 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x00009f60 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x00009f68 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x00009f70 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x00009f78 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x00009f80 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x00009f88 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x00009f90 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x00009f98 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x00009fa0 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x00009fa8 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x00009fb0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x00009fb8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x00009fc0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x00009fc8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x00009fd0 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x00009fd8 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x00009fe0 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x00009fe8 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x00009ff0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x00009ff8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a000 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a008 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a010 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a018 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a020 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a028 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a030 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a038 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a040 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a048 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a050 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a058 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a060 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a068 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a070 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a078 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a080 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a088 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a090 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a098 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a0a0 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a0a8 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a0b0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a0b8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a0c0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a0c8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a0d0 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a0d8 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a0e0 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a0e8 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a0f0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a0f8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a100 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a108 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a110 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a118 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a120 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a128 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a130 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a138 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a140 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a148 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a150 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a158 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a160 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a168 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a170 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a178 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a180 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a188 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a190 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a198 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a1a0 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a1a8 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000a1b0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000a1b8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000a1c0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000a1c8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000a1d0 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000a1d8 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000a1e0 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000a1e8 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000a1f0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000a1f8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000a200 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000a208 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000a210 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000a218 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000a220 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000a228 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000a230 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000a238 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000a240 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000a248 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000a250 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000a258 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000a260 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000a268 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000a270 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000a278 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a280 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a288 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a290 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a298 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a2a0 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a2a8 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a2b0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a2b8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a2c0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a2c8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a2d0 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a2d8 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a2e0 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a2e8 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a2f0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a2f8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a300 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a308 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a310 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a318 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a320 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a328 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a330 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a338 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a340 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a348 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a350 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a358 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a360 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a368 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a370 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a378 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a380 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a388 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a390 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a398 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a3a0 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a3a8 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a3b0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a3b8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a3c0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a3c8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a3d0 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a3d8 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a3e0 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a3e8 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a3f0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a3f8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a400 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a408 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a410 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a418 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a420 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a428 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a430 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a438 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a440 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a448 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a450 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a458 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a460 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a468 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a470 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a478 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a480 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a488 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a490 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a498 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a4a0 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a4a8 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a4b0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a4b8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a4c0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a4c8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a4d0 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a4d8 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a4e0 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a4e8 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a4f0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a4f8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a500 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a508 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a510 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a518 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a520 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a528 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a530 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a538 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a540 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a548 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a550 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a558 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a560 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a568 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a570 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a578 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a580 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a588 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a590 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a598 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a5a0 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a5a8 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a5b0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a5b8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a5c0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a5c8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a5d0 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a5d8 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a5e0 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a5e8 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a5f0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a5f8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a600 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a608 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a610 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a618 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a620 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a628 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a630 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a638 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a640 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a648 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a650 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a658 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a660 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a668 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a670 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a678 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a680 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a688 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a690 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a698 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a6a0 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a6a8 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a6b0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a6b8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a6c0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a6c8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a6d0 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a6d8 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a6e0 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a6e8 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a6f0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a6f8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a700 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a708 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a710 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a718 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a720 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a728 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a730 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a738 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a740 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a748 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a750 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a758 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a760 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a768 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a770 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a778 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a780 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a788 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a790 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a798 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a7a0 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a7a8 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a7b0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a7b8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a7c0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a7c8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a7d0 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a7d8 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a7e0 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a7e8 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a7f0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a7f8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a800 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a808 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000a810 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000a818 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000a820 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000a828 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000a830 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000a838 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000a840 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000a848 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000a850 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000a858 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000a860 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000a868 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000a870 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000a878 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000a880 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000a888 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000a890 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000a898 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000a8a0 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000a8a8 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000a8b0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000a8b8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000a8c0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000a8c8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000a8d0 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000a8d8 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000a8e0 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000a8e8 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000a8f0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000a8f8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000a900 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000a908 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000a910 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000a918 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000a920 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000a928 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000a930 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000a938 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000a940 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000a948 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000a950 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000a958 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000a960 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000a968 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000a970 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000a978 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000a980 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000a988 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000a990 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000a998 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000a9a0 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000a9a8 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000a9b0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000a9b8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000a9c0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000a9c8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000a9d0 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000a9d8 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000a9e0 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000a9e8 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000a9f0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000a9f8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000aa00 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000aa08 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000aa10 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000aa18 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000aa20 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000aa28 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000aa30 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000aa38 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000aa40 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000aa48 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000aa50 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000aa58 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000aa60 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000aa68 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000aa70 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000aa78 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000aa80 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000aa88 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000aa90 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000aa98 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000aaa0 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000aaa8 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000aab0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000aab8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000aac0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000aac8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000aad0 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000aad8 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000aae0 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000aae8 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000aaf0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000aaf8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000ab00 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000ab08 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000ab10 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000ab18 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000ab20 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000ab28 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000ab30 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000ab38 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000ab40 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000ab48 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000ab50 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000ab58 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000ab60 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000ab68 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000ab70 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000ab78 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000ab80 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000ab88 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000ab90 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000ab98 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000aba0 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000aba8 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000abb0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000abb8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000abc0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000abc8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000abd0 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000abd8 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000abe0 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000abe8 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000abf0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000abf8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000ac00 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000ac08 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ac10 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ac18 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ac20 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ac28 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ac30 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ac38 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ac40 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ac48 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ac50 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ac58 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ac60 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ac68 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ac70 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ac78 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ac80 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ac88 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ac90 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ac98 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000aca0 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000aca8 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000acb0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000acb8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000acc0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000acc8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000acd0 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000acd8 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000ace0 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000ace8 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000acf0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000acf8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000ad00 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000ad08 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000ad10 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000ad18 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000ad20 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000ad28 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000ad30 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000ad38 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000ad40 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000ad48 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000ad50 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000ad58 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000ad60 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000ad68 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000ad70 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000ad78 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000ad80 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000ad88 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000ad90 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000ad98 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000ada0 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000ada8 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000adb0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000adb8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000adc0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000adc8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000add0 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000add8 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000ade0 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, //0x0000adf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000adf8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000ae08 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000ae18 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000ae28 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000ae38 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000ae48 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000ae58 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000ae68 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000ae78 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000ae88 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ae90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000ae98 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aea0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000aea8 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aeb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000aeb8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aec0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000aec8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aed0 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000aed8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aee0 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000aee8 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aef0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000aef8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af00 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000af08 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af10 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000af18 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af20 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000af28 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af30 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000af38 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af40 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000af48 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af50 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000af58 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af60 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000af68 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af70 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000af78 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af80 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000af88 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000af90 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000af98 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000afa0 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000afa8 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000afb0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000afb8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000afc0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000afc8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000afd0 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000afd8 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000afe0 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000afe8 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000aff0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000aff8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b000 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b008 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b010 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b018 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b020 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b028 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b030 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b038 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b040 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b048 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b050 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b058 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b060 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b068 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b070 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b078 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b080 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b088 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b090 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b098 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b0a0 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b0a8 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b0b0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b0b8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b0c0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b0c8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b0d0 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b0d8 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b0e0 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b0e8 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b0f0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b0f8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b100 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b108 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b110 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b118 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b120 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b128 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b130 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b138 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b140 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b148 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b150 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b158 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b160 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b168 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b170 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b178 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b180 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b188 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b190 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b198 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b1a0 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b1a8 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000b1b0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000b1b8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000b1c0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000b1c8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000b1d0 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000b1d8 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000b1e0 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000b1e8 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000b1f0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000b1f8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000b200 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000b208 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000b210 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000b218 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000b220 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000b228 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000b230 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000b238 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000b240 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000b248 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000b250 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000b258 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000b260 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000b268 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000b270 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000b278 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b280 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b288 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b290 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b298 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b2a0 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b2a8 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b2b0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b2b8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b2c0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b2c8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b2d0 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b2d8 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b2e0 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b2e8 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b2f0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b2f8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b300 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b308 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b310 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b318 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b320 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b328 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b330 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b338 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b340 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b348 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b350 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b358 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b360 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b368 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b370 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b378 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b380 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b388 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b390 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b398 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b3a0 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b3a8 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b3b0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b3b8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b3c0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b3c8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b3d0 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b3d8 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b3e0 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b3e8 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b3f0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b3f8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b400 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b408 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b410 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b418 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b420 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b428 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b430 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b438 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b440 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b448 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b450 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b458 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b460 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b468 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b470 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b478 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b480 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b488 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b490 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b498 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b4a0 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b4a8 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b4b0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b4b8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b4c0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b4c8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b4d0 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b4d8 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b4e0 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b4e8 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b4f0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b4f8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b500 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b508 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b510 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b518 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b520 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b528 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b530 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b538 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b540 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b548 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b550 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b558 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b560 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b568 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b570 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b578 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b580 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b588 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b590 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b598 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b5a0 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b5a8 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b5b0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b5b8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b5c0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b5c8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b5d0 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b5d8 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b5e0 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b5e8 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b5f0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b5f8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b600 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b608 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b610 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b618 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b620 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b628 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b630 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b638 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b640 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b648 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b650 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b658 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b660 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b668 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b670 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b678 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b680 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b688 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b690 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b698 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b6a0 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b6a8 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b6b0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b6b8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b6c0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b6c8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b6d0 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b6d8 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b6e0 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b6e8 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b6f0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b6f8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b700 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b708 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b710 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b718 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b720 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b728 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b730 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b738 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b740 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b748 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b750 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b758 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b760 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b768 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b770 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b778 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b780 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b788 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b790 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b798 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b7a0 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b7a8 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b7b0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b7b8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b7c0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b7c8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b7d0 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b7d8 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b7e0 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b7e8 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b7f0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b7f8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b800 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b808 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000b810 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000b818 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000b820 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000b828 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000b830 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000b838 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000b840 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000b848 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000b850 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000b858 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000b860 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000b868 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000b870 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000b878 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000b880 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000b888 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000b890 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000b898 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000b8a0 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000b8a8 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000b8b0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000b8b8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000b8c0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000b8c8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000b8d0 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000b8d8 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000b8e0 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000b8e8 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000b8f0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000b8f8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000b900 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000b908 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000b910 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000b918 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000b920 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000b928 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000b930 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000b938 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000b940 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000b948 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000b950 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000b958 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000b960 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000b968 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000b970 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000b978 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000b980 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000b988 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000b990 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000b998 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000b9a0 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000b9a8 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000b9b0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000b9b8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000b9c0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000b9c8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000b9d0 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000b9d8 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000b9e0 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000b9e8 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000b9f0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000b9f8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000ba00 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000ba08 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000ba10 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000ba18 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000ba20 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000ba28 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000ba30 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000ba38 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000ba40 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000ba48 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000ba50 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000ba58 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000ba60 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000ba68 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000ba70 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000ba78 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000ba80 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000ba88 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000ba90 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000ba98 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000baa0 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000baa8 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000bab0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000bab8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000bac0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000bac8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000bad0 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000bad8 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000bae0 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000bae8 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000baf0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000baf8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000bb00 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000bb08 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000bb10 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000bb18 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000bb20 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000bb28 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000bb30 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000bb38 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000bb40 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000bb48 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000bb50 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000bb58 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000bb60 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000bb68 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000bb70 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000bb78 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000bb80 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000bb88 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000bb90 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000bb98 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000bba0 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000bba8 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000bbb0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000bbb8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000bbc0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000bbc8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000bbd0 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000bbd8 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000bbe0 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000bbe8 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000bbf0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000bbf8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000bc00 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000bc08 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000bc10 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000bc18 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000bc20 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000bc28 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000bc30 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000bc38 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000bc40 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000bc48 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000bc50 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000bc58 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000bc60 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000bc68 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000bc70 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000bc78 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000bc80 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000bc88 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000bc90 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000bc98 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000bca0 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000bca8 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000bcb0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000bcb8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000bcc0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000bcc8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000bcd0 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000bcd8 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000bce0 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000bce8 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000bcf0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000bcf8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000bd00 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000bd08 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000bd10 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000bd18 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000bd20 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000bd28 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bd30 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bd38 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bd40 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bd48 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bd50 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bd58 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bd60 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bd68 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000bd70 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000bd78 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bd80 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bd88 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bd90 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bd98 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bda0 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bda8 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bdb0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bdb8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bdc0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bdc8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bdd0 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bdd8 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bde0 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bde8 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bdf0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bdf8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000be00 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000be08 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000be10 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000be18 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000be20 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000be28 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000be30 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000be38 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000be40 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000be48 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000be50 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000be58 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000be60 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000be68 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000be70 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000be78 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000be80 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000be88 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000be90 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000be98 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000bea0 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000bea8 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000beb0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000beb8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000bec0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000bec8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000bed0 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000bed8 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000bee0 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000bee8 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000bef0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000bef8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000bf00 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000bf08 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000bf10 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000bf18 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000bf20 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000bf28 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000bf30 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000bf38 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000bf40 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000bf48 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000bf50 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000bf58 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000bf60 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000bf68 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000bf70 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000bf78 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000bf80 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000bf88 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000bf90 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000bf98 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000bfa0 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000bfa8 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000bfb0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000bfb8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000bfc0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000bfc8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000bfd0 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000bfd8 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000bfe0 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000bfe8 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000bff0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000bff8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c000 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c008 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c010 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c018 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c020 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c028 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c030 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c038 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c040 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c048 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c050 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c058 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c060 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c068 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c070 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c078 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c080 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c088 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c090 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c098 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c0a0 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c0a8 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c0b0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c0b8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c0c0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c0c8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c0d0 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c0d8 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c0e0 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c0e8 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c0f0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c0f8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c100 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c108 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c110 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c118 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c120 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c128 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c130 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c138 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c140 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c148 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c150 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c158 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c160 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c168 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c170 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c178 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c180 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c188 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c190 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c198 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c1a0 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c1a8 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000c1b0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000c1b8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000c1c0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000c1c8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000c1d0 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000c1d8 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000c1e0 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000c1e8 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000c1f0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000c1f8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000c200 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000c208 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000c210 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000c218 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000c220 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000c228 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000c230 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000c238 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000c240 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000c248 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000c250 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000c258 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000c260 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000c268 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000c270 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000c278 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c280 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c288 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c290 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c298 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c2a0 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c2a8 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c2b0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c2b8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c2c0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c2c8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c2d0 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c2d8 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c2e0 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c2e8 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c2f0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c2f8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c300 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c308 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c310 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c318 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c320 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c328 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c330 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c338 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c340 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c348 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c350 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c358 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c360 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c368 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c370 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c378 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c380 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c388 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c390 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c398 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c3a0 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c3a8 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c3b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000c3c0 .p2align 4, 0x00 + //0x0000c3c0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000c3c0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000c3c4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000c3c8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000c3cc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000c3d0 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000c3d4 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000c3d8 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000c3dc .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000c3e0 .long 26 + //0x0000c3e4 .p2align 2, 0x00 + //0x0000c3e4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000c3e4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c3e8 .p2align 4, 0x00 + //0x0000c3f0 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c3f0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c400 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c410 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c420 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c430 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c440 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c450 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c460 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c470 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c480 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c490 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c4a0 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c4b0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c4b8 .p2align 4, 0x00 + //0x0000c4c0 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c4c0 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c4c8 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c4d0 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c4d8 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c4e0 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c4e8 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c4f0 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c4f8 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c500 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c508 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c510 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c518 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c520 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c528 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c530 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c538 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c540 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c548 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c550 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c558 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c560 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c568 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c570 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c578 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c580 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c588 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c590 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c598 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c5a0 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c5a8 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c5b0 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c5b8 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c5c0 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c5c8 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c5d0 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c5d8 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c5e0 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c5e8 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c5f0 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c5f8 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c600 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c608 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c610 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c618 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c620 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c628 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c630 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c638 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c640 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c648 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c650 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c658 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c660 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c668 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c670 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c678 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c680 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c688 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c690 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c698 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c6a0 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c6a8 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c6b0 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c6b8 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c6c0 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c6c8 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c6d0 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c6d8 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c6e0 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c6e8 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c6f0 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c6f8 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c700 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c708 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c710 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c718 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c720 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c728 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c730 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c738 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c740 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c748 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c750 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c758 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c760 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c768 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c770 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c778 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c780 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c788 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c790 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c798 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c7a0 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c7a8 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c7b0 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c7b8 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c7c0 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c7c8 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c7d0 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c7d8 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c7e0 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c7e8 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c7f0 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c7f8 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c800 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c808 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000c810 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000c818 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000c820 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000c828 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000c830 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000c838 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000c840 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000c848 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000c850 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000c858 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000c860 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000c868 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000c870 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000c878 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000c880 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000c888 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000c890 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000c898 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000c8a0 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000c8a8 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000c8b0 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000c8b8 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000c8c0 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000c8c8 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000c8d0 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000c8d8 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000c8e0 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000c8e8 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000c8f0 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000c8f8 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000c900 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000c908 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000c910 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000c918 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000c920 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000c928 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000c930 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000c938 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000c940 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000c948 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000c950 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000c958 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000c960 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000c968 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000c970 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000c978 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000c980 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000c988 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000c990 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000c998 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000c9a0 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000c9a8 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000c9b0 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000c9b8 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000c9c0 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000c9c8 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000c9d0 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000c9d8 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000c9e0 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000c9e8 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000c9f0 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000c9f8 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000ca00 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000ca08 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000ca10 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000ca18 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000ca20 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000ca28 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000ca30 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000ca38 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000ca40 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000ca48 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000ca50 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000ca58 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000ca60 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000ca68 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000ca70 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000ca78 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000ca80 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000ca88 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000ca90 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000ca98 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000caa0 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000caa8 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000cab0 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000cab8 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000cac0 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000cac8 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000cad0 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000cad8 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000cae0 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000cae8 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000caf0 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000caf8 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000cb00 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000cb08 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000cb10 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000cb18 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000cb20 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000cb28 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000cb30 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000cb38 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000cb40 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000cb48 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000cb50 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000cb58 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000cb60 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000cb68 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000cb70 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000cb78 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000cb80 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000cb88 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000cb90 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000cb98 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000cba0 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000cba8 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000cbb0 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000cbb8 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000cbc0 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000cbc8 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000cbd0 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000cbd8 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000cbe0 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000cbe8 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000cbf0 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000cbf8 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000cc00 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000cc08 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000cc10 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000cc18 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000cc20 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000cc28 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000cc30 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000cc38 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000cc40 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000cc48 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000cc50 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000cc58 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000cc60 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000cc68 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000cc70 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000cc78 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000cc80 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000cc88 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000cc90 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000cc98 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000cca0 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000cca8 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000ccb0 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000ccb8 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ccc0 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ccc8 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000ccd0 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000ccd8 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000cce0 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000cce8 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000ccf0 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000ccf8 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000cd00 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000cd08 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000cd10 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000cd18 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000cd20 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000cd28 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cd30 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cd38 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cd40 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cd48 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cd50 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cd58 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cd60 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cd68 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000cd70 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000cd78 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cd80 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cd88 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cd90 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cd98 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cda0 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cda8 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cdb0 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cdb8 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cdc0 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cdc8 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cdd0 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cdd8 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cde0 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cde8 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cdf0 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cdf8 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000ce00 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000ce08 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000ce10 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000ce18 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000ce20 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000ce28 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000ce30 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000ce38 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000ce40 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000ce48 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000ce50 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000ce58 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000ce60 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000ce68 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000ce70 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000ce78 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000ce80 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000ce88 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000ce90 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000ce98 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000cea0 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000cea8 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000ceb0 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000ceb8 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000cec0 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000cec8 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000ced0 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000ced8 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000cee0 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000cee8 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000cef0 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000cef8 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000cf00 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000cf08 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000cf10 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000cf18 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000cf20 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000cf28 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000cf30 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000cf38 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000cf40 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000cf48 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000cf50 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000cf58 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000cf60 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000cf68 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000cf70 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000cf78 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000cf80 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000cf88 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000cf90 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000cf98 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000cfa0 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000cfa8 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000cfb0 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000cfb8 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000cfc0 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000cfc8 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000cfd0 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000cfd8 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000cfe0 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000cfe8 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000cff0 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000cff8 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d000 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d008 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d010 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d018 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d020 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d028 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d030 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d038 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d040 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d048 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d050 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d058 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d060 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d068 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d070 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d078 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d080 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d088 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d090 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d098 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d0a0 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d0a8 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d0b0 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d0b8 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d0c0 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d0c8 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d0d0 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d0d8 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d0e0 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d0e8 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d0f0 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d0f8 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d100 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d108 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d110 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d118 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d120 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d128 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d130 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d138 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d140 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d148 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d150 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d158 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d160 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d168 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d170 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d178 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d180 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d188 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d190 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d198 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d1a0 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d1a8 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000d1b0 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000d1b8 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000d1c0 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000d1c8 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000d1d0 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000d1d8 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000d1e0 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000d1e8 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000d1f0 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000d1f8 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000d200 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000d208 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000d210 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000d218 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000d220 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000d228 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000d230 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000d238 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000d240 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000d248 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000d250 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000d258 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000d260 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000d268 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000d270 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000d278 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d280 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d288 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d290 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d298 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d2a0 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d2a8 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d2b0 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d2b8 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d2c0 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d2c8 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d2d0 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d2d8 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d2e0 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d2e8 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d2f0 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d2f8 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d300 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d308 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d310 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d318 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d320 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d328 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d330 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d338 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d340 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d348 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d350 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d358 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d360 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d368 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d370 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d378 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d380 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d388 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d390 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d398 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d3a0 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d3a8 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d3b0 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d3b8 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d3c0 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d3c8 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d3d0 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d3d8 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d3e0 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d3e8 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d3f0 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d3f8 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d400 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d408 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d410 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d418 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d420 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d428 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d430 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d438 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d440 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d448 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d450 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d458 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d460 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d468 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d470 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d478 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d480 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d488 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d490 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d498 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d4a0 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d4a8 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d4b0 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d4b8 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d4c0 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d4c8 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d4d0 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d4d8 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d4e0 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d4e8 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d4f0 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d4f8 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d500 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d508 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d510 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d518 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d520 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d528 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d530 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d538 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d540 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d548 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d550 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d558 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d560 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d568 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d570 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d578 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d580 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d588 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d590 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d598 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d5a0 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d5a8 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d5b0 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d5b8 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d5c0 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d5c8 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d5d0 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d5d8 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d5e0 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d5e8 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d5f0 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d5f8 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d600 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d608 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d610 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d618 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d620 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d628 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d630 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d638 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d640 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d648 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d650 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d658 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d660 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d668 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d670 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d678 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d680 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d688 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d690 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d698 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d6a0 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d6a8 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d6b0 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d6b8 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d6c0 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d6c8 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d6d0 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d6d8 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d6e0 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d6e8 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d6f0 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d6f8 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d700 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d708 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d710 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d718 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d720 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d728 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d730 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d738 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d740 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d748 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d750 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d758 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d760 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d768 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d770 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d778 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d780 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d788 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d790 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d798 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d7a0 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d7b0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d7c0 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7c8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d7d0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7d8 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d7e0 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7e8 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d7f0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d7f8 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d800 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d808 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000d810 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d818 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000d820 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d828 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000d830 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d838 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000d840 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d848 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000d850 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d858 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000d860 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d868 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000d870 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d878 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000d880 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d888 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000d890 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d898 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000d8a0 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8a8 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000d8b0 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8b8 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000d8c0 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000d8c8 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000d8d0 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000d8d8 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000d8e0 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000d8e8 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000d8f0 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000d8f8 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000d900 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000d908 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000d910 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000d918 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000d920 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000d928 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000d930 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000d938 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000d940 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000d948 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000d950 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000d958 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000d960 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000d968 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000d970 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000d978 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000d980 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000d988 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000d990 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000d998 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000d9a0 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000d9a8 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000d9b0 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000d9b8 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000d9c0 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000d9c8 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000d9d0 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000d9d8 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000d9e0 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000d9e8 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000d9f0 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000d9f8 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000da00 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000da08 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000da10 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000da18 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000da20 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000da28 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000da30 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000da38 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000da40 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000da48 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000da50 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000da58 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000da60 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000da68 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000da70 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000da78 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000da80 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000da88 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000da90 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000da98 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000daa0 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000daa8 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000dab0 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000dab8 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000dac0 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000dac8 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000dad0 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000dad8 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000dae0 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000dae8 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000daf0 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000daf8 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000db00 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000db08 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000db10 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000db18 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000db20 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000db28 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000db30 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000db38 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000db40 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000db48 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000db50 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000db58 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000db60 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000db68 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000db70 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000db78 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000db80 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000db88 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000db90 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000db98 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000dba0 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000dba8 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000dbb0 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000dbb8 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000dbc0 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000dbc8 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000dbd0 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000dbd8 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000dbe0 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000dbe8 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000dbf0 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000dbf8 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000dc00 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000dc08 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000dc10 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000dc18 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000dc20 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000dc28 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000dc30 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000dc38 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000dc40 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000dc48 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000dc50 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000dc58 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000dc60 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000dc68 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000dc70 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000dc78 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000dc80 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000dc88 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000dc90 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000dc98 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000dca0 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000dca8 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000dcb0 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000dcb8 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000dcc0 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000dcc8 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000dcd0 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000dcd8 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000dce0 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000dce8 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000dcf0 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000dcf8 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000dd00 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000dd08 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000dd10 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000dd18 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000dd20 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000dd28 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000dd30 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000dd38 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000dd40 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000dd48 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000dd50 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000dd58 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000dd60 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000dd68 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000dd70 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000dd78 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000dd80 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000dd88 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000dd90 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000dd98 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000dda0 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000dda8 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000ddb0 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000ddb8 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000ddc0 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000ddc8 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000ddd0 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000ddd8 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000dde0 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000dde8 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000ddf0 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000ddf8 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000de00 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000de08 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000de10 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000de18 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000de20 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000de28 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000de30 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000de38 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000de40 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000de48 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000de50 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000de58 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000de60 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000de68 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000de70 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000de78 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000de80 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000de88 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000de90 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000de98 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000dea0 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000dea8 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000deb0 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000deb8 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000dec0 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000dec8 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000ded0 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000ded8 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000dee0 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000dee8 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000def0 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000def8 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000df00 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000df08 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000df10 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000df18 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000df20 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000df28 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000df30 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000df38 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000df40 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000df48 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000df50 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000df58 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000df60 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000df68 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000df70 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000df78 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000df80 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000df88 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000df90 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000df98 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000dfa0 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000dfa8 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000dfb0 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000dfb8 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000dfc0 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000dfc8 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000dfd0 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000dfd8 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000dfe0 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000dfe8 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000dff0 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000dff8 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e000 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e008 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e010 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e018 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e020 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e028 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e030 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e038 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e040 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e048 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e050 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e058 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e060 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e068 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e070 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e078 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e080 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e088 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e090 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e098 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e0a0 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e0a8 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e0b0 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e0b8 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e0c0 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e0c8 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e0d0 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e0d8 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e0e0 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e0e8 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e0f0 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e0f8 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e100 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e108 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e110 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e118 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e120 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e128 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e130 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e138 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e140 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e148 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e150 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e158 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e160 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e168 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e170 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e178 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e180 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e188 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e190 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e198 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e1a0 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e1a8 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000e1b0 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000e1b8 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000e1c0 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000e1c8 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000e1d0 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000e1d8 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000e1e0 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000e1e8 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000e1f0 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000e1f8 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000e200 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000e208 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000e210 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000e218 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000e220 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000e228 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000e230 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000e238 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000e240 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000e248 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000e250 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000e258 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000e260 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000e268 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000e270 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000e278 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e280 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e288 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e290 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e298 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e2a0 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e2a8 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e2b0 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e2b8 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e2c0 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e2c8 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e2d0 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e2d8 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e2e0 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e2e8 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e2f0 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e2f8 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e300 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e308 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e310 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e318 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e320 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e328 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e330 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e338 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e340 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e348 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e350 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e358 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e360 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e368 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e370 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e378 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e380 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e388 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e390 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e398 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e3a0 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e3a8 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e3b0 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e3b8 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e3c0 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e3c8 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e3d0 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e3d8 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e3e0 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e3e8 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e3f0 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e3f8 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e400 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e408 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e410 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e418 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e420 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e428 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e430 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e438 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e440 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e448 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e450 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e458 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e460 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e468 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e470 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e478 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e480 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e488 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e490 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e498 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e4a0 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e4a8 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e4b0 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e4b8 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e4c0 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e4c8 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e4d0 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e4d8 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e4e0 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e4e8 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e4f0 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e4f8 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e500 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e508 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e510 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e518 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e520 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e528 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e530 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e538 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e540 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e548 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e550 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e558 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e560 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e568 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e570 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e578 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e580 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e588 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e590 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e598 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e5a0 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e5a8 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e5b0 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e5b8 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e5c0 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e5c8 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e5d0 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e5d8 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e5e0 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e5e8 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e5f0 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e5f8 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e600 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e608 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e610 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e618 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e620 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e628 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e630 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e638 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e640 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e648 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e650 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e658 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e660 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e668 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e670 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e678 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e680 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e688 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e690 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e698 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e6a0 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e6a8 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e6b0 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e6b8 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e6c0 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e6c8 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e6d0 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e6d8 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e6e0 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e6e8 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e6f0 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e6f8 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e700 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e708 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e710 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e718 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e720 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e728 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e730 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e738 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e740 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e748 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e750 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e758 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e760 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e768 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e770 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e778 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e780 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e788 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e790 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e798 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e7a0 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e7a8 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e7b0 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e7b8 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e7c0 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e7c8 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e7d0 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e7d8 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e7e0 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e7e8 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e7f0 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e7f8 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e800 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e808 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000e810 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000e818 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000e820 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000e828 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000e830 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000e838 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000e840 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000e848 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000e850 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000e858 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000e860 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000e868 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000e870 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000e878 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000e880 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000e888 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000e890 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000e898 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000e8a0 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000e8a8 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000e8b0 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000e8b8 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000e8c0 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000e8c8 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000e8d0 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000e8d8 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000e8e0 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000e8e8 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000e8f0 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000e8f8 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000e900 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000e908 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000e910 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000e918 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000e920 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000e928 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000e930 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000e938 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000e940 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000e948 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000e950 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000e958 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000e960 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000e968 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000e970 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000e978 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000e980 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000e988 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000e990 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000e998 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000e9a0 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000e9a8 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000e9b0 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000e9b8 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000e9c0 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000e9c8 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000e9d0 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000e9d8 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000e9e0 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000e9e8 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000e9f0 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000e9f8 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000ea00 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000ea08 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000ea10 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000ea18 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000ea20 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000ea28 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000ea30 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000ea38 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000ea40 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000ea48 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000ea50 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000ea58 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000ea60 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000ea68 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000ea70 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000ea78 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000ea80 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000ea88 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000ea90 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000ea98 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000eaa0 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000eaa8 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000eab0 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000eab8 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000eac0 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000eac8 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ead0 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ead8 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000eae0 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000eae8 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000eaf0 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000eaf8 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000eb00 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000eb08 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000eb10 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000eb18 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000eb20 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000eb28 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000eb30 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000eb38 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000eb40 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000eb48 .quad 7784369436827535058 + //0x0000eb50 .p2align 4, 0x00 + //0x0000eb50 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000eb50 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, //0x0000eb60 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, //0x0000eb70 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, //0x0000eb80 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, //0x0000eb90 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, //0x0000eba0 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, //0x0000ebb0 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, //0x0000ebc0 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, //0x0000ebd0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000ebe0 .p2align 4, 0x00 + //0x0000ebe0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebe0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000ebe8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ebf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000ebf8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000ec08 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000ec18 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000ec28 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000ec38 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000ec48 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000ec58 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000ec68 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec70 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec78 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec80 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec88 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ec90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ec98 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eca0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000eca8 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecb8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000ecc8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecd0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000ecd8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ece0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000ece8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ecf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000ecf8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000ed08 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ed18 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000ed28 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000ed38 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000ed48 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ed58 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000ed68 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000ed78 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000ed88 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ed90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000ed98 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eda0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000eda8 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000edb8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000edc8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000edd8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee08 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, //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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a0 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f1a8 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, //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' + 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' + //0x0000fbe0 .p2align 4, 0x00 + //0x0000fbe0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbe0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000fbe8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000fbf8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000fc08 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000fc18 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000fc28 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000fc38 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000fc48 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000fc58 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000fc68 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc70 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc78 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc80 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc88 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fc90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fc98 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fca0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fca8 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcb8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000fcc8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcd0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fcd8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fce0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fce8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fcf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fcf8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fd08 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000fd18 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000fd28 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000fd38 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000fd48 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000fd58 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000fd68 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000fd78 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000fd88 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fd90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000fd98 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fda0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000fda8 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000fdb8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000fdc8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000fdd8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fe08 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000101a0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x000101a8 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\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' + 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' + 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' + //0x00010be0 .p2align 4, 0x00 + //0x00010be0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010be0 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, //0x00010bf0 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, //0x00010c00 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, //0x00010c10 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, //0x00010c20 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, //0x00010c30 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, //0x00010c3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010c9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010cbd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ccd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00010cdd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00010ce0 .p2align 4, 0x00 + //0x00010ce0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ce0 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, //0x00010cf0 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, //0x00010d00 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, //0x00010d10 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, //0x00010d20 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, //0x00010d30 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, //0x00010d40 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, //0x00010d50 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, //0x00010d56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010d96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010da6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010db6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dc6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010dd6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010de0 .p2align 4, 0x00 + //0x00010de0 __HtmlQuoteTab + 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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011040 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011048 QUAD $0x000036323030755c // .asciz 8, '\\u0026\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111a0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x000111a8 QUAD $0x000063333030755c // .asciz 8, '\\u003c\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000111c0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x000111c8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\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' + 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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011860 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011868 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011870 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011878 QUAD $0x000039323032755c // .asciz 8, '\\u2029\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' + 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' + //0x00011de0 .p2align 4, 0x00 + //0x00011de0 _LSHIFT_TAB + 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, //0x00011e40 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011e48 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e4c 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, //0x00011e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011eac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011eb0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011eb4 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, //0x00011ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ee4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ef4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00011f18 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f1c 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, //0x00011f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011f7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011f80 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f84 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, //0x00011f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00011fe4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00011fe8 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fec 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, //0x00011ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001200c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001201c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001202c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001203c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001204c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012050 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012054 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, //0x00012064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012084 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012094 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000120b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x000120b8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120bc 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, //0x000120cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001210c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001211c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012120 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012124 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, //0x00012134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012154 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012164 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012174 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012184 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012188 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001218c 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, //0x0001219c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000121ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000121f0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121f4 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, //0x00012204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012224 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012234 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012244 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012254 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012258 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001225c 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, //0x0001226c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001227c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001228c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001229c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000122bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000122c0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122c4 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, //0x000122d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012304 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012314 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012324 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012328 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001232c 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, //0x0001233c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001234c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001235c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001236c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001237c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001238c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012390 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012394 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, //0x000123a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000123f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000123f8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123fc 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, //0x0001240c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001241c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001242c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001243c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001244c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001245c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00012460 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012464 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, //0x00012474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012494 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000124c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000124c8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000124cc 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, //0x000124dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001250c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001251c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001252c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012530 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012534 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, //0x00012544 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012554 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012564 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012574 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012584 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012594 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012598 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001259c 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, //0x000125ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000125fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012600 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012604 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, //0x00012614 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012624 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012634 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012644 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012654 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012664 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012668 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001266c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001267c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001268c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001269c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000126cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000126d0 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000126d4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012704 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012714 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012724 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012734 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012738 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001273c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001274c 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, //0x0001275c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001276c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001277c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001278c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001279c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000127a0 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x000127a4 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b4 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, //0x000127c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012804 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012808 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x0001280c QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001281c 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, //0x0001282c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001283c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001284c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001285c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001286c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00012870 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012874 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012884 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, //0x00012894 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000128d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000128d8 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000128dc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128ec 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, //0x000128fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001290c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001291c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001292c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001293c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012940 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012944 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012954 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, //0x00012964 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012974 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012984 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012994 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000129a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000129a8 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x000129ac QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129bc 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, //0x000129cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012a10 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012a14 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a24 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, //0x00012a34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012a74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012a78 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00012a7c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a8c 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, //0x00012a9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012abc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012acc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012adc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012ae0 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012ae4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af4 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, //0x00012b04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012b44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012b48 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00012b4c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b5c 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, //0x00012b6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012bac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012bb0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012bb4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc4 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, //0x00012bd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012c18 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00012c1c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c2c 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, //0x00012c3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012c7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012c80 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012c84 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c94 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, //0x00012ca4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012ce4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012ce8 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012cec QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cfc 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, //0x00012d0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012d4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012d50 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012d54 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d64 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, //0x00012d74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012db4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012db8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012dbc QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012dcc 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, //0x00012ddc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e1c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012e20 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00012e24 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012e34 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, //0x00012e44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012e84 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012e88 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00012e8c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012e9c 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, //0x00012eac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012eec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012ef0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00012ef4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00012f04 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, //0x00012f14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f54 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00012f58 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00012f5c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00012f6c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fbc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00012fc0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00012fc4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00012fd4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013024 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013028 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001302c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001303c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001307c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001308c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013090 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013094 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x000130a4 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 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, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000130f8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000130fc QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x0001310c QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c 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, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001314c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001315c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013160 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013164 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013174 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 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, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000131c8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x000131cc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x000131dc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec 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, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001321c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001322c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013230 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013234 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013244 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013254 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, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013294 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013298 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001329c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x000132ac QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132bc 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, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000132fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013300 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x00013304 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013314 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013324 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, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013364 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013368 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001336c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001337c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001338c 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, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000133d0 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000133d4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000133e4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133f4 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, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013434 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013438 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001343c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001344c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001345c 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, //0x0001346c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001348c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001349c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000134a0 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x000134a4 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000134b4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134c4 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, //0x000134d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013504 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013508 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x0001350c QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001351c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001352c 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, //0x0001353c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001354c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001355c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001356c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013570 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013574 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013584 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013594 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, //0x000135a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000135d4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000135d8 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000135dc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000135ec QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135fc 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, //0x0001360c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001361c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001362c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001363c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013640 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013644 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013654 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013664 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, //0x00013674 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000136a4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136a8 .p2align 4, 0x00 + //0x000136b0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000136b0 .quad 0x3ff0000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000136b8 .quad 0x4024000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000136c0 .quad 0x4059000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000136c8 .quad 0x408f400000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000136d0 .quad 0x40c3880000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000136d8 .quad 0x40f86a0000000000 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000136e0 .quad 0x412e848000000000 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000136e8 .quad 0x416312d000000000 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000136f0 .quad 0x4197d78400000000 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000136f8 .quad 0x41cdcd6500000000 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x00013700 .quad 0x4202a05f20000000 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x00013708 .quad 0x42374876e8000000 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013710 .quad 0x426d1a94a2000000 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013718 .quad 0x42a2309ce5400000 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013720 .quad 0x42d6bcc41e900000 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013728 .quad 0x430c6bf526340000 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013730 .quad 0x4341c37937e08000 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013738 .quad 0x4376345785d8a000 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013740 .quad 0x43abc16d674ec800 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013748 .quad 0x43e158e460913d00 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013750 .quad 0x4415af1d78b58c40 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013758 .quad 0x444b1ae4d6e2ef50 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013760 .quad 0x4480f0cf064dd592 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013768 .p2align 4, 0x00 + //0x00013770 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013770 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013778 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013780 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013788 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013790 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013798 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x000137a0 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x000137a8 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000137b0 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000137b8 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000137c0 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000137c8 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000137d0 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000137d8 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000137e0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000137e8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000137f0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000137f8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x00013800 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x00013808 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013810 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013818 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013820 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013828 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013830 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013838 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013840 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013848 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013850 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013858 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013860 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013868 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013870 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013878 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013880 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013888 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013890 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013898 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x000138a0 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x000138a8 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000138b0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000138b8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000138c0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000138c8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000138d0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000138d8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000138e0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000138e8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000138f0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000138f8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013900 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013908 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013910 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013918 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013920 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013928 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013930 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013938 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013940 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013948 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013950 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013958 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013960 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013968 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013970 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013978 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013980 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013988 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013990 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013998 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x000139a0 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x000139a8 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000139b0 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000139b8 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000139c0 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000139c8 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000139d0 .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 bebd83c80..1a4ea0ae3 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 -//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 __f32toa(out *byte, val float32) (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 __lspace(sp unsafe.Pointer, nb int, off int) (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 __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (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 __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (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 __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (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 __value(s unsafe.Pointer, n int, p int, v *types.JsonState, 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 __vstring(s *string, p *int, v *types.JsonState, flags uint64) +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 __vnumber(s *string, p *int, v *types.JsonState) +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 __vsigned(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 __vunsigned(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 __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +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_fast(s *string, p *int) (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_array(s *string, p *int, m *types.StateMachine, flags uint64) (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_object(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_number(s *string, p *int) (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 __validate_one(s *string, p *int, m *types.StateMachine) (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 __get_by_path(s *string, p *int, path *[]interface{}, 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 __validate_utf8(s *string, p *int, 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_fast(s *string) (ret int) \ No newline at end of file +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} + +//go:nosplit +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 07789ae4a..000000000 --- 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 8adf5e91f..000000000 --- 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 10b3d60f5..577d30a3a 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,679 @@ package avx2 -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr - -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 +import ( + `github.com/bytedance/sonic/loader` ) const ( - _stack__f32toa = 48 + _entry__f32toa = 34640 + _entry__f64toa = 368 + _entry__format_significand = 39440 + _entry__format_integer = 3616 + _entry__fsm_exec = 22128 + _entry__advance_ns = 17856 + _entry__advance_string = 18592 + _entry__advance_string_default = 41024 + _entry__do_skip_number = 24624 + _entry__get_by_path = 29616 + _entry__skip_one_fast = 26736 + _entry__unescape = 41824 + _entry__unhex16_is = 11376 + _entry__html_escape = 11712 + _entry__i64toa = 4048 + _entry__u64toa = 4320 + _entry__lspace = 64 + _entry__quote = 5872 + _entry__skip_array = 22080 + _entry__skip_number = 26128 + _entry__skip_object = 24048 + _entry__skip_one = 26304 + _entry__unquote = 8816 + _entry__validate_one = 26368 + _entry__validate_utf8 = 30960 + _entry__validate_utf8_fast = 31920 + _entry__value = 16320 + _entry__vnumber = 19680 + _entry__atof_eisel_lemire64 = 13760 + _entry__atof_native = 15712 + _entry__decimal_to_f64 = 14240 + _entry__left_shift = 39920 + _entry__right_shift = 40464 + _entry__vsigned = 21328 + _entry__vstring = 18352 + _entry__vunsigned = 21696 +) + +const ( + _stack__f32toa = 64 _stack__f64toa = 80 - _stack__get_by_path = 296 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 136 + _stack__advance_ns = 8 + _stack__advance_string = 48 + _stack__advance_string_default = 48 + _stack__do_skip_number = 40 + _stack__get_by_path = 304 + _stack__skip_one_fast = 184 + _stack__unescape = 64 + _stack__unhex16_is = 8 _stack__html_escape = 72 _stack__i64toa = 16 - _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__unquote = 72 - _stack__validate_one = 128 + _stack__lspace = 8 + _stack__quote = 72 + _stack__skip_array = 144 + _stack__skip_number = 96 + _stack__skip_object = 144 + _stack__skip_one = 144 + _stack__unquote = 112 + _stack__validate_one = 144 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 176 - _stack__value = 328 - _stack__vnumber = 240 + _stack__value = 352 + _stack__vnumber = 264 + _stack__atof_eisel_lemire64 = 40 + _stack__atof_native = 144 + _stack__decimal_to_f64 = 88 + _stack__left_shift = 32 + _stack__right_shift = 16 _stack__vsigned = 16 - _stack__vstring = 112 - _stack__vunsigned = 16 -) - -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 + _stack__vstring = 104 + _stack__vunsigned = 24 ) 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 + _size__f32toa = 3792 + _size__f64toa = 3248 + _size__format_significand = 480 + _size__format_integer = 432 + _size__fsm_exec = 1380 + _size__advance_ns = 496 + _size__advance_string = 1040 + _size__advance_string_default = 800 + _size__do_skip_number = 1300 + _size__get_by_path = 1344 + _size__skip_one_fast = 2360 + _size__unescape = 704 + _size__unhex16_is = 144 + _size__html_escape = 2048 + _size__i64toa = 272 + _size__u64toa = 1408 + _size__lspace = 256 + _size__quote = 2896 + _size__skip_array = 48 + _size__skip_number = 160 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2560 + _size__validate_one = 64 + _size__validate_utf8 = 688 + _size__validate_utf8_fast = 2672 + _size__value = 992 + _size__vnumber = 1648 + _size__atof_eisel_lemire64 = 416 + _size__atof_native = 608 + _size__decimal_to_f64 = 1472 + _size__left_shift = 544 + _size__right_shift = 496 + _size__vsigned = 368 + _size__vstring = 144 + _size__vunsigned = 368 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3734, 64}, + {3738, 48}, + {3739, 40}, + {3741, 32}, + {3743, 24}, + {3745, 16}, + {3747, 8}, + {3751, 0}, + {3781, 64}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3124, 56}, + {3128, 48}, + {3129, 40}, + {3131, 32}, + {3133, 24}, + {3135, 16}, + {3137, 8}, + {3141, 0}, + {3234, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {468, 24}, + {469, 16}, + {471, 8}, + {473, 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}, + {1017, 88}, + {1021, 48}, + {1022, 40}, + {1024, 32}, + {1026, 24}, + {1028, 16}, + {1030, 8}, + {1031, 0}, + {1380, 88}, + } + _pcsp__advance_ns = [][2]uint32{ + {1, 0}, + {442, 8}, + {446, 0}, + {467, 8}, + {471, 0}, + {489, 8}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {396, 48}, + {397, 40}, + {399, 32}, + {401, 24}, + {403, 16}, + {405, 8}, + {409, 0}, + {1031, 48}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {314, 48}, + {315, 40}, + {317, 32}, + {319, 24}, + {321, 16}, + {323, 8}, + {327, 0}, + {786, 48}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {1253, 40}, + {1254, 32}, + {1256, 24}, + {1258, 16}, + {1260, 8}, + {1264, 0}, + {1300, 40}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1293, 120}, + {1297, 48}, + {1298, 40}, + {1300, 32}, + {1302, 24}, + {1304, 16}, + {1306, 8}, + {1307, 0}, + {1344, 120}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {396, 176}, + {397, 168}, + {399, 160}, + {401, 152}, + {403, 144}, + {405, 136}, + {409, 128}, + {2360, 176}, + } + _pcsp__unescape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {246, 56}, + {250, 48}, + {251, 40}, + {253, 32}, + {255, 24}, + {257, 16}, + {259, 8}, + {260, 0}, + {695, 56}, + } + _pcsp__unhex16_is = [][2]uint32{ + {1, 0}, + {35, 8}, + {36, 0}, + {62, 8}, + {63, 0}, + {97, 8}, + {98, 0}, + {121, 8}, + {123, 0}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2017, 72}, + {2021, 48}, + {2022, 40}, + {2024, 32}, + {2026, 24}, + {2028, 16}, + {2030, 8}, + {2035, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {171, 8}, + {172, 0}, + {207, 8}, + {208, 0}, + {222, 8}, + {223, 0}, + {247, 8}, + {248, 0}, + {253, 8}, + {259, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {13, 0}, + {162, 8}, + {163, 0}, + {175, 8}, + {240, 0}, + {498, 8}, + {499, 0}, + {519, 8}, + {592, 0}, + {852, 8}, + {928, 0}, + {1376, 8}, + {1378, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {186, 8}, + {190, 0}, + {199, 8}, + {203, 0}, + {210, 8}, + {214, 0}, + {232, 8}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2828, 72}, + {2832, 48}, + {2833, 40}, + {2835, 32}, + {2837, 24}, + {2839, 16}, + {2841, 8}, + {2845, 0}, + {2876, 72}, + } + _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}, + {12, 40}, + {13, 48}, + {107, 56}, + {111, 48}, + {112, 40}, + {114, 32}, + {116, 24}, + {118, 16}, + {120, 8}, + {121, 0}, + {145, 56}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1836, 104}, + {1840, 48}, + {1841, 40}, + {1843, 32}, + {1845, 24}, + {1847, 16}, + {1849, 8}, + {1853, 0}, + {2554, 104}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {33, 8}, + {39, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {639, 48}, + {643, 40}, + {644, 32}, + {646, 24}, + {648, 16}, + {650, 8}, + {651, 0}, + {682, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {1706, 176}, + {1707, 168}, + {1711, 160}, + {2003, 176}, + {2004, 168}, + {2008, 160}, + {2656, 176}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {974, 88}, + {978, 48}, + {979, 40}, + {981, 32}, + {983, 24}, + {985, 16}, + {987, 8}, + {992, 0}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {150, 120}, + {154, 48}, + {155, 40}, + {157, 32}, + {159, 24}, + {161, 16}, + {163, 8}, + {164, 0}, + {1638, 120}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {315, 40}, + {316, 32}, + {318, 24}, + {320, 16}, + {322, 8}, + {323, 0}, + {387, 40}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {596, 56}, + {600, 8}, + {602, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1431, 56}, + {1435, 48}, + {1436, 40}, + {1438, 32}, + {1440, 24}, + {1442, 16}, + {1444, 8}, + {1448, 0}, + {1460, 56}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {418, 32}, + {419, 24}, + {421, 16}, + {423, 8}, + {424, 0}, + {539, 32}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {452, 16}, + {453, 8}, + {454, 0}, + {462, 16}, + {463, 8}, + {464, 0}, + {472, 16}, + {473, 8}, + {475, 0}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {113, 16}, + {114, 8}, + {115, 0}, + {126, 16}, + {127, 8}, + {128, 0}, + {278, 16}, + {279, 8}, + {280, 0}, + {284, 16}, + {285, 8}, + {286, 0}, + {340, 16}, + {341, 8}, + {342, 0}, + {353, 16}, + {354, 8}, + {356, 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}, + {4, 8}, + {6, 16}, + {74, 24}, + {75, 16}, + {77, 8}, + {78, 0}, + {89, 24}, + {90, 16}, + {92, 8}, + {93, 0}, + {116, 24}, + {117, 16}, + {119, 8}, + {120, 0}, + {281, 24}, + {282, 16}, + {284, 8}, + {285, 0}, + {336, 24}, + {337, 16}, + {339, 8}, + {340, 0}, + {348, 24}, + {349, 16}, + {351, 8}, + {353, 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}, + {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, + {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, + {"_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}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_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 000000000..0609d519c --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_text_amd64.go @@ -0,0 +1,15187 @@ +// +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, 0x89, 0xd0, //0x00000044 movq %rdx, %rax + 0x48, 0x89, 0xf1, //0x00000047 movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x0000004a subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x0000004d cmpq $32, %rcx + 0x0f, 0x82, 0xc0, 0x00, 0x00, 0x00, //0x00000051 jb LBB0_1 + 0x48, 0x89, 0xc1, //0x00000057 movq %rax, %rcx + 0x48, 0xf7, 0xd9, //0x0000005a negq %rcx + 0xc5, 0xfd, 0x6f, 0x05, 0xbb, 0xff, 0xff, 0xff, //0x0000005d vmovdqa $-69(%rip), %ymm0 /* LCPI0_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000065 .p2align 4, 0x90 + //0x00000070 LBB0_10 + 0xc5, 0xfe, 0x6f, 0x0c, 0x07, //0x00000070 vmovdqu (%rdi,%rax), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x00000075 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x0000007a vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xd1, //0x0000007e vpmovmskb %ymm1, %edx + 0x83, 0xfa, 0xff, //0x00000082 cmpl $-1, %edx + 0x0f, 0x85, 0x74, 0x00, 0x00, 0x00, //0x00000085 jne LBB0_11 + 0x48, 0x83, 0xc0, 0x20, //0x0000008b addq $32, %rax + 0x48, 0x8d, 0x14, 0x0e, //0x0000008f leaq (%rsi,%rcx), %rdx + 0x48, 0x83, 0xc2, 0xe0, //0x00000093 addq $-32, %rdx + 0x48, 0x83, 0xc1, 0xe0, //0x00000097 addq $-32, %rcx + 0x48, 0x83, 0xfa, 0x1f, //0x0000009b cmpq $31, %rdx + 0x0f, 0x87, 0xcb, 0xff, 0xff, 0xff, //0x0000009f ja LBB0_10 + 0x48, 0x89, 0xf8, //0x000000a5 movq %rdi, %rax + 0x48, 0x29, 0xc8, //0x000000a8 subq %rcx, %rax + 0x48, 0x01, 0xce, //0x000000ab addq %rcx, %rsi + 0x48, 0x89, 0xf1, //0x000000ae movq %rsi, %rcx + 0x48, 0x85, 0xc9, //0x000000b1 testq %rcx, %rcx + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x000000b4 je LBB0_14 + //0x000000ba LBB0_5 + 0x4c, 0x8d, 0x04, 0x08, //0x000000ba leaq (%rax,%rcx), %r8 + 0x31, 0xd2, //0x000000be xorl %edx, %edx + 0x49, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000000c0 movabsq $4294977024, %r9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000000ca .p2align 4, 0x90 + //0x000000d0 LBB0_6 + 0x0f, 0xbe, 0x34, 0x10, //0x000000d0 movsbl (%rax,%rdx), %esi + 0x83, 0xfe, 0x20, //0x000000d4 cmpl $32, %esi + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000000d7 ja LBB0_8 + 0x49, 0x0f, 0xa3, 0xf1, //0x000000dd btq %rsi, %r9 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000000e1 jae LBB0_8 + 0x48, 0x83, 0xc2, 0x01, //0x000000e7 addq $1, %rdx + 0x48, 0x39, 0xd1, //0x000000eb cmpq %rdx, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000000ee jne LBB0_6 + 0x4c, 0x89, 0xc0, //0x000000f4 movq %r8, %rax + //0x000000f7 LBB0_14 + 0x48, 0x29, 0xf8, //0x000000f7 subq %rdi, %rax + 0x5d, //0x000000fa popq %rbp + 0xc5, 0xf8, 0x77, //0x000000fb vzeroupper + 0xc3, //0x000000fe retq + //0x000000ff LBB0_11 + 0xf7, 0xd2, //0x000000ff notl %edx + 0x0f, 0xbc, 0xc2, //0x00000101 bsfl %edx, %eax + 0x48, 0x29, 0xc8, //0x00000104 subq %rcx, %rax + 0x5d, //0x00000107 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000108 vzeroupper + 0xc3, //0x0000010b retq + //0x0000010c LBB0_8 + 0x48, 0x29, 0xf8, //0x0000010c subq %rdi, %rax + 0x48, 0x01, 0xd0, //0x0000010f addq %rdx, %rax + 0x5d, //0x00000112 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000113 vzeroupper + 0xc3, //0x00000116 retq + //0x00000117 LBB0_1 + 0x48, 0x01, 0xf8, //0x00000117 addq %rdi, %rax + 0x48, 0x85, 0xc9, //0x0000011a testq %rcx, %rcx + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x0000011d jne LBB0_5 + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00000123 jmp LBB0_14 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000128 .p2align 5, 0x00 + //0x00000140 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000140 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000150 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000160 .p2align 4, 0x00 + //0x00000160 LCPI1_1 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000160 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000170 .p2align 4, 0x90 + //0x00000170 _f64toa + 0x55, //0x00000170 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000171 movq %rsp, %rbp + 0x41, 0x57, //0x00000174 pushq %r15 + 0x41, 0x56, //0x00000176 pushq %r14 + 0x41, 0x55, //0x00000178 pushq %r13 + 0x41, 0x54, //0x0000017a pushq %r12 + 0x53, //0x0000017c pushq %rbx + 0x50, //0x0000017d pushq %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x0000017e vmovq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000183 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000186 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000018a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000018f cmpl $2047, %eax + 0x0f, 0x84, 0x4e, 0x0c, 0x00, 0x00, //0x00000194 je LBB1_130 + 0x48, 0x89, 0xfe, //0x0000019a movq %rdi, %rsi + 0xc6, 0x07, 0x2d, //0x0000019d movb $45, (%rdi) + 0x49, 0x89, 0xd5, //0x000001a0 movq %rdx, %r13 + 0x49, 0xc1, 0xed, 0x3f, //0x000001a3 shrq $63, %r13 + 0x4e, 0x8d, 0x3c, 0x2f, //0x000001a7 leaq (%rdi,%r13), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000001ab leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x000001b3 testq %rcx, %rcx + 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000001b6 je LBB1_6 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000001bc movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x000001c6 andq %rdi, %rdx + 0x85, 0xc0, //0x000001c9 testl %eax, %eax + 0x0f, 0x84, 0x1e, 0x0c, 0x00, 0x00, //0x000001cb je LBB1_131 + 0x48, 0x83, 0xc7, 0x01, //0x000001d1 addq $1, %rdi + 0x48, 0x09, 0xd7, //0x000001d5 orq %rdx, %rdi + 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x000001d8 leal $-1075(%rax), %r9d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000001df leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x000001e5 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000001e8 ja LBB1_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000001ee movl $1075, %ecx + 0x29, 0xc1, //0x000001f3 subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000001f5 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x000001fc shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x000001ff notq %rbx + 0x48, 0x85, 0xdf, //0x00000202 testq %rbx, %rdi + 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000205 je LBB1_43 + //0x0000020b LBB1_7 + 0x48, 0x89, 0x75, 0xd0, //0x0000020b movq %rsi, $-48(%rbp) + //0x0000020f LBB1_8 + 0x48, 0x85, 0xd2, //0x0000020f testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x00000212 sete %cl + 0x83, 0xf8, 0x02, //0x00000215 cmpl $2, %eax + 0x0f, 0x93, 0xc0, //0x00000218 setae %al + 0x20, 0xc8, //0x0000021b andb %cl, %al + 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000021d leaq (,%rdi,4), %r8 + 0x0f, 0xb6, 0xc0, //0x00000225 movzbl %al, %eax + 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000228 imull $1262611, %r9d, %ecx + 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000022f leal $-524031(%rcx), %r10d + 0x84, 0xc0, //0x00000236 testb %al, %al + 0x44, 0x0f, 0x44, 0xd1, //0x00000238 cmovel %ecx, %r10d + 0x48, 0x8d, 0x1c, 0xb8, //0x0000023c leaq (%rax,%rdi,4), %rbx + 0x48, 0x83, 0xc3, 0xfe, //0x00000240 addq $-2, %rbx + 0x41, 0xc1, 0xfa, 0x16, //0x00000244 sarl $22, %r10d + 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000248 imull $-1741647, %r10d, %ecx + 0xc1, 0xe9, 0x13, //0x0000024f shrl $19, %ecx + 0x44, 0x01, 0xc9, //0x00000252 addl %r9d, %ecx + 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000255 movl $292, %esi + 0x44, 0x29, 0xd6, //0x0000025a subl %r10d, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000025d shlq $4, %rsi + 0x80, 0xc1, 0x01, //0x00000261 addb $1, %cl + 0x48, 0xd3, 0xe3, //0x00000264 shlq %cl, %rbx + 0x4c, 0x8d, 0x1d, 0x42, 0xd0, 0x00, 0x00, //0x00000267 leaq $53314(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ + 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x0000026e movq $8(%rsi,%r11), %r12 + 0x48, 0x89, 0xd8, //0x00000273 movq %rbx, %rax + 0x49, 0xf7, 0xe4, //0x00000276 mulq %r12 + 0x49, 0x89, 0xd1, //0x00000279 movq %rdx, %r9 + 0x4e, 0x8b, 0x34, 0x1e, //0x0000027c movq (%rsi,%r11), %r14 + 0x48, 0x89, 0xd8, //0x00000280 movq %rbx, %rax + 0x49, 0xf7, 0xe6, //0x00000283 mulq %r14 + 0x48, 0x89, 0xd3, //0x00000286 movq %rdx, %rbx + 0x4c, 0x01, 0xc8, //0x00000289 addq %r9, %rax + 0x48, 0x83, 0xd3, 0x00, //0x0000028c adcq $0, %rbx + 0x45, 0x31, 0xdb, //0x00000290 xorl %r11d, %r11d + 0x48, 0x83, 0xf8, 0x02, //0x00000293 cmpq $2, %rax + 0x41, 0x0f, 0x93, 0xc3, //0x00000297 setae %r11b + 0x49, 0xd3, 0xe0, //0x0000029b shlq %cl, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x0000029e leaq $2(,%rdi,4), %rsi + 0x4c, 0x89, 0xc0, //0x000002a6 movq %r8, %rax + 0x49, 0xf7, 0xe4, //0x000002a9 mulq %r12 + 0x49, 0x89, 0xd1, //0x000002ac movq %rdx, %r9 + 0x49, 0x09, 0xdb, //0x000002af orq %rbx, %r11 + 0x4c, 0x89, 0xc0, //0x000002b2 movq %r8, %rax + 0x49, 0xf7, 0xe6, //0x000002b5 mulq %r14 + 0x49, 0x89, 0xd0, //0x000002b8 movq %rdx, %r8 + 0x4c, 0x01, 0xc8, //0x000002bb addq %r9, %rax + 0x49, 0x83, 0xd0, 0x00, //0x000002be adcq $0, %r8 + 0x31, 0xdb, //0x000002c2 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x02, //0x000002c4 cmpq $2, %rax + 0x0f, 0x93, 0xc3, //0x000002c8 setae %bl + 0x48, 0xd3, 0xe6, //0x000002cb shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000002ce movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x000002d1 mulq %r12 + 0x48, 0x89, 0xd1, //0x000002d4 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x000002d7 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x000002da mulq %r14 + 0x4c, 0x09, 0xc3, //0x000002dd orq %r8, %rbx + 0x48, 0x01, 0xc8, //0x000002e0 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000002e3 adcq $0, %rdx + 0x31, 0xc9, //0x000002e7 xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x02, //0x000002e9 cmpq $2, %rax + 0x0f, 0x93, 0xc1, //0x000002ed setae %cl + 0x48, 0x09, 0xd1, //0x000002f0 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x000002f3 andl $1, %edi + 0x49, 0x01, 0xfb, //0x000002f6 addq %rdi, %r11 + 0x48, 0x29, 0xf9, //0x000002f9 subq %rdi, %rcx + 0x48, 0x83, 0xfb, 0x28, //0x000002fc cmpq $40, %rbx + 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000300 jb LBB1_10 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000306 movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000310 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000313 mulq %rdx + 0x48, 0x89, 0xd7, //0x00000316 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x00000319 shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000031d leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000325 leaq (%rax,%rax,4), %rdx + 0x49, 0x39, 0xd3, //0x00000329 cmpq %rdx, %r11 + 0x40, 0x0f, 0x97, 0xc6, //0x0000032c seta %sil + 0x48, 0x8d, 0x14, 0x80, //0x00000330 leaq (%rax,%rax,4), %rdx + 0x48, 0x83, 0xc2, 0x28, //0x00000334 addq $40, %rdx + 0x31, 0xc0, //0x00000338 xorl %eax, %eax + 0x48, 0x39, 0xca, //0x0000033a cmpq %rcx, %rdx + 0x0f, 0x96, 0xc2, //0x0000033d setbe %dl + 0x40, 0x38, 0xd6, //0x00000340 cmpb %dl, %sil + 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000343 je LBB1_22 + //0x00000349 LBB1_10 + 0x4c, 0x89, 0xc6, //0x00000349 movq %r8, %rsi + 0x48, 0xc1, 0xee, 0x02, //0x0000034c shrq $2, %rsi + 0x4c, 0x89, 0xc2, //0x00000350 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000353 andq $-4, %rdx + 0x49, 0x39, 0xd3, //0x00000357 cmpq %rdx, %r11 + 0x41, 0x0f, 0x97, 0xc1, //0x0000035a seta %r9b + 0x48, 0x8d, 0x7a, 0x04, //0x0000035e leaq $4(%rdx), %rdi + 0x48, 0x39, 0xcf, //0x00000362 cmpq %rcx, %rdi + 0x0f, 0x96, 0xc0, //0x00000365 setbe %al + 0x44, 0x30, 0xc8, //0x00000368 xorb %r9b, %al + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x0000036b je LBB1_14 + 0x48, 0x83, 0xca, 0x02, //0x00000371 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000375 movl $1, %edi + 0x48, 0x39, 0xd3, //0x0000037a cmpq %rdx, %rbx + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000037d ja LBB1_13 + 0x0f, 0x94, 0xc0, //0x00000383 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000386 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000038a andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000038d movzbl %r8b, %edi + //0x00000391 LBB1_13 + 0x48, 0x01, 0xf7, //0x00000391 addq %rsi, %rdi + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000394 movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x0000039e leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x000003a6 cmpq %rax, %rdi + 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000003a9 jbe LBB1_23 + //0x000003af LBB1_15 + 0x48, 0x89, 0xf8, //0x000003af movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000003b2 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000003b6 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000003bb cmpq $48828125, %rax + 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x000003c1 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x000003c7 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000003ca shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000003ce movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000003d3 cmpq $244140625, %rax + 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x000003d9 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x000003df movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000003e2 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000003e6 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000003eb cmpq $1220703125, %rax + 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x000003f1 jb LBB1_31 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x000003f7 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x000003fc movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000406 cmpq %rax, %rdi + 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000409 jb LBB1_31 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000040f movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000414 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000041e cmpq %rax, %rdi + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000421 jb LBB1_31 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000427 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000431 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000434 movl $17, %edx + //0x00000439 LBB1_21 + 0x83, 0xda, 0x00, //0x00000439 sbbl $0, %edx + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000043c jmp LBB1_31 + //0x00000441 LBB1_6 + 0x41, 0xc6, 0x07, 0x30, //0x00000441 movb $48, (%r15) + 0x41, 0x29, 0xf7, //0x00000445 subl %esi, %r15d + 0x41, 0x83, 0xc7, 0x01, //0x00000448 addl $1, %r15d + 0x44, 0x89, 0xfb, //0x0000044c movl %r15d, %ebx + 0xe9, 0x4e, 0x09, 0x00, 0x00, //0x0000044f jmp LBB1_128 + //0x00000454 LBB1_14 + 0x48, 0x39, 0xf9, //0x00000454 cmpq %rdi, %rcx + 0x48, 0x83, 0xde, 0xff, //0x00000457 sbbq $-1, %rsi + 0x48, 0x89, 0xf7, //0x0000045b movq %rsi, %rdi + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000045e movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x00000468 leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x00000470 cmpq %rax, %rdi + 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x00000473 ja LBB1_15 + //0x00000479 LBB1_23 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000479 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x0000047e cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000482 jb LBB1_31 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000488 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x0000048d cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000491 jb LBB1_31 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00000497 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x0000049c cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000004a3 jb LBB1_31 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000004a9 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000004ae cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000004b5 jb LBB1_31 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000004bb movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000004c0 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000004c7 jb LBB1_31 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000004cd movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000004d2 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000004d9 jb LBB1_31 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000004df movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000004e4 cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000004eb jb LBB1_31 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000004f1 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000004f6 cmpq $100000000, %rdi + 0x0f, 0x83, 0xd4, 0x08, 0x00, 0x00, //0x000004fd jae LBB1_129 + //0x00000503 LBB1_31 + 0x46, 0x8d, 0x34, 0x12, //0x00000503 leal (%rdx,%r10), %r14d + 0x42, 0x8d, 0x04, 0x12, //0x00000507 leal (%rdx,%r10), %eax + 0x83, 0xc0, 0x05, //0x0000050b addl $5, %eax + 0x83, 0xf8, 0x1b, //0x0000050e cmpl $27, %eax + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000511 jb LBB1_39 + 0x4d, 0x8d, 0x67, 0x01, //0x00000517 leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x0000051b movq %r12, %rsi + 0xe8, 0xed, 0x94, 0x00, 0x00, //0x0000051e callq _format_significand + 0x48, 0x89, 0xc3, //0x00000523 movq %rax, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000526 movq $-48(%rbp), %rdi + 0x48, 0x29, 0xf8, //0x0000052a subq %rdi, %rax + 0x4c, 0x29, 0xe8, //0x0000052d subq %r13, %rax + //0x00000530 .p2align 4, 0x90 + //0x00000530 LBB1_33 + 0x48, 0x83, 0xc0, 0xff, //0x00000530 addq $-1, %rax + 0x80, 0x7b, 0xff, 0x30, //0x00000534 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000538 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000053c je LBB1_33 + 0x41, 0x8a, 0x4f, 0x01, //0x00000542 movb $1(%r15), %cl + 0x41, 0x88, 0x0f, //0x00000546 movb %cl, (%r15) + 0x48, 0x83, 0xf8, 0x02, //0x00000549 cmpq $2, %rax + 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000054d jl LBB1_36 + 0x48, 0x83, 0xc3, 0x01, //0x00000553 addq $1, %rbx + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000557 movb $46, (%r12) + //0x0000055c LBB1_36 + 0xc6, 0x03, 0x65, //0x0000055c movb $101, (%rbx) + 0x45, 0x85, 0xf6, //0x0000055f testl %r14d, %r14d + 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x00000562 jle LBB1_51 + 0x41, 0x83, 0xc6, 0xff, //0x00000568 addl $-1, %r14d + 0xc6, 0x43, 0x01, 0x2b, //0x0000056c movb $43, $1(%rbx) + 0x44, 0x89, 0xf0, //0x00000570 movl %r14d, %eax + 0x83, 0xf8, 0x64, //0x00000573 cmpl $100, %eax + 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00000576 jl LBB1_52 + //0x0000057c LBB1_38 + 0x89, 0xc1, //0x0000057c movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000057e movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000583 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00000587 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x0000058b leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x0000058e leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x00000591 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x46, 0xcc, 0x00, 0x00, //0x00000593 leaq $52294(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x0000059a movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x0000059e movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000005a2 orb $48, %al + 0x88, 0x43, 0x04, //0x000005a4 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000005a7 addq $5, %rbx + 0xe9, 0xf0, 0x07, 0x00, 0x00, //0x000005ab jmp LBB1_127 + //0x000005b0 LBB1_39 + 0x45, 0x85, 0xd2, //0x000005b0 testl %r10d, %r10d + 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000005b3 js LBB1_54 + 0x4d, 0x63, 0xf6, //0x000005b9 movslq %r14d, %r14 + 0x4b, 0x8d, 0x1c, 0x37, //0x000005bc leaq (%r15,%r14), %rbx + 0x4c, 0x89, 0xfe, //0x000005c0 movq %r15, %rsi + 0xe8, 0x58, 0x08, 0x00, 0x00, //0x000005c3 callq _format_integer + 0x48, 0x39, 0xd8, //0x000005c8 cmpq %rbx, %rax + 0x0f, 0x83, 0xcb, 0x07, 0x00, 0x00, //0x000005cb jae LBB1_104 + 0x4d, 0x01, 0xf7, //0x000005d1 addq %r14, %r15 + 0x4d, 0x89, 0xf8, //0x000005d4 movq %r15, %r8 + 0x49, 0x29, 0xc0, //0x000005d7 subq %rax, %r8 + 0x49, 0x83, 0xf8, 0x10, //0x000005da cmpq $16, %r8 + 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x000005de jae LBB1_70 + //0x000005e4 LBB1_42 + 0x48, 0x89, 0xc1, //0x000005e4 movq %rax, %rcx + 0xe9, 0xaf, 0x03, 0x00, 0x00, //0x000005e7 jmp LBB1_86 + //0x000005ec LBB1_22 + 0x88, 0xd0, //0x000005ec movb %dl, %al + 0x48, 0x01, 0xc7, //0x000005ee addq %rax, %rdi + 0x41, 0x83, 0xc2, 0x01, //0x000005f1 addl $1, %r10d + 0x49, 0xbc, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000005f5 movabsq $8589934464, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x7f, 0xe4, 0x0b, 0x54, //0x000005ff leaq $1410065535(%r12), %rax + 0x48, 0x39, 0xc7, //0x00000607 cmpq %rax, %rdi + 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000060a ja LBB1_15 + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000610 jmp LBB1_23 + //0x00000615 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000615 shrq %cl, %rdi + 0x48, 0xb8, 0x80, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000618 movabsq $8589934464, %rax + 0x48, 0x05, 0x7f, 0xe4, 0x0b, 0x54, //0x00000622 addq $1410065535, %rax + 0x49, 0x89, 0xf6, //0x00000628 movq %rsi, %r14 + 0x48, 0x39, 0xc7, //0x0000062b cmpq %rax, %rdi + 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000062e jbe LBB1_61 + 0x48, 0x89, 0xf8, //0x00000634 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000637 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000063b movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000640 cmpq $48828125, %rax + 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000646 jb LBB1_69 + 0x48, 0x89, 0xf8, //0x0000064c movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000064f shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000653 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000658 cmpq $244140625, %rax + 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000065e jb LBB1_69 + 0x48, 0x89, 0xf8, //0x00000664 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000667 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000066b movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000670 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x00000676 jb LBB1_69 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000067c movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000681 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000068b cmpq %rax, %rdi + 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x0000068e jb LBB1_69 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x00000694 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000699 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000006a3 cmpq %rax, %rdi + 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000006a6 jb LBB1_69 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000006ac movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000006b6 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000006b9 movl $17, %edx + //0x000006be LBB1_50 + 0x83, 0xda, 0x00, //0x000006be sbbl $0, %edx + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000006c1 jmp LBB1_69 + //0x000006c6 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x000006c6 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000006ca movl $1, %eax + 0x44, 0x29, 0xf0, //0x000006cf subl %r14d, %eax + 0x83, 0xf8, 0x64, //0x000006d2 cmpl $100, %eax + 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x000006d5 jge LBB1_38 + //0x000006db LBB1_52 + 0x83, 0xf8, 0x0a, //0x000006db cmpl $10, %eax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x000006de jl LBB1_60 + 0x89, 0xc0, //0x000006e4 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xf3, 0xca, 0x00, 0x00, //0x000006e6 leaq $51955(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000006ed movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x000006f1 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x000006f5 addq $4, %rbx + 0xe9, 0xa2, 0x06, 0x00, 0x00, //0x000006f9 jmp LBB1_127 + //0x000006fe LBB1_54 + 0x45, 0x85, 0xf6, //0x000006fe testl %r14d, %r14d + 0x0f, 0x8f, 0xda, 0x03, 0x00, 0x00, //0x00000701 jg LBB1_97 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000707 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000070d addq $2, %r15 + 0x45, 0x85, 0xf6, //0x00000711 testl %r14d, %r14d + 0x0f, 0x89, 0xc7, 0x03, 0x00, 0x00, //0x00000714 jns LBB1_97 + 0x41, 0x89, 0xd0, //0x0000071a movl %edx, %r8d + 0x41, 0xf7, 0xd0, //0x0000071d notl %r8d + 0x45, 0x29, 0xd0, //0x00000720 subl %r10d, %r8d + 0x31, 0xc0, //0x00000723 xorl %eax, %eax + 0x41, 0x83, 0xf8, 0x7f, //0x00000725 cmpl $127, %r8d + 0x0f, 0x82, 0x94, 0x03, 0x00, 0x00, //0x00000729 jb LBB1_95 + 0x49, 0x83, 0xc0, 0x01, //0x0000072f addq $1, %r8 + 0x4c, 0x89, 0xc0, //0x00000733 movq %r8, %rax + 0x4c, 0x21, 0xe0, //0x00000736 andq %r12, %rax + 0x48, 0x8d, 0x48, 0x80, //0x00000739 leaq $-128(%rax), %rcx + 0x48, 0x89, 0xce, //0x0000073d movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x00000740 shrq $7, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00000744 addq $1, %rsi + 0x41, 0x89, 0xf1, //0x00000748 movl %esi, %r9d + 0x41, 0x83, 0xe1, 0x03, //0x0000074b andl $3, %r9d + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000074f cmpq $384, %rcx + 0x0f, 0x83, 0x61, 0x02, 0x00, 0x00, //0x00000756 jae LBB1_89 + 0x31, 0xc9, //0x0000075c xorl %ecx, %ecx + 0xe9, 0x0b, 0x03, 0x00, 0x00, //0x0000075e jmp LBB1_91 + //0x00000763 LBB1_60 + 0x04, 0x30, //0x00000763 addb $48, %al + 0x88, 0x43, 0x02, //0x00000765 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000768 addq $3, %rbx + 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x0000076c jmp LBB1_127 + //0x00000771 LBB1_61 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000771 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000776 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x0000077a jb LBB1_69 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000780 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000785 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000789 jb LBB1_69 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000078f movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x00000794 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x0000079b jb LBB1_69 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000007a1 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000007a6 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000007ad jb LBB1_69 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000007b3 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000007b8 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000007bf jb LBB1_69 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000007c5 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000007ca cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000007d1 jb LBB1_69 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000007d7 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000007dc cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000007e3 jb LBB1_69 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000007e9 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000007ee cmpq $100000000, %rdi + 0x0f, 0x83, 0x06, 0x06, 0x00, 0x00, //0x000007f5 jae LBB1_132 + //0x000007fb LBB1_69 + 0x4c, 0x89, 0xfe, //0x000007fb movq %r15, %rsi + 0xe8, 0x1d, 0x06, 0x00, 0x00, //0x000007fe callq _format_integer + 0x48, 0x89, 0xc3, //0x00000803 movq %rax, %rbx + 0x44, 0x29, 0xf3, //0x00000806 subl %r14d, %ebx + 0xe9, 0x94, 0x05, 0x00, 0x00, //0x00000809 jmp LBB1_128 + //0x0000080e LBB1_70 + 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x0000080e cmpq $128, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000815 jae LBB1_72 + 0x31, 0xd2, //0x0000081b xorl %edx, %edx + 0xe9, 0x45, 0x01, 0x00, 0x00, //0x0000081d jmp LBB1_82 + //0x00000822 LBB1_72 + 0x4c, 0x89, 0xc2, //0x00000822 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0x80, //0x00000825 andq $-128, %rdx + 0x48, 0x8d, 0x4a, 0x80, //0x00000829 leaq $-128(%rdx), %rcx + 0x48, 0x89, 0xcf, //0x0000082d movq %rcx, %rdi + 0x48, 0xc1, 0xef, 0x07, //0x00000830 shrq $7, %rdi + 0x48, 0x83, 0xc7, 0x01, //0x00000834 addq $1, %rdi + 0x89, 0xfe, //0x00000838 movl %edi, %esi + 0x83, 0xe6, 0x03, //0x0000083a andl $3, %esi + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x0000083d cmpq $384, %rcx + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000844 jae LBB1_74 + 0x31, 0xc9, //0x0000084a xorl %ecx, %ecx + 0xe9, 0xb3, 0x00, 0x00, 0x00, //0x0000084c jmp LBB1_76 + //0x00000851 LBB1_74 + 0x48, 0x83, 0xe7, 0xfc, //0x00000851 andq $-4, %rdi + 0x48, 0xf7, 0xdf, //0x00000855 negq %rdi + 0x31, 0xc9, //0x00000858 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xde, 0xf8, 0xff, 0xff, //0x0000085a vmovdqa $-1826(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 + //0x00000870 LBB1_75 + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00000870 vmovdqu %ymm0, (%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x20, //0x00000875 vmovdqu %ymm0, $32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x40, //0x0000087b vmovdqu %ymm0, $64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x60, //0x00000881 vmovdqu %ymm0, $96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x00000887 vmovdqu %ymm0, $128(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x00000890 vmovdqu %ymm0, $160(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x00000899 vmovdqu %ymm0, $192(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000008a2 vmovdqu %ymm0, $224(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0x01, 0x00, 0x00, //0x000008ab vmovdqu %ymm0, $256(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0x01, 0x00, 0x00, //0x000008b4 vmovdqu %ymm0, $288(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0x01, 0x00, 0x00, //0x000008bd vmovdqu %ymm0, $320(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0x01, 0x00, 0x00, //0x000008c6 vmovdqu %ymm0, $352(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0x01, 0x00, 0x00, //0x000008cf vmovdqu %ymm0, $384(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0x01, 0x00, 0x00, //0x000008d8 vmovdqu %ymm0, $416(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0x01, 0x00, 0x00, //0x000008e1 vmovdqu %ymm0, $448(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0x01, 0x00, 0x00, //0x000008ea vmovdqu %ymm0, $480(%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x000008f3 addq $512, %rcx + 0x48, 0x83, 0xc7, 0x04, //0x000008fa addq $4, %rdi + 0x0f, 0x85, 0x6c, 0xff, 0xff, 0xff, //0x000008fe jne LBB1_75 + //0x00000904 LBB1_76 + 0x48, 0x85, 0xf6, //0x00000904 testq %rsi, %rsi + 0x0f, 0x84, 0x47, 0x00, 0x00, 0x00, //0x00000907 je LBB1_79 + 0x48, 0x01, 0xc1, //0x0000090d addq %rax, %rcx + 0x48, 0x83, 0xc1, 0x60, //0x00000910 addq $96, %rcx + 0x48, 0xc1, 0xe6, 0x07, //0x00000914 shlq $7, %rsi + 0x31, 0xff, //0x00000918 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0x1e, 0xf8, 0xff, 0xff, //0x0000091a vmovdqa $-2018(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000922 .p2align 4, 0x90 + //0x00000930 LBB1_78 + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xa0, //0x00000930 vmovdqu %ymm0, $-96(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xc0, //0x00000936 vmovdqu %ymm0, $-64(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x39, 0xe0, //0x0000093c vmovdqu %ymm0, $-32(%rcx,%rdi) + 0xc5, 0xfe, 0x7f, 0x04, 0x39, //0x00000942 vmovdqu %ymm0, (%rcx,%rdi) + 0x48, 0x83, 0xef, 0x80, //0x00000947 subq $-128, %rdi + 0x48, 0x39, 0xfe, //0x0000094b cmpq %rdi, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000094e jne LBB1_78 + //0x00000954 LBB1_79 + 0x49, 0x39, 0xd0, //0x00000954 cmpq %rdx, %r8 + 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00000957 je LBB1_104 + 0x41, 0xf6, 0xc0, 0x70, //0x0000095d testb $112, %r8b + 0x0f, 0x84, 0x4e, 0x00, 0x00, 0x00, //0x00000961 je LBB1_88 + //0x00000967 LBB1_82 + 0x4c, 0x89, 0xc6, //0x00000967 movq %r8, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x0000096a andq $-16, %rsi + 0x48, 0x89, 0xc1, //0x0000096e movq %rax, %rcx + 0x48, 0x01, 0xf1, //0x00000971 addq %rsi, %rcx + 0xc5, 0xf9, 0x6f, 0x05, 0xe4, 0xf7, 0xff, 0xff, //0x00000974 vmovdqa $-2076(%rip), %xmm0 /* LCPI1_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, //0x0000097c .p2align 4, 0x90 + //0x00000980 LBB1_83 + 0xc5, 0xfa, 0x7f, 0x04, 0x10, //0x00000980 vmovdqu %xmm0, (%rax,%rdx) + 0x48, 0x83, 0xc2, 0x10, //0x00000985 addq $16, %rdx + 0x48, 0x39, 0xd6, //0x00000989 cmpq %rdx, %rsi + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x0000098c jne LBB1_83 + 0x49, 0x39, 0xf0, //0x00000992 cmpq %rsi, %r8 + 0x0f, 0x84, 0x01, 0x04, 0x00, 0x00, //0x00000995 je LBB1_104 + //0x0000099b LBB1_86 + 0x48, 0x8b, 0x7d, 0xd0, //0x0000099b movq $-48(%rbp), %rdi + 0x90, //0x0000099f .p2align 4, 0x90 + //0x000009a0 LBB1_87 + 0xc6, 0x01, 0x30, //0x000009a0 movb $48, (%rcx) + 0x48, 0x83, 0xc1, 0x01, //0x000009a3 addq $1, %rcx + 0x4c, 0x39, 0xf9, //0x000009a7 cmpq %r15, %rcx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x000009aa jne LBB1_87 + 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x000009b0 jmp LBB1_127 + //0x000009b5 LBB1_88 + 0x48, 0x01, 0xd0, //0x000009b5 addq %rdx, %rax + 0xe9, 0x27, 0xfc, 0xff, 0xff, //0x000009b8 jmp LBB1_42 + //0x000009bd LBB1_89 + 0x48, 0x8b, 0x4d, 0xd0, //0x000009bd movq $-48(%rbp), %rcx + 0x4a, 0x8d, 0x1c, 0x29, //0x000009c1 leaq (%rcx,%r13), %rbx + 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000009c5 addq $482, %rbx + 0x48, 0x83, 0xe6, 0xfc, //0x000009cc andq $-4, %rsi + 0x48, 0xf7, 0xde, //0x000009d0 negq %rsi + 0x31, 0xc9, //0x000009d3 xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x63, 0xf7, 0xff, 0xff, //0x000009d5 vmovdqa $-2205(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x000009dd LBB1_90 + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xfe, 0xff, 0xff, //0x000009dd vmovdqu %ymm0, $-480(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xfe, 0xff, 0xff, //0x000009e6 vmovdqu %ymm0, $-448(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xfe, 0xff, 0xff, //0x000009ef vmovdqu %ymm0, $-416(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x80, 0xfe, 0xff, 0xff, //0x000009f8 vmovdqu %ymm0, $-384(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xa0, 0xfe, 0xff, 0xff, //0x00000a01 vmovdqu %ymm0, $-352(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xc0, 0xfe, 0xff, 0xff, //0x00000a0a vmovdqu %ymm0, $-320(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0xe0, 0xfe, 0xff, 0xff, //0x00000a13 vmovdqu %ymm0, $-288(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x00, 0xff, 0xff, 0xff, //0x00000a1c vmovdqu %ymm0, $-256(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x00000a25 vmovdqu %ymm0, $-224(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x00000a2e vmovdqu %ymm0, $-192(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x00000a37 vmovdqu %ymm0, $-160(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0x80, //0x00000a40 vmovdqu %ymm0, $-128(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xa0, //0x00000a46 vmovdqu %ymm0, $-96(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xc0, //0x00000a4c vmovdqu %ymm0, $-64(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x0b, 0xe0, //0x00000a52 vmovdqu %ymm0, $-32(%rbx,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x0b, //0x00000a58 vmovdqu %ymm0, (%rbx,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00000a5d addq $512, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x00000a64 addq $4, %rsi + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00000a68 jne LBB1_90 + //0x00000a6e LBB1_91 + 0x4d, 0x85, 0xc9, //0x00000a6e testq %r9, %r9 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00000a71 je LBB1_94 + 0x4c, 0x01, 0xe9, //0x00000a77 addq %r13, %rcx + 0x48, 0x8b, 0x75, 0xd0, //0x00000a7a movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf1, //0x00000a7e addq %rsi, %rcx + 0x48, 0x83, 0xc1, 0x62, //0x00000a81 addq $98, %rcx + 0x49, 0xc1, 0xe1, 0x07, //0x00000a85 shlq $7, %r9 + 0x31, 0xf6, //0x00000a89 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0xad, 0xf6, 0xff, 0xff, //0x00000a8b vmovdqa $-2387(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000a93 LBB1_93 + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xa0, //0x00000a93 vmovdqu %ymm0, $-96(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xc0, //0x00000a99 vmovdqu %ymm0, $-64(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0xe0, //0x00000a9f vmovdqu %ymm0, $-32(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x04, 0x31, //0x00000aa5 vmovdqu %ymm0, (%rcx,%rsi) + 0x48, 0x83, 0xee, 0x80, //0x00000aaa subq $-128, %rsi + 0x49, 0x39, 0xf1, //0x00000aae cmpq %rsi, %r9 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00000ab1 jne LBB1_93 + //0x00000ab7 LBB1_94 + 0x49, 0x01, 0xc7, //0x00000ab7 addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x00000aba cmpq %rax, %r8 + 0x0f, 0x84, 0x1e, 0x00, 0x00, 0x00, //0x00000abd je LBB1_97 + //0x00000ac3 LBB1_95 + 0x44, 0x01, 0xf0, //0x00000ac3 addl %r14d, %eax + 0xf7, 0xd8, //0x00000ac6 negl %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000ac8 .p2align 4, 0x90 + //0x00000ad0 LBB1_96 + 0x41, 0xc6, 0x07, 0x30, //0x00000ad0 movb $48, (%r15) + 0x49, 0x83, 0xc7, 0x01, //0x00000ad4 addq $1, %r15 + 0x83, 0xc0, 0xff, //0x00000ad8 addl $-1, %eax + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x00000adb jne LBB1_96 + //0x00000ae1 LBB1_97 + 0x4c, 0x89, 0xfe, //0x00000ae1 movq %r15, %rsi + 0xc5, 0xf8, 0x77, //0x00000ae4 vzeroupper + 0xe8, 0x24, 0x8f, 0x00, 0x00, //0x00000ae7 callq _format_significand + 0x89, 0xc2, //0x00000aec movl %eax, %edx + 0x44, 0x28, 0xfa, //0x00000aee subb %r15b, %dl + 0x44, 0x28, 0xf2, //0x00000af1 subb %r14b, %dl + 0x80, 0xc2, 0x01, //0x00000af4 addb $1, %dl + 0x41, 0x89, 0xc2, //0x00000af7 movl %eax, %r10d + 0x45, 0x29, 0xf2, //0x00000afa subl %r14d, %r10d + 0x45, 0x29, 0xfa, //0x00000afd subl %r15d, %r10d + 0x41, 0x83, 0xc2, 0x01, //0x00000b00 addl $1, %r10d + 0x47, 0x8d, 0x04, 0x3e, //0x00000b04 leal (%r14,%r15), %r8d + 0x41, 0x89, 0xc1, //0x00000b08 movl %eax, %r9d + 0x41, 0xf7, 0xd1, //0x00000b0b notl %r9d + 0x45, 0x01, 0xc1, //0x00000b0e addl %r8d, %r9d + 0x41, 0x29, 0xc0, //0x00000b11 subl %eax, %r8d + 0x41, 0x83, 0xc0, 0xfe, //0x00000b14 addl $-2, %r8d + 0x31, 0xc9, //0x00000b18 xorl %ecx, %ecx + 0x44, 0x89, 0xc7, //0x00000b1a movl %r8d, %edi + 0x48, 0x89, 0xc3, //0x00000b1d movq %rax, %rbx + //0x00000b20 .p2align 4, 0x90 + //0x00000b20 LBB1_98 + 0x48, 0x83, 0xc3, 0xff, //0x00000b20 addq $-1, %rbx + 0x80, 0xc2, 0x03, //0x00000b24 addb $3, %dl + 0x83, 0xc7, 0x01, //0x00000b27 addl $1, %edi + 0x80, 0x7c, 0x08, 0xff, 0x30, //0x00000b2a cmpb $48, $-1(%rax,%rcx) + 0x48, 0x8d, 0x49, 0xff, //0x00000b2f leaq $-1(%rcx), %rcx + 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000b33 je LBB1_98 + 0x48, 0x8d, 0x1c, 0x08, //0x00000b39 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000b3d addq $1, %rbx + 0x45, 0x85, 0xf6, //0x00000b41 testl %r14d, %r14d + 0x0f, 0x8e, 0x52, 0x02, 0x00, 0x00, //0x00000b44 jle LBB1_104 + 0x89, 0xc6, //0x00000b4a movl %eax, %esi + 0x44, 0x29, 0xfe, //0x00000b4c subl %r15d, %esi + 0x01, 0xce, //0x00000b4f addl %ecx, %esi + 0x83, 0xc6, 0x01, //0x00000b51 addl $1, %esi + 0x41, 0x39, 0xf6, //0x00000b54 cmpl %esi, %r14d + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000b57 jge LBB1_105 + 0x45, 0x89, 0xd1, //0x00000b5d movl %r10d, %r9d + 0x49, 0x8d, 0x34, 0x09, //0x00000b60 leaq (%r9,%rcx), %rsi + 0x85, 0xf6, //0x00000b64 testl %esi, %esi + 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000b66 jle LBB1_116 + 0x41, 0x89, 0xf0, //0x00000b6c movl %esi, %r8d + 0x49, 0x8d, 0x58, 0xff, //0x00000b6f leaq $-1(%r8), %rbx + 0x48, 0x83, 0xfb, 0x03, //0x00000b73 cmpq $3, %rbx + 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000b77 jae LBB1_110 + 0x31, 0xdb, //0x00000b7d xorl %ebx, %ebx + 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000b7f jmp LBB1_113 + //0x00000b84 LBB1_105 + 0x44, 0x89, 0xca, //0x00000b84 movl %r9d, %edx + 0x48, 0x29, 0xca, //0x00000b87 subq %rcx, %rdx + 0x85, 0xd2, //0x00000b8a testl %edx, %edx + 0x0f, 0x8e, 0x0a, 0x02, 0x00, 0x00, //0x00000b8c jle LBB1_104 + 0x45, 0x89, 0xc3, //0x00000b92 movl %r8d, %r11d + 0x4d, 0x89, 0xd8, //0x00000b95 movq %r11, %r8 + 0x49, 0x29, 0xc8, //0x00000b98 subq %rcx, %r8 + 0x31, 0xf6, //0x00000b9b xorl %esi, %esi + 0x41, 0x83, 0xf8, 0x7f, //0x00000b9d cmpl $127, %r8d + 0x0f, 0x82, 0x12, 0x02, 0x00, 0x00, //0x00000ba1 jb LBB1_125 + 0x49, 0x29, 0xcb, //0x00000ba7 subq %rcx, %r11 + 0x45, 0x89, 0xc0, //0x00000baa movl %r8d, %r8d + 0x49, 0x83, 0xc0, 0x01, //0x00000bad addq $1, %r8 + 0x4d, 0x21, 0xc4, //0x00000bb1 andq %r8, %r12 + 0x41, 0x89, 0xf9, //0x00000bb4 movl %edi, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x00000bb7 addq $1, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x00000bbb andq $-128, %r9 + 0x49, 0x8d, 0x74, 0x24, 0x80, //0x00000bbf leaq $-128(%r12), %rsi + 0x49, 0x89, 0xf2, //0x00000bc4 movq %rsi, %r10 + 0x49, 0xc1, 0xea, 0x07, //0x00000bc7 shrq $7, %r10 + 0x49, 0x83, 0xc2, 0x01, //0x00000bcb addq $1, %r10 + 0x48, 0x81, 0xfe, 0x80, 0x01, 0x00, 0x00, //0x00000bcf cmpq $384, %rsi + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000bd6 jae LBB1_117 + 0x31, 0xff, //0x00000bdc xorl %edi, %edi + 0xe9, 0x40, 0x01, 0x00, 0x00, //0x00000bde jmp LBB1_119 + //0x00000be3 LBB1_110 + 0x49, 0x01, 0xc9, //0x00000be3 addq %rcx, %r9 + 0x41, 0x83, 0xe1, 0xfc, //0x00000be6 andl $-4, %r9d + 0x49, 0xf7, 0xd9, //0x00000bea negq %r9 + 0x31, 0xdb, //0x00000bed xorl %ebx, %ebx + 0x90, //0x00000bef .p2align 4, 0x90 + //0x00000bf0 LBB1_111 + 0x48, 0x8d, 0x34, 0x18, //0x00000bf0 leaq (%rax,%rbx), %rsi + 0x8b, 0x7c, 0x31, 0xfd, //0x00000bf4 movl $-3(%rcx,%rsi), %edi + 0x89, 0x7c, 0x31, 0xfe, //0x00000bf8 movl %edi, $-2(%rcx,%rsi) + 0x48, 0x83, 0xc3, 0xfc, //0x00000bfc addq $-4, %rbx + 0x49, 0x39, 0xd9, //0x00000c00 cmpq %rbx, %r9 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000c03 jne LBB1_111 + 0x48, 0xf7, 0xdb, //0x00000c09 negq %rbx + //0x00000c0c LBB1_113 + 0x41, 0xf6, 0xc0, 0x03, //0x00000c0c testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000c10 je LBB1_116 + 0x44, 0x0f, 0xb6, 0xc2, //0x00000c16 movzbl %dl, %r8d + 0x41, 0x83, 0xe0, 0x03, //0x00000c1a andl $3, %r8d + 0x49, 0xf7, 0xd8, //0x00000c1e negq %r8 + 0x48, 0x89, 0xc6, //0x00000c21 movq %rax, %rsi + 0x48, 0x29, 0xde, //0x00000c24 subq %rbx, %rsi + 0x31, 0xff, //0x00000c27 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000c29 .p2align 4, 0x90 + //0x00000c30 LBB1_115 + 0x48, 0x8d, 0x1c, 0x3e, //0x00000c30 leaq (%rsi,%rdi), %rbx + 0x0f, 0xb6, 0x14, 0x19, //0x00000c34 movzbl (%rcx,%rbx), %edx + 0x88, 0x54, 0x19, 0x01, //0x00000c38 movb %dl, $1(%rcx,%rbx) + 0x48, 0x83, 0xc7, 0xff, //0x00000c3c addq $-1, %rdi + 0x49, 0x39, 0xf8, //0x00000c40 cmpq %rdi, %r8 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000c43 jne LBB1_115 + //0x00000c49 LBB1_116 + 0x49, 0x63, 0xd6, //0x00000c49 movslq %r14d, %rdx + 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000c4c movb $46, (%r15,%rdx) + 0x48, 0x8d, 0x1c, 0x08, //0x00000c51 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x02, //0x00000c55 addq $2, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000c59 movq $-48(%rbp), %rdi + 0xe9, 0x3e, 0x01, 0x00, 0x00, //0x00000c5d jmp LBB1_127 + //0x00000c62 LBB1_117 + 0x44, 0x89, 0xdb, //0x00000c62 movl %r11d, %ebx + 0x48, 0x83, 0xc3, 0x01, //0x00000c65 addq $1, %rbx + 0x48, 0x83, 0xe3, 0x80, //0x00000c69 andq $-128, %rbx + 0x48, 0x83, 0xc3, 0x80, //0x00000c6d addq $-128, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00000c71 shrq $7, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000c75 addq $1, %rbx + 0x48, 0x83, 0xe3, 0xfc, //0x00000c79 andq $-4, %rbx + 0x48, 0xf7, 0xdb, //0x00000c7d negq %rbx + 0x31, 0xff, //0x00000c80 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0xb6, 0xf4, 0xff, 0xff, //0x00000c82 vmovdqa $-2890(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000c8a LBB1_118 + 0x48, 0x8d, 0x34, 0x38, //0x00000c8a leaq (%rax,%rdi), %rsi + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x01, //0x00000c8e vmovdqu %ymm0, $1(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x21, //0x00000c94 vmovdqu %ymm0, $33(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x41, //0x00000c9a vmovdqu %ymm0, $65(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x31, 0x61, //0x00000ca0 vmovdqu %ymm0, $97(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000ca6 vmovdqu %ymm0, $129(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000caf vmovdqu %ymm0, $161(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000cb8 vmovdqu %ymm0, $193(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000cc1 vmovdqu %ymm0, $225(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x01, 0x01, 0x00, 0x00, //0x00000cca vmovdqu %ymm0, $257(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x21, 0x01, 0x00, 0x00, //0x00000cd3 vmovdqu %ymm0, $289(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x41, 0x01, 0x00, 0x00, //0x00000cdc vmovdqu %ymm0, $321(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x61, 0x01, 0x00, 0x00, //0x00000ce5 vmovdqu %ymm0, $353(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0x81, 0x01, 0x00, 0x00, //0x00000cee vmovdqu %ymm0, $385(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xa1, 0x01, 0x00, 0x00, //0x00000cf7 vmovdqu %ymm0, $417(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xc1, 0x01, 0x00, 0x00, //0x00000d00 vmovdqu %ymm0, $449(%rcx,%rsi) + 0xc5, 0xfe, 0x7f, 0x84, 0x31, 0xe1, 0x01, 0x00, 0x00, //0x00000d09 vmovdqu %ymm0, $481(%rcx,%rsi) + 0x48, 0x81, 0xc7, 0x00, 0x02, 0x00, 0x00, //0x00000d12 addq $512, %rdi + 0x48, 0x83, 0xc3, 0x04, //0x00000d19 addq $4, %rbx + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00000d1d jne LBB1_118 + //0x00000d23 LBB1_119 + 0x49, 0x01, 0xc1, //0x00000d23 addq %rax, %r9 + 0x41, 0xf6, 0xc2, 0x03, //0x00000d26 testb $3, %r10b + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00000d2a je LBB1_122 + 0x41, 0x83, 0xc3, 0x01, //0x00000d30 addl $1, %r11d + 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00000d34 andl $384, %r11d + 0x41, 0x83, 0xc3, 0x80, //0x00000d3b addl $-128, %r11d + 0x41, 0xc1, 0xeb, 0x07, //0x00000d3f shrl $7, %r11d + 0x41, 0x80, 0xc3, 0x01, //0x00000d43 addb $1, %r11b + 0x41, 0x0f, 0xb6, 0xf3, //0x00000d47 movzbl %r11b, %esi + 0x83, 0xe6, 0x03, //0x00000d4b andl $3, %esi + 0x48, 0xc1, 0xe6, 0x07, //0x00000d4e shlq $7, %rsi + 0x48, 0x01, 0xf8, //0x00000d52 addq %rdi, %rax + 0x48, 0x83, 0xc0, 0x61, //0x00000d55 addq $97, %rax + 0x31, 0xff, //0x00000d59 xorl %edi, %edi + 0xc5, 0xfd, 0x6f, 0x05, 0xdd, 0xf3, 0xff, 0xff, //0x00000d5b vmovdqa $-3107(%rip), %ymm0 /* LCPI1_0+0(%rip) */ + //0x00000d63 LBB1_121 + 0x48, 0x8d, 0x1c, 0x38, //0x00000d63 leaq (%rax,%rdi), %rbx + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xa0, //0x00000d67 vmovdqu %ymm0, $-96(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xc0, //0x00000d6d vmovdqu %ymm0, $-64(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x44, 0x19, 0xe0, //0x00000d73 vmovdqu %ymm0, $-32(%rcx,%rbx) + 0xc5, 0xfe, 0x7f, 0x04, 0x19, //0x00000d79 vmovdqu %ymm0, (%rcx,%rbx) + 0x48, 0x83, 0xef, 0x80, //0x00000d7e subq $-128, %rdi + 0x48, 0x39, 0xfe, //0x00000d82 cmpq %rdi, %rsi + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00000d85 jne LBB1_121 + //0x00000d8b LBB1_122 + 0x4a, 0x8d, 0x1c, 0x09, //0x00000d8b leaq (%rcx,%r9), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000d8f addq $1, %rbx + 0x4d, 0x39, 0xe0, //0x00000d93 cmpq %r12, %r8 + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00000d96 jne LBB1_124 + //0x00000d9c LBB1_104 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000d9c movq $-48(%rbp), %rdi + //0x00000da0 LBB1_127 + 0x29, 0xfb, //0x00000da0 subl %edi, %ebx + //0x00000da2 LBB1_128 + 0x89, 0xd8, //0x00000da2 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000da4 addq $8, %rsp + 0x5b, //0x00000da8 popq %rbx + 0x41, 0x5c, //0x00000da9 popq %r12 + 0x41, 0x5d, //0x00000dab popq %r13 + 0x41, 0x5e, //0x00000dad popq %r14 + 0x41, 0x5f, //0x00000daf popq %r15 + 0x5d, //0x00000db1 popq %rbp + 0xc5, 0xf8, 0x77, //0x00000db2 vzeroupper + 0xc3, //0x00000db5 retq + //0x00000db6 LBB1_124 + 0x44, 0x89, 0xe6, //0x00000db6 movl %r12d, %esi + //0x00000db9 LBB1_125 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000db9 movq $-48(%rbp), %rdi + 0x90, 0x90, 0x90, //0x00000dbd .p2align 4, 0x90 + //0x00000dc0 LBB1_126 + 0xc6, 0x03, 0x30, //0x00000dc0 movb $48, (%rbx) + 0x48, 0x83, 0xc3, 0x01, //0x00000dc3 addq $1, %rbx + 0x83, 0xc6, 0x01, //0x00000dc7 addl $1, %esi + 0x39, 0xd6, //0x00000dca cmpl %edx, %esi + 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000dcc jl LBB1_126 + 0xe9, 0xc9, 0xff, 0xff, 0xff, //0x00000dd2 jmp LBB1_127 + //0x00000dd7 LBB1_129 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000dd7 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000dde movl $10, %edx + 0xe9, 0x51, 0xf6, 0xff, 0xff, //0x00000de3 jmp LBB1_21 + //0x00000de8 LBB1_130 + 0x31, 0xdb, //0x00000de8 xorl %ebx, %ebx + 0xe9, 0xb3, 0xff, 0xff, 0xff, //0x00000dea jmp LBB1_128 + //0x00000def LBB1_131 + 0x48, 0x89, 0x75, 0xd0, //0x00000def movq %rsi, $-48(%rbp) + 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000df3 movl $-1074, %r9d + 0x48, 0x89, 0xd7, //0x00000df9 movq %rdx, %rdi + 0xe9, 0x0e, 0xf4, 0xff, 0xff, //0x00000dfc jmp LBB1_8 + //0x00000e01 LBB1_132 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000e01 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000e08 movl $10, %edx + 0xe9, 0xac, 0xf8, 0xff, 0xff, //0x00000e0d jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e12 .p2align 4, 0x90 + //0x00000e20 _format_integer + 0x55, //0x00000e20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e21 movq %rsp, %rbp + 0x53, //0x00000e24 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000e25 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000e28 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000e2b movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000e2e shrq $32, %rax + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000e32 jne LBB2_2 + 0x4d, 0x89, 0xc3, //0x00000e38 movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e3b cmpl $10000, %edi + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000e41 jae LBB2_5 + //0x00000e47 LBB2_4 + 0x89, 0xfa, //0x00000e47 movl %edi, %edx + 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000e49 jmp LBB2_7 + //0x00000e4e LBB2_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000e4e movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000e58 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000e5b mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000e5e shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000e62 imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000e68 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000e6a movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000e70 movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000e73 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000e77 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000e7b imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000e81 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000e83 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000e86 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000e8a shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000e8e imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000e94 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000e96 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000e99 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000e9c imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000ea3 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000ea7 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000eab subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000ead movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000eb1 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000eb4 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000eb7 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000ebd shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000ec0 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000ec3 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000ec5 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x10, 0xc3, 0x00, 0x00, //0x00000ec9 leaq $49936(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000ed0 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000ed5 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000eda movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000edf movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000ee4 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000ee9 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000eee leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000ef2 movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000ef6 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000efb movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000efe cmpl $10000, %edi + 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000f04 jb LBB2_4 + //0x00000f0a LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000f0a movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0xc9, 0xc2, 0x00, 0x00, //0x00000f10 leaq $49865(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f17 .p2align 4, 0x90 + //0x00000f20 LBB2_6 + 0x89, 0xfa, //0x00000f20 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000f22 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000f26 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000f2a imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000f30 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000f32 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000f39 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000f3d imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000f40 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f42 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000f47 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000f4c movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000f51 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000f56 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000f5a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000f60 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000f62 ja LBB2_6 + //0x00000f68 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000f68 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000f6b jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000f71 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000f74 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000f77 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000f7d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000f80 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000f83 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000f85 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0x51, 0xc2, 0x00, 0x00, //0x00000f88 leaq $49745(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000f8f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000f93 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000f98 addq $-2, %r11 + 0x89, 0xc2, //0x00000f9c movl %eax, %edx + //0x00000f9e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000f9e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000fa1 jb LBB2_11 + 0x89, 0xd0, //0x00000fa7 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x30, 0xc2, 0x00, 0x00, //0x00000fa9 leaq $49712(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000fb0 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000fb4 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000fb9 movq %r8, %rax + 0x5b, //0x00000fbc popq %rbx + 0x5d, //0x00000fbd popq %rbp + 0xc3, //0x00000fbe retq + //0x00000fbf LBB2_11 + 0x80, 0xc2, 0x30, //0x00000fbf addb $48, %dl + 0x88, 0x16, //0x00000fc2 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000fc4 movq %r8, %rax + 0x5b, //0x00000fc7 popq %rbx + 0x5d, //0x00000fc8 popq %rbp + 0xc3, //0x00000fc9 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000fca .p2align 4, 0x90 + //0x00000fd0 _i64toa + 0x55, //0x00000fd0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000fd1 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000fd4 testq %rsi, %rsi + 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000fd7 js LBB3_12 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000fdd cmpq $9999, %rsi + 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000fe4 ja LBB3_9 + 0x0f, 0xb7, 0xc6, //0x00000fea movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000fed shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ff0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ff6 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000ff9 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000ffd imull $100, %eax, %eax + 0x89, 0xf1, //0x00001000 movl %esi, %ecx + 0x29, 0xc1, //0x00001002 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x00001004 movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x00001007 addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x0000100a cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001010 jb LBB3_4 + 0x48, 0x8d, 0x05, 0xc3, 0xc1, 0x00, 0x00, //0x00001016 leaq $49603(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x0000101d movb (%rdx,%rax), %al + 0x88, 0x07, //0x00001020 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001022 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00001027 jmp LBB3_5 + //0x0000102c LBB3_4 + 0x31, 0xc0, //0x0000102c xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x0000102e cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001031 jb LBB3_6 + //0x00001037 LBB3_5 + 0x0f, 0xb7, 0xd2, //0x00001037 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x0000103a orq $1, %rdx + 0x48, 0x8d, 0x35, 0x9b, 0xc1, 0x00, 0x00, //0x0000103e leaq $49563(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00001045 movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00001048 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x0000104a addl $1, %eax + 0x88, 0x14, 0x37, //0x0000104d movb %dl, (%rdi,%rsi) + //0x00001050 LBB3_7 + 0x48, 0x8d, 0x15, 0x89, 0xc1, 0x00, 0x00, //0x00001050 leaq $49545(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x00001057 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x0000105a movl %eax, %esi + 0x83, 0xc0, 0x01, //0x0000105c addl $1, %eax + 0x88, 0x14, 0x37, //0x0000105f movb %dl, (%rdi,%rsi) + //0x00001062 LBB3_8 + 0x0f, 0xb7, 0xc9, //0x00001062 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x00001065 orq $1, %rcx + 0x48, 0x8d, 0x15, 0x70, 0xc1, 0x00, 0x00, //0x00001069 leaq $49520(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00001070 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x00001073 movl %eax, %edx + 0x83, 0xc0, 0x01, //0x00001075 addl $1, %eax + 0x88, 0x0c, 0x17, //0x00001078 movb %cl, (%rdi,%rdx) + 0x5d, //0x0000107b popq %rbp + 0xc3, //0x0000107c retq + //0x0000107d LBB3_6 + 0x31, 0xc0, //0x0000107d xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x0000107f cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001082 jae LBB3_7 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00001088 jmp LBB3_8 + //0x0000108d LBB3_12 + 0xc6, 0x07, 0x2d, //0x0000108d movb $45, (%rdi) + 0x48, 0x83, 0xc7, 0x01, //0x00001090 addq $1, %rdi + 0x48, 0xf7, 0xde, //0x00001094 negq %rsi + 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00001097 callq _u64toa + 0x83, 0xc0, 0x01, //0x0000109c addl $1, %eax + 0x5d, //0x0000109f popq %rbp + 0xc3, //0x000010a0 retq + //0x000010a1 LBB3_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x000010a1 cmpq $99999999, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x000010a8 ja LBB3_10 + 0x5d, //0x000010ae popq %rbp + 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x000010af jmp _u32toa_medium + //0x000010b4 LBB3_10 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000010b4 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x000010be cmpq %rax, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x000010c1 ja LBB3_11 + 0x5d, //0x000010c7 popq %rbp + 0xe9, 0x63, 0x02, 0x00, 0x00, //0x000010c8 jmp _u64toa_large_sse2 + //0x000010cd LBB3_11 + 0x5d, //0x000010cd popq %rbp + 0xe9, 0xad, 0x03, 0x00, 0x00, //0x000010ce jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000010d3 .p2align 4, 0x90 + //0x000010e0 _u64toa + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x000010e0 cmpq $9999, %rsi + 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x000010e7 ja LBB4_8 + 0x55, //0x000010ed pushq %rbp + 0x48, 0x89, 0xe5, //0x000010ee movq %rsp, %rbp + 0x0f, 0xb7, 0xc6, //0x000010f1 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x000010f4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000010f7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000010fd shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00001100 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00001104 imull $100, %eax, %eax + 0x89, 0xf1, //0x00001107 movl %esi, %ecx + 0x29, 0xc1, //0x00001109 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x0000110b movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x0000110e addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00001111 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00001117 jb LBB4_3 + 0x48, 0x8d, 0x05, 0xbc, 0xc0, 0x00, 0x00, //0x0000111d leaq $49340(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x00001124 movb (%rdx,%rax), %al + 0x88, 0x07, //0x00001127 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001129 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x0000112e jmp LBB4_4 + //0x00001133 LBB4_3 + 0x31, 0xc0, //0x00001133 xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x00001135 cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00001138 jb LBB4_5 + //0x0000113e LBB4_4 + 0x0f, 0xb7, 0xd2, //0x0000113e movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00001141 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x94, 0xc0, 0x00, 0x00, //0x00001145 leaq $49300(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x0000114c movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x0000114f movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001151 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001154 movb %dl, (%rdi,%rsi) + //0x00001157 LBB4_6 + 0x48, 0x8d, 0x15, 0x82, 0xc0, 0x00, 0x00, //0x00001157 leaq $49282(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x0000115e movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00001161 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001163 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001166 movb %dl, (%rdi,%rsi) + //0x00001169 LBB4_7 + 0x0f, 0xb7, 0xc9, //0x00001169 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x0000116c orq $1, %rcx + 0x48, 0x8d, 0x15, 0x69, 0xc0, 0x00, 0x00, //0x00001170 leaq $49257(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00001177 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x0000117a movl %eax, %edx + 0x83, 0xc0, 0x01, //0x0000117c addl $1, %eax + 0x88, 0x0c, 0x17, //0x0000117f movb %cl, (%rdi,%rdx) + 0x5d, //0x00001182 popq %rbp + 0xc3, //0x00001183 retq + //0x00001184 LBB4_5 + 0x31, 0xc0, //0x00001184 xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x00001186 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001189 jae LBB4_6 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x0000118f jmp LBB4_7 + //0x00001194 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00001194 cmpq $99999999, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x0000119b ja LBB4_9 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x000011a1 jmp _u32toa_medium + //0x000011a6 LBB4_9 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000011a6 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x000011b0 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000011b3 ja LBB4_10 + 0xe9, 0x72, 0x01, 0x00, 0x00, //0x000011b9 jmp _u64toa_large_sse2 + //0x000011be LBB4_10 + 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000011be jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000011c3 .p2align 4, 0x90 + //0x000011d0 _u32toa_medium + 0x55, //0x000011d0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000011d1 movq %rsp, %rbp + 0x89, 0xf2, //0x000011d4 movl %esi, %edx + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x000011d6 movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xca, //0x000011db imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x000011df shrq $45, %rcx + 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x000011e3 imull $10000, %ecx, %r8d + 0x89, 0xf0, //0x000011ea movl %esi, %eax + 0x44, 0x29, 0xc0, //0x000011ec subl %r8d, %eax + 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x000011ef imulq $1125899907, %rdx, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x000011f6 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x000011fa andl $-2, %r10d + 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x000011fe imulq $1374389535, %rcx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00001205 shrq $37, %rdx + 0x6b, 0xd2, 0x64, //0x00001209 imull $100, %edx, %edx + 0x29, 0xd1, //0x0000120c subl %edx, %ecx + 0x48, 0x01, 0xc9, //0x0000120e addq %rcx, %rcx + 0x0f, 0xb7, 0xd0, //0x00001211 movzwl %ax, %edx + 0xc1, 0xea, 0x02, //0x00001214 shrl $2, %edx + 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x00001217 imull $5243, %edx, %edx + 0xc1, 0xea, 0x11, //0x0000121d shrl $17, %edx + 0x4c, 0x8d, 0x04, 0x12, //0x00001220 leaq (%rdx,%rdx), %r8 + 0x6b, 0xd2, 0x64, //0x00001224 imull $100, %edx, %edx + 0x29, 0xd0, //0x00001227 subl %edx, %eax + 0x44, 0x0f, 0xb7, 0xc8, //0x00001229 movzwl %ax, %r9d + 0x4d, 0x01, 0xc9, //0x0000122d addq %r9, %r9 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x00001230 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x00001236 jb LBB5_2 + 0x48, 0x8d, 0x05, 0x9d, 0xbf, 0x00, 0x00, //0x0000123c leaq $49053(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x00001243 movb (%r10,%rax), %al + 0x88, 0x07, //0x00001247 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00001249 movl $1, %eax + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000124e jmp LBB5_3 + //0x00001253 LBB5_2 + 0x31, 0xc0, //0x00001253 xorl %eax, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001255 cmpl $1000000, %esi + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000125b jb LBB5_4 + //0x00001261 LBB5_3 + 0x44, 0x89, 0xd2, //0x00001261 movl %r10d, %edx + 0x48, 0x83, 0xca, 0x01, //0x00001264 orq $1, %rdx + 0x48, 0x8d, 0x35, 0x71, 0xbf, 0x00, 0x00, //0x00001268 leaq $49009(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x0000126f movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00001272 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001274 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001277 movb %dl, (%rdi,%rsi) + //0x0000127a LBB5_5 + 0x48, 0x8d, 0x15, 0x5f, 0xbf, 0x00, 0x00, //0x0000127a leaq $48991(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x00001281 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00001284 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001286 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001289 movb %dl, (%rdi,%rsi) + //0x0000128c LBB5_6 + 0x89, 0xc9, //0x0000128c movl %ecx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x0000128e orq $1, %rcx + 0x48, 0x8d, 0x15, 0x47, 0xbf, 0x00, 0x00, //0x00001292 leaq $48967(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00001299 movb (%rcx,%rdx), %cl + 0x89, 0xc6, //0x0000129c movl %eax, %esi + 0x88, 0x0c, 0x37, //0x0000129e movb %cl, (%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x10, //0x000012a1 movb (%r8,%rdx), %cl + 0x88, 0x4c, 0x37, 0x01, //0x000012a5 movb %cl, $1(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc8, //0x000012a9 movzwl %r8w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x000012ad orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x000012b1 movb (%rcx,%rdx), %cl + 0x88, 0x4c, 0x37, 0x02, //0x000012b4 movb %cl, $2(%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x11, //0x000012b8 movb (%r9,%rdx), %cl + 0x88, 0x4c, 0x37, 0x03, //0x000012bc movb %cl, $3(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc9, //0x000012c0 movzwl %r9w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x000012c4 orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x000012c8 movb (%rcx,%rdx), %cl + 0x83, 0xc0, 0x05, //0x000012cb addl $5, %eax + 0x88, 0x4c, 0x37, 0x04, //0x000012ce movb %cl, $4(%rdi,%rsi) + 0x5d, //0x000012d2 popq %rbp + 0xc3, //0x000012d3 retq + //0x000012d4 LBB5_4 + 0x31, 0xc0, //0x000012d4 xorl %eax, %eax + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x000012d6 cmpl $100000, %esi + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x000012dc jae LBB5_5 + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x000012e2 jmp LBB5_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000012e7 .p2align 4, 0x00 + //0x000012f0 LCPI6_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000012f0 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000012f8 .quad 3518437209 + //0x00001300 LCPI6_3 + 0x0a, 0x00, //0x00001300 .word 10 + 0x0a, 0x00, //0x00001302 .word 10 + 0x0a, 0x00, //0x00001304 .word 10 + 0x0a, 0x00, //0x00001306 .word 10 + 0x0a, 0x00, //0x00001308 .word 10 + 0x0a, 0x00, //0x0000130a .word 10 + 0x0a, 0x00, //0x0000130c .word 10 + 0x0a, 0x00, //0x0000130e .word 10 + //0x00001310 LCPI6_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001310 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00001320 .p2align 3, 0x00 + //0x00001320 LCPI6_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001320 .quad -9223315738079846203 + //0x00001328 LCPI6_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001328 .quad -9223336852348469120 + //0x00001330 .p2align 4, 0x90 + //0x00001330 _u64toa_large_sse2 + 0x55, //0x00001330 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001331 movq %rsp, %rbp + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001334 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x0000133e movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001341 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001344 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001348 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000134e subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xc2, //0x00001350 vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0x94, 0xff, 0xff, 0xff, //0x00001354 vmovdqa $-108(%rip), %xmm1 /* LCPI6_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x0000135c vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x00001360 vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001365 movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x0000136a vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x0000136f vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x00001373 vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x00001377 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x0000137b vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x00001380 vpshuflw $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x00001385 vpshufd $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0x8d, 0xff, 0xff, 0xff, //0x0000138a vpbroadcastq $-115(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0x8c, 0xff, 0xff, 0xff, //0x00001393 vpbroadcastq $-116(%rip), %xmm4 /* LCPI6_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc2, //0x0000139c vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc4, //0x000013a0 vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x54, 0xff, 0xff, 0xff, //0x000013a4 vmovdqa $-172(%rip), %xmm5 /* LCPI6_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000013ac vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000013b0 vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000013b5 vpsubw %xmm6, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6e, 0xf6, //0x000013b9 vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000013bd vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000013c1 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000013c6 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000013ca vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x000013ce vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x000013d2 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x000013d7 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x000013dc vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x000013e1 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x000013e5 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x000013e9 vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x000013ed vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x000013f2 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x000013f6 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x0d, 0x0e, 0xff, 0xff, 0xff, //0x000013fa vpaddb $-242(%rip), %xmm0, %xmm1 /* LCPI6_4+0(%rip) */ + 0xc5, 0xe9, 0xef, 0xd2, //0x00001402 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0x74, 0xc2, //0x00001406 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x0000140a vpmovmskb %xmm0, %eax + 0xf7, 0xd0, //0x0000140e notl %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x00001410 orl $32768, %eax + 0x0f, 0xbc, 0xc8, //0x00001415 bsfl %eax, %ecx + 0xb8, 0x10, 0x00, 0x00, 0x00, //0x00001418 movl $16, %eax + 0x29, 0xc8, //0x0000141d subl %ecx, %eax + 0x48, 0xc1, 0xe1, 0x04, //0x0000141f shlq $4, %rcx + 0x48, 0x8d, 0x15, 0x16, 0xe5, 0x00, 0x00, //0x00001423 leaq $58646(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0xc4, 0xe2, 0x71, 0x00, 0x04, 0x11, //0x0000142a vpshufb (%rcx,%rdx), %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00001430 vmovdqu %xmm0, (%rdi) + 0x5d, //0x00001434 popq %rbp + 0xc3, //0x00001435 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001436 .p2align 4, 0x00 + //0x00001440 LCPI7_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001440 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001448 .quad 3518437209 + //0x00001450 LCPI7_3 + 0x0a, 0x00, //0x00001450 .word 10 + 0x0a, 0x00, //0x00001452 .word 10 + 0x0a, 0x00, //0x00001454 .word 10 + 0x0a, 0x00, //0x00001456 .word 10 + 0x0a, 0x00, //0x00001458 .word 10 + 0x0a, 0x00, //0x0000145a .word 10 + 0x0a, 0x00, //0x0000145c .word 10 + 0x0a, 0x00, //0x0000145e .word 10 + //0x00001460 LCPI7_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001460 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00001470 .p2align 3, 0x00 + //0x00001470 LCPI7_1 + 0xc5, 0x20, 0x7b, 0x14, 0x34, 0x33, 0x00, 0x80, //0x00001470 .quad -9223315738079846203 + //0x00001478 LCPI7_2 + 0x80, 0x00, 0x00, 0x08, 0x00, 0x20, 0x00, 0x80, //0x00001478 .quad -9223336852348469120 + //0x00001480 .p2align 4, 0x90 + //0x00001480 _u64toa_xlarge_sse2 + 0x55, //0x00001480 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001481 movq %rsp, %rbp + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001484 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x0000148e movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001491 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001494 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001498 movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x000014a2 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x000014a6 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x000014a9 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x000014ac ja LBB7_2 + 0x80, 0xc2, 0x30, //0x000014b2 addb $48, %dl + 0x88, 0x17, //0x000014b5 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000014b7 movl $1, %ecx + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000014bc jmp LBB7_7 + //0x000014c1 LBB7_2 + 0x83, 0xfa, 0x63, //0x000014c1 cmpl $99, %edx + 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x000014c4 ja LBB7_4 + 0x89, 0xd0, //0x000014ca movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x0d, 0xbd, 0x00, 0x00, //0x000014cc leaq $48397(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000014d3 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x000014d7 movw %ax, (%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000014da movl $2, %ecx + 0xe9, 0x82, 0x00, 0x00, 0x00, //0x000014df jmp LBB7_7 + //0x000014e4 LBB7_4 + 0x89, 0xd0, //0x000014e4 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000014e6 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000014e9 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000014ef shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000014f2 cmpl $999, %edx + 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000014f8 ja LBB7_6 + 0x83, 0xc0, 0x30, //0x000014fe addl $48, %eax + 0x88, 0x07, //0x00001501 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x00001503 movzwl %dx, %eax + 0x89, 0xc1, //0x00001506 movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x00001508 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x0000150b imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x00001511 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x00001514 imull $100, %ecx, %ecx + 0x29, 0xc8, //0x00001517 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x00001519 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0xbd, 0xbc, 0x00, 0x00, //0x0000151c leaq $48317(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001523 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x47, 0x01, //0x00001527 movw %ax, $1(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000152b movl $3, %ecx + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001530 jmp LBB7_7 + //0x00001535 LBB7_6 + 0x6b, 0xc8, 0x64, //0x00001535 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001538 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x0000153a movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0x9c, 0xbc, 0x00, 0x00, //0x0000153d leaq $48284(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001544 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x00001548 movw %ax, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000154b movzwl %dx, %eax + 0x8a, 0x14, 0x41, //0x0000154e movb (%rcx,%rax,2), %dl + 0x48, 0x01, 0xc0, //0x00001551 addq %rax, %rax + 0x88, 0x57, 0x02, //0x00001554 movb %dl, $2(%rdi) + 0x0f, 0xb7, 0xc0, //0x00001557 movzwl %ax, %eax + 0x8a, 0x44, 0x08, 0x01, //0x0000155a movb $1(%rax,%rcx), %al + 0x88, 0x47, 0x03, //0x0000155e movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00001561 movl $4, %ecx + //0x00001566 LBB7_7 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001566 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00001570 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00001573 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00001576 shrq $26, %rdx + 0xc5, 0xf9, 0x6e, 0xc2, //0x0000157a vmovd %edx, %xmm0 + 0xc5, 0xf9, 0x6f, 0x0d, 0xba, 0xfe, 0xff, 0xff, //0x0000157e vmovdqa $-326(%rip), %xmm1 /* LCPI7_0+0(%rip) */ + 0xc5, 0xf9, 0xf4, 0xd1, //0x00001586 vpmuludq %xmm1, %xmm0, %xmm2 + 0xc5, 0xe9, 0x73, 0xd2, 0x2d, //0x0000158a vpsrlq $45, %xmm2, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x0000158f movl $10000, %eax + 0xc4, 0xe1, 0xf9, 0x6e, 0xd8, //0x00001594 vmovq %rax, %xmm3 + 0xc5, 0xe9, 0xf4, 0xe3, //0x00001599 vpmuludq %xmm3, %xmm2, %xmm4 + 0xc5, 0xf9, 0xfa, 0xc4, //0x0000159d vpsubd %xmm4, %xmm0, %xmm0 + 0xc5, 0xe9, 0x61, 0xc0, //0x000015a1 vpunpcklwd %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0x73, 0xf0, 0x02, //0x000015a5 vpsllq $2, %xmm0, %xmm0 + 0xc5, 0xfb, 0x70, 0xc0, 0x50, //0x000015aa vpshuflw $80, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x15, 0xb8, 0xfe, 0xff, 0xff, //0x000015af vpbroadcastq $-328(%rip), %xmm2 /* LCPI7_1+0(%rip) */ + 0xc5, 0xf9, 0x70, 0xc0, 0x50, //0x000015b8 vpshufd $80, %xmm0, %xmm0 + 0xc5, 0xf9, 0xe4, 0xc2, //0x000015bd vpmulhuw %xmm2, %xmm0, %xmm0 + 0xc4, 0xe2, 0x79, 0x59, 0x25, 0xae, 0xfe, 0xff, 0xff, //0x000015c1 vpbroadcastq $-338(%rip), %xmm4 /* LCPI7_2+0(%rip) */ + 0xc5, 0xf9, 0xe4, 0xc4, //0x000015ca vpmulhuw %xmm4, %xmm0, %xmm0 + 0xc5, 0xf9, 0x6f, 0x2d, 0x7a, 0xfe, 0xff, 0xff, //0x000015ce vmovdqa $-390(%rip), %xmm5 /* LCPI7_3+0(%rip) */ + 0xc5, 0xf9, 0xd5, 0xf5, //0x000015d6 vpmullw %xmm5, %xmm0, %xmm6 + 0xc5, 0xc9, 0x73, 0xf6, 0x10, //0x000015da vpsllq $16, %xmm6, %xmm6 + 0xc5, 0xf9, 0xf9, 0xc6, //0x000015df vpsubw %xmm6, %xmm0, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000015e3 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000015e9 subl %eax, %esi + 0xc5, 0xf9, 0x6e, 0xf6, //0x000015eb vmovd %esi, %xmm6 + 0xc5, 0xc9, 0xf4, 0xc9, //0x000015ef vpmuludq %xmm1, %xmm6, %xmm1 + 0xc5, 0xf1, 0x73, 0xd1, 0x2d, //0x000015f3 vpsrlq $45, %xmm1, %xmm1 + 0xc5, 0xf1, 0xf4, 0xdb, //0x000015f8 vpmuludq %xmm3, %xmm1, %xmm3 + 0xc5, 0xc9, 0xfa, 0xdb, //0x000015fc vpsubd %xmm3, %xmm6, %xmm3 + 0xc5, 0xf1, 0x61, 0xcb, //0x00001600 vpunpcklwd %xmm3, %xmm1, %xmm1 + 0xc5, 0xf1, 0x73, 0xf1, 0x02, //0x00001604 vpsllq $2, %xmm1, %xmm1 + 0xc5, 0xfb, 0x70, 0xc9, 0x50, //0x00001609 vpshuflw $80, %xmm1, %xmm1 + 0xc5, 0xf9, 0x70, 0xc9, 0x50, //0x0000160e vpshufd $80, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xca, //0x00001613 vpmulhuw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf1, 0xe4, 0xcc, //0x00001617 vpmulhuw %xmm4, %xmm1, %xmm1 + 0xc5, 0xf1, 0xd5, 0xd5, //0x0000161b vpmullw %xmm5, %xmm1, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x10, //0x0000161f vpsllq $16, %xmm2, %xmm2 + 0xc5, 0xf1, 0xf9, 0xca, //0x00001624 vpsubw %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0x67, 0xc1, //0x00001628 vpackuswb %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xfc, 0x05, 0x2c, 0xfe, 0xff, 0xff, //0x0000162c vpaddb $-468(%rip), %xmm0, %xmm0 /* LCPI7_4+0(%rip) */ + 0x89, 0xc8, //0x00001634 movl %ecx, %eax + 0xc5, 0xfa, 0x7f, 0x04, 0x07, //0x00001636 vmovdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x0000163b orl $16, %ecx + 0x89, 0xc8, //0x0000163e movl %ecx, %eax + 0x5d, //0x00001640 popq %rbp + 0xc3, //0x00001641 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, //0x00001642 .p2align 5, 0x00 + //0x00001660 LCPI8_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001660 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001670 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00001680 LCPI8_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001680 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001690 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000016a0 LCPI8_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016b0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000016c0 .p2align 4, 0x00 + //0x000016c0 LCPI8_3 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000016c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000016d0 LCPI8_4 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000016d0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000016e0 LCPI8_5 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000016e0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000016f0 .p2align 4, 0x90 + //0x000016f0 _quote + 0x55, //0x000016f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000016f1 movq %rsp, %rbp + 0x41, 0x57, //0x000016f4 pushq %r15 + 0x41, 0x56, //0x000016f6 pushq %r14 + 0x41, 0x55, //0x000016f8 pushq %r13 + 0x41, 0x54, //0x000016fa pushq %r12 + 0x53, //0x000016fc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x000016fd subq $24, %rsp + 0x49, 0x89, 0xcf, //0x00001701 movq %rcx, %r15 + 0x49, 0x89, 0xf6, //0x00001704 movq %rsi, %r14 + 0x4c, 0x8b, 0x11, //0x00001707 movq (%rcx), %r10 + 0x41, 0xf6, 0xc0, 0x01, //0x0000170a testb $1, %r8b + 0x48, 0x8d, 0x05, 0xbb, 0xe2, 0x00, 0x00, //0x0000170e leaq $58043(%rip), %rax /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x05, 0xb4, 0xf2, 0x00, 0x00, //0x00001715 leaq $62132(%rip), %r8 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xc0, //0x0000171c cmoveq %rax, %r8 + 0x48, 0x8d, 0x04, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001720 leaq (,%rsi,8), %rax + 0x49, 0x39, 0xc2, //0x00001728 cmpq %rax, %r10 + 0x0f, 0x8d, 0x52, 0x07, 0x00, 0x00, //0x0000172b jge LBB8_93 + 0x49, 0x89, 0xd1, //0x00001731 movq %rdx, %r9 + 0x49, 0x89, 0xfb, //0x00001734 movq %rdi, %r11 + 0x4d, 0x85, 0xf6, //0x00001737 testq %r14, %r14 + 0x0f, 0x84, 0x95, 0x0a, 0x00, 0x00, //0x0000173a je LBB8_125 + 0xc5, 0xfd, 0x6f, 0x25, 0x18, 0xff, 0xff, 0xff, //0x00001740 vmovdqa $-232(%rip), %ymm4 /* LCPI8_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x30, 0xff, 0xff, 0xff, //0x00001748 vmovdqa $-208(%rip), %ymm5 /* LCPI8_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x48, 0xff, 0xff, 0xff, //0x00001750 vmovdqa $-184(%rip), %ymm6 /* LCPI8_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001758 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x48, 0x89, 0xf9, //0x0000175d movq %rdi, %rcx + 0x48, 0x89, 0x55, 0xc0, //0x00001760 movq %rdx, $-64(%rbp) + 0x49, 0x89, 0xd1, //0x00001764 movq %rdx, %r9 + //0x00001767 LBB8_3 + 0x49, 0x89, 0xcd, //0x00001767 movq %rcx, %r13 + 0x49, 0x83, 0xfe, 0x20, //0x0000176a cmpq $32, %r14 + 0x0f, 0x9d, 0xc1, //0x0000176e setge %cl + 0x4c, 0x89, 0xe8, //0x00001771 movq %r13, %rax + 0x4c, 0x89, 0xd3, //0x00001774 movq %r10, %rbx + 0x4d, 0x89, 0xcc, //0x00001777 movq %r9, %r12 + 0x4d, 0x89, 0xf3, //0x0000177a movq %r14, %r11 + 0x0f, 0x8c, 0x82, 0x00, 0x00, 0x00, //0x0000177d jl LBB8_10 + 0x49, 0x83, 0xfa, 0x20, //0x00001783 cmpq $32, %r10 + 0x0f, 0x8c, 0x78, 0x00, 0x00, 0x00, //0x00001787 jl LBB8_10 + 0x45, 0x31, 0xe4, //0x0000178d xorl %r12d, %r12d + 0x4c, 0x89, 0xf6, //0x00001790 movq %r14, %rsi + 0x4c, 0x89, 0xd2, //0x00001793 movq %r10, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001796 .p2align 4, 0x90 + //0x000017a0 LBB8_6 + 0xc4, 0xa1, 0x7e, 0x6f, 0x04, 0x20, //0x000017a0 vmovdqu (%rax,%r12), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x000017a6 vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x000017aa vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x000017ae vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x000017b2 vpor %ymm2, %ymm3, %ymm2 + 0xc4, 0x81, 0x7e, 0x7f, 0x04, 0x21, //0x000017b6 vmovdqu %ymm0, (%r9,%r12) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x000017bc vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xf5, 0xdb, 0xc0, //0x000017c1 vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x000017c5 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x000017c9 vpmovmskb %ymm0, %ecx + 0x85, 0xc9, //0x000017cd testl %ecx, %ecx + 0x0f, 0x85, 0xfd, 0x01, 0x00, 0x00, //0x000017cf jne LBB8_20 + 0x4c, 0x8d, 0x5e, 0xe0, //0x000017d5 leaq $-32(%rsi), %r11 + 0x48, 0x8d, 0x5a, 0xe0, //0x000017d9 leaq $-32(%rdx), %rbx + 0x49, 0x83, 0xc4, 0x20, //0x000017dd addq $32, %r12 + 0x48, 0x83, 0xfe, 0x40, //0x000017e1 cmpq $64, %rsi + 0x0f, 0x9d, 0xc1, //0x000017e5 setge %cl + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x000017e8 jl LBB8_9 + 0x4c, 0x89, 0xde, //0x000017ee movq %r11, %rsi + 0x48, 0x83, 0xfa, 0x3f, //0x000017f1 cmpq $63, %rdx + 0x48, 0x89, 0xda, //0x000017f5 movq %rbx, %rdx + 0x0f, 0x8f, 0xa2, 0xff, 0xff, 0xff, //0x000017f8 jg LBB8_6 + //0x000017fe LBB8_9 + 0x4e, 0x8d, 0x2c, 0x20, //0x000017fe leaq (%rax,%r12), %r13 + 0x4d, 0x01, 0xcc, //0x00001802 addq %r9, %r12 + //0x00001805 LBB8_10 + 0x84, 0xc9, //0x00001805 testb %cl, %cl + 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00001807 je LBB8_14 + 0x4c, 0x89, 0xf6, //0x0000180d movq %r14, %rsi + 0xc4, 0xc1, 0x7e, 0x6f, 0x45, 0x00, //0x00001810 vmovdqu (%r13), %ymm0 + 0xc5, 0xdd, 0x64, 0xc8, //0x00001816 vpcmpgtb %ymm0, %ymm4, %ymm1 + 0xc5, 0xfd, 0x74, 0xd5, //0x0000181a vpcmpeqb %ymm5, %ymm0, %ymm2 + 0xc5, 0xfd, 0x74, 0xde, //0x0000181e vpcmpeqb %ymm6, %ymm0, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00001822 vpor %ymm2, %ymm3, %ymm2 + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001826 vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xf5, 0xdb, 0xc0, //0x0000182b vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x0000182f vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00001833 vpmovmskb %ymm0, %ecx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00001837 movabsq $4294967296, %rdx + 0x48, 0x09, 0xd1, //0x00001841 orq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xf1, //0x00001844 bsfq %rcx, %r14 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001848 vmovdqu (%r13), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x0000184e vpextrq $1, %xmm0, %rcx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc2, //0x00001854 vmovq %xmm0, %rdx + 0x49, 0x39, 0xde, //0x00001859 cmpq %rbx, %r14 + 0x0f, 0x8e, 0x7f, 0x01, 0x00, 0x00, //0x0000185c jle LBB8_21 + 0x48, 0x83, 0xfb, 0x10, //0x00001862 cmpq $16, %rbx + 0x49, 0x89, 0xc3, //0x00001866 movq %rax, %r11 + 0x0f, 0x82, 0xbe, 0x01, 0x00, 0x00, //0x00001869 jb LBB8_24 + 0x49, 0x89, 0x14, 0x24, //0x0000186f movq %rdx, (%r12) + 0x49, 0x89, 0x4c, 0x24, 0x08, //0x00001873 movq %rcx, $8(%r12) + 0x49, 0x8d, 0x4d, 0x10, //0x00001878 leaq $16(%r13), %rcx + 0x49, 0x83, 0xc4, 0x10, //0x0000187c addq $16, %r12 + 0x48, 0x8d, 0x53, 0xf0, //0x00001880 leaq $-16(%rbx), %rdx + 0x49, 0x89, 0xf6, //0x00001884 movq %rsi, %r14 + 0x48, 0x83, 0xfa, 0x08, //0x00001887 cmpq $8, %rdx + 0x0f, 0x83, 0xaf, 0x01, 0x00, 0x00, //0x0000188b jae LBB8_25 + 0xe9, 0xbd, 0x01, 0x00, 0x00, //0x00001891 jmp LBB8_26 + //0x00001896 LBB8_14 + 0xc5, 0xf8, 0x77, //0x00001896 vzeroupper + 0x49, 0x83, 0xfb, 0x10, //0x00001899 cmpq $16, %r11 + 0x0f, 0x9d, 0xc2, //0x0000189d setge %dl + 0x4c, 0x89, 0x7d, 0xc8, //0x000018a0 movq %r15, $-56(%rbp) + 0x4c, 0x89, 0x75, 0xd0, //0x000018a4 movq %r14, $-48(%rbp) + 0x0f, 0x8c, 0x17, 0x02, 0x00, 0x00, //0x000018a8 jl LBB8_31 + 0x48, 0x83, 0xfb, 0x10, //0x000018ae cmpq $16, %rbx + 0xc5, 0xf9, 0x6f, 0x3d, 0x06, 0xfe, 0xff, 0xff, //0x000018b2 vmovdqa $-506(%rip), %xmm7 /* LCPI8_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x0e, 0xfe, 0xff, 0xff, //0x000018ba vmovdqa $-498(%rip), %xmm9 /* LCPI8_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x16, 0xfe, 0xff, 0xff, //0x000018c2 vmovdqa $-490(%rip), %xmm10 /* LCPI8_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x000018ca vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x0f, 0x8c, 0x3d, 0x02, 0x00, 0x00, //0x000018cf jl LBB8_36 + 0x48, 0x89, 0xc1, //0x000018d5 movq %rax, %rcx + 0x4c, 0x29, 0xe9, //0x000018d8 subq %r13, %rcx + 0xc5, 0xfd, 0x6f, 0x25, 0x7d, 0xfd, 0xff, 0xff, //0x000018db vmovdqa $-643(%rip), %ymm4 /* LCPI8_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x95, 0xfd, 0xff, 0xff, //0x000018e3 vmovdqa $-619(%rip), %ymm5 /* LCPI8_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xad, 0xfd, 0xff, 0xff, //0x000018eb vmovdqa $-595(%rip), %ymm6 /* LCPI8_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x000018f3 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018f8 .p2align 4, 0x90 + //0x00001900 LBB8_17 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x00001900 vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001906 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x0000190a vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000190e vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001912 vpor %xmm2, %xmm3, %xmm2 + 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x24, //0x00001916 vmovdqu %xmm0, (%r12) + 0xc4, 0xc1, 0x79, 0x64, 0xc3, //0x0000191c vpcmpgtb %xmm11, %xmm0, %xmm0 + 0xc5, 0xf1, 0xdb, 0xc0, //0x00001921 vpand %xmm0, %xmm1, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x00001925 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00001929 vpmovmskb %xmm0, %edx + 0x85, 0xd2, //0x0000192d testl %edx, %edx + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000192f jne LBB8_23 + 0x49, 0x83, 0xc5, 0x10, //0x00001935 addq $16, %r13 + 0x49, 0x83, 0xc4, 0x10, //0x00001939 addq $16, %r12 + 0x4d, 0x8d, 0x7b, 0xf0, //0x0000193d leaq $-16(%r11), %r15 + 0x4c, 0x8d, 0x73, 0xf0, //0x00001941 leaq $-16(%rbx), %r14 + 0x49, 0x83, 0xfb, 0x20, //0x00001945 cmpq $32, %r11 + 0x0f, 0x9d, 0xc2, //0x00001949 setge %dl + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000194c jl LBB8_32 + 0x48, 0x83, 0xc1, 0xf0, //0x00001952 addq $-16, %rcx + 0x4d, 0x89, 0xfb, //0x00001956 movq %r15, %r11 + 0x48, 0x83, 0xfb, 0x1f, //0x00001959 cmpq $31, %rbx + 0x4c, 0x89, 0xf3, //0x0000195d movq %r14, %rbx + 0x0f, 0x8f, 0x9a, 0xff, 0xff, 0xff, //0x00001960 jg LBB8_17 + //0x00001966 LBB8_32 + 0x84, 0xd2, //0x00001966 testb %dl, %dl + 0x0f, 0x84, 0xcf, 0x01, 0x00, 0x00, //0x00001968 je LBB8_37 + //0x0000196e LBB8_33 + 0xc4, 0xc1, 0x7a, 0x6f, 0x45, 0x00, //0x0000196e vmovdqu (%r13), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x00001974 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xb1, 0x74, 0xd0, //0x00001978 vpcmpeqb %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd8, //0x0000197c vpcmpeqb %xmm0, %xmm10, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x00001980 vpor %xmm2, %xmm3, %xmm2 + 0xc4, 0xc1, 0x79, 0x64, 0xdb, //0x00001984 vpcmpgtb %xmm11, %xmm0, %xmm3 + 0xc5, 0xf1, 0xdb, 0xcb, //0x00001989 vpand %xmm3, %xmm1, %xmm1 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000198d vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc9, //0x00001991 vpmovmskb %xmm1, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x00001995 orl $65536, %ecx + 0x0f, 0xbc, 0xd9, //0x0000199b bsfl %ecx, %ebx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x0000199e vmovq %xmm0, %rcx + 0x49, 0x39, 0xde, //0x000019a3 cmpq %rbx, %r14 + 0x49, 0x89, 0xc3, //0x000019a6 movq %rax, %r11 + 0x0f, 0x8d, 0xb4, 0x02, 0x00, 0x00, //0x000019a9 jge LBB8_57 + 0x49, 0x83, 0xfe, 0x08, //0x000019af cmpq $8, %r14 + 0x4c, 0x8b, 0x7d, 0xc8, //0x000019b3 movq $-56(%rbp), %r15 + 0x0f, 0x82, 0xe3, 0x02, 0x00, 0x00, //0x000019b7 jb LBB8_62 + 0x49, 0x89, 0x0c, 0x24, //0x000019bd movq %rcx, (%r12) + 0x49, 0x8d, 0x4d, 0x08, //0x000019c1 leaq $8(%r13), %rcx + 0x49, 0x83, 0xc4, 0x08, //0x000019c5 addq $8, %r12 + 0x49, 0x8d, 0x56, 0xf8, //0x000019c9 leaq $-8(%r14), %rdx + 0xe9, 0xd4, 0x02, 0x00, 0x00, //0x000019cd jmp LBB8_63 + //0x000019d2 LBB8_20 + 0x49, 0x89, 0xc3, //0x000019d2 movq %rax, %r11 + 0x44, 0x0f, 0xbc, 0xe9, //0x000019d5 bsfl %ecx, %r13d + 0x4d, 0x01, 0xe5, //0x000019d9 addq %r12, %r13 + 0xe9, 0x8f, 0x03, 0x00, 0x00, //0x000019dc jmp LBB8_75 + //0x000019e1 LBB8_21 + 0x41, 0x83, 0xfe, 0x10, //0x000019e1 cmpl $16, %r14d + 0x49, 0x89, 0xc3, //0x000019e5 movq %rax, %r11 + 0x0f, 0x82, 0xe3, 0x01, 0x00, 0x00, //0x000019e8 jb LBB8_46 + 0x49, 0x89, 0x14, 0x24, //0x000019ee movq %rdx, (%r12) + 0x49, 0x89, 0x4c, 0x24, 0x08, //0x000019f2 movq %rcx, $8(%r12) + 0x49, 0x8d, 0x5d, 0x10, //0x000019f7 leaq $16(%r13), %rbx + 0x49, 0x83, 0xc4, 0x10, //0x000019fb addq $16, %r12 + 0x49, 0x8d, 0x4e, 0xf0, //0x000019ff leaq $-16(%r14), %rcx + 0x48, 0x83, 0xf9, 0x08, //0x00001a03 cmpq $8, %rcx + 0x0f, 0x83, 0xd4, 0x01, 0x00, 0x00, //0x00001a07 jae LBB8_47 + 0xe9, 0xe2, 0x01, 0x00, 0x00, //0x00001a0d jmp LBB8_48 + //0x00001a12 LBB8_23 + 0x66, 0x0f, 0xbc, 0xd2, //0x00001a12 bsfw %dx, %dx + 0x44, 0x0f, 0xb7, 0xea, //0x00001a16 movzwl %dx, %r13d + 0x49, 0x29, 0xcd, //0x00001a1a subq %rcx, %r13 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001a1d movq $-56(%rbp), %r15 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001a21 movq $-48(%rbp), %r14 + 0x49, 0x89, 0xc3, //0x00001a25 movq %rax, %r11 + 0xe9, 0x43, 0x03, 0x00, 0x00, //0x00001a28 jmp LBB8_75 + //0x00001a2d LBB8_24 + 0x4c, 0x89, 0xe9, //0x00001a2d movq %r13, %rcx + 0x48, 0x89, 0xda, //0x00001a30 movq %rbx, %rdx + 0x49, 0x89, 0xf6, //0x00001a33 movq %rsi, %r14 + 0x48, 0x83, 0xfa, 0x08, //0x00001a36 cmpq $8, %rdx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001a3a jb LBB8_26 + //0x00001a40 LBB8_25 + 0x48, 0x8b, 0x31, //0x00001a40 movq (%rcx), %rsi + 0x49, 0x89, 0x34, 0x24, //0x00001a43 movq %rsi, (%r12) + 0x48, 0x83, 0xc1, 0x08, //0x00001a47 addq $8, %rcx + 0x49, 0x83, 0xc4, 0x08, //0x00001a4b addq $8, %r12 + 0x48, 0x83, 0xc2, 0xf8, //0x00001a4f addq $-8, %rdx + //0x00001a53 LBB8_26 + 0x48, 0x83, 0xfa, 0x04, //0x00001a53 cmpq $4, %rdx + 0x0f, 0x8c, 0x3c, 0x00, 0x00, 0x00, //0x00001a57 jl LBB8_27 + 0x8b, 0x31, //0x00001a5d movl (%rcx), %esi + 0x41, 0x89, 0x34, 0x24, //0x00001a5f movl %esi, (%r12) + 0x48, 0x83, 0xc1, 0x04, //0x00001a63 addq $4, %rcx + 0x49, 0x83, 0xc4, 0x04, //0x00001a67 addq $4, %r12 + 0x48, 0x83, 0xc2, 0xfc, //0x00001a6b addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00001a6f cmpq $2, %rdx + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00001a73 jae LBB8_54 + //0x00001a79 LBB8_28 + 0x48, 0x85, 0xd2, //0x00001a79 testq %rdx, %rdx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001a7c je LBB8_30 + //0x00001a82 LBB8_29 + 0x8a, 0x09, //0x00001a82 movb (%rcx), %cl + 0x41, 0x88, 0x0c, 0x24, //0x00001a84 movb %cl, (%r12) + //0x00001a88 LBB8_30 + 0x4c, 0x01, 0xeb, //0x00001a88 addq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x00001a8b notq %rbx + 0x4c, 0x01, 0xdb, //0x00001a8e addq %r11, %rbx + 0x49, 0x89, 0xdd, //0x00001a91 movq %rbx, %r13 + 0xe9, 0xd7, 0x02, 0x00, 0x00, //0x00001a94 jmp LBB8_75 + //0x00001a99 LBB8_27 + 0x48, 0x83, 0xfa, 0x02, //0x00001a99 cmpq $2, %rdx + 0x0f, 0x82, 0xd6, 0xff, 0xff, 0xff, //0x00001a9d jb LBB8_28 + //0x00001aa3 LBB8_54 + 0x0f, 0xb7, 0x31, //0x00001aa3 movzwl (%rcx), %esi + 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001aa6 movw %si, (%r12) + 0x48, 0x83, 0xc1, 0x02, //0x00001aab addq $2, %rcx + 0x49, 0x83, 0xc4, 0x02, //0x00001aaf addq $2, %r12 + 0x48, 0x83, 0xc2, 0xfe, //0x00001ab3 addq $-2, %rdx + 0x48, 0x85, 0xd2, //0x00001ab7 testq %rdx, %rdx + 0x0f, 0x85, 0xc2, 0xff, 0xff, 0xff, //0x00001aba jne LBB8_29 + 0xe9, 0xc3, 0xff, 0xff, 0xff, //0x00001ac0 jmp LBB8_30 + //0x00001ac5 LBB8_31 + 0x49, 0x89, 0xde, //0x00001ac5 movq %rbx, %r14 + 0x4d, 0x89, 0xdf, //0x00001ac8 movq %r11, %r15 + 0xc5, 0xfd, 0x6f, 0x25, 0x8d, 0xfb, 0xff, 0xff, //0x00001acb vmovdqa $-1139(%rip), %ymm4 /* LCPI8_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xa5, 0xfb, 0xff, 0xff, //0x00001ad3 vmovdqa $-1115(%rip), %ymm5 /* LCPI8_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xbd, 0xfb, 0xff, 0xff, //0x00001adb vmovdqa $-1091(%rip), %ymm6 /* LCPI8_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001ae3 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0xf9, 0x6f, 0x3d, 0xd0, 0xfb, 0xff, 0xff, //0x00001ae8 vmovdqa $-1072(%rip), %xmm7 /* LCPI8_3+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xd8, 0xfb, 0xff, 0xff, //0x00001af0 vmovdqa $-1064(%rip), %xmm9 /* LCPI8_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0xe0, 0xfb, 0xff, 0xff, //0x00001af8 vmovdqa $-1056(%rip), %xmm10 /* LCPI8_5+0(%rip) */ + 0xc4, 0x41, 0x21, 0x76, 0xdb, //0x00001b00 vpcmpeqd %xmm11, %xmm11, %xmm11 + 0x84, 0xd2, //0x00001b05 testb %dl, %dl + 0x0f, 0x84, 0x30, 0x00, 0x00, 0x00, //0x00001b07 je LBB8_37 + 0xe9, 0x5c, 0xfe, 0xff, 0xff, //0x00001b0d jmp LBB8_33 + //0x00001b12 LBB8_36 + 0x49, 0x89, 0xde, //0x00001b12 movq %rbx, %r14 + 0x4d, 0x89, 0xdf, //0x00001b15 movq %r11, %r15 + 0xc5, 0xfd, 0x6f, 0x25, 0x40, 0xfb, 0xff, 0xff, //0x00001b18 vmovdqa $-1216(%rip), %ymm4 /* LCPI8_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x58, 0xfb, 0xff, 0xff, //0x00001b20 vmovdqa $-1192(%rip), %ymm5 /* LCPI8_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x70, 0xfb, 0xff, 0xff, //0x00001b28 vmovdqa $-1168(%rip), %ymm6 /* LCPI8_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001b30 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x84, 0xd2, //0x00001b35 testb %dl, %dl + 0x0f, 0x85, 0x31, 0xfe, 0xff, 0xff, //0x00001b37 jne LBB8_33 + //0x00001b3d LBB8_37 + 0x4d, 0x85, 0xff, //0x00001b3d testq %r15, %r15 + 0x49, 0x89, 0xc3, //0x00001b40 movq %rax, %r11 + 0x0f, 0x8e, 0x66, 0x00, 0x00, 0x00, //0x00001b43 jle LBB8_44 + 0x4d, 0x85, 0xf6, //0x00001b49 testq %r14, %r14 + 0x0f, 0x8e, 0x5d, 0x00, 0x00, 0x00, //0x00001b4c jle LBB8_44 + 0x31, 0xd2, //0x00001b52 xorl %edx, %edx + 0x31, 0xc9, //0x00001b54 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b56 .p2align 4, 0x90 + //0x00001b60 LBB8_40 + 0x41, 0x0f, 0xb6, 0x5c, 0x15, 0x00, //0x00001b60 movzbl (%r13,%rdx), %ebx + 0x48, 0x89, 0xde, //0x00001b66 movq %rbx, %rsi + 0x48, 0xc1, 0xe6, 0x04, //0x00001b69 shlq $4, %rsi + 0x48, 0x8d, 0x05, 0x5c, 0xde, 0x00, 0x00, //0x00001b6d leaq $56924(%rip), %rax /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x06, 0x00, //0x00001b74 cmpq $0, (%rsi,%rax) + 0x0f, 0x85, 0x12, 0x01, 0x00, 0x00, //0x00001b79 jne LBB8_61 + 0x49, 0x8d, 0x04, 0x0f, //0x00001b7f leaq (%r15,%rcx), %rax + 0x41, 0x88, 0x1c, 0x14, //0x00001b83 movb %bl, (%r12,%rdx) + 0x48, 0x8d, 0x71, 0xff, //0x00001b87 leaq $-1(%rcx), %rsi + 0x48, 0x83, 0xf8, 0x02, //0x00001b8b cmpq $2, %rax + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00001b8f jl LBB8_43 + 0x4c, 0x01, 0xf1, //0x00001b95 addq %r14, %rcx + 0x48, 0x83, 0xc2, 0x01, //0x00001b98 addq $1, %rdx + 0x48, 0x83, 0xf9, 0x01, //0x00001b9c cmpq $1, %rcx + 0x48, 0x89, 0xf1, //0x00001ba0 movq %rsi, %rcx + 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001ba3 jg LBB8_40 + //0x00001ba9 LBB8_43 + 0x49, 0x29, 0xf5, //0x00001ba9 subq %rsi, %r13 + 0x49, 0x01, 0xf7, //0x00001bac addq %rsi, %r15 + //0x00001baf LBB8_44 + 0x4d, 0x85, 0xff, //0x00001baf testq %r15, %r15 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001bb2 movq $-48(%rbp), %r14 + 0x49, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00001bb6 movabsq $12884901889, %r12 + 0x0f, 0x84, 0xbf, 0x00, 0x00, 0x00, //0x00001bc0 je LBB8_59 + 0x49, 0xf7, 0xd5, //0x00001bc6 notq %r13 + 0x4d, 0x01, 0xdd, //0x00001bc9 addq %r11, %r13 + 0xe9, 0xb7, 0x00, 0x00, 0x00, //0x00001bcc jmp LBB8_60 + //0x00001bd1 LBB8_46 + 0x4c, 0x89, 0xeb, //0x00001bd1 movq %r13, %rbx + 0x4c, 0x89, 0xf1, //0x00001bd4 movq %r14, %rcx + 0x48, 0x83, 0xf9, 0x08, //0x00001bd7 cmpq $8, %rcx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x00001bdb jb LBB8_48 + //0x00001be1 LBB8_47 + 0x48, 0x8b, 0x13, //0x00001be1 movq (%rbx), %rdx + 0x49, 0x89, 0x14, 0x24, //0x00001be4 movq %rdx, (%r12) + 0x48, 0x83, 0xc3, 0x08, //0x00001be8 addq $8, %rbx + 0x49, 0x83, 0xc4, 0x08, //0x00001bec addq $8, %r12 + 0x48, 0x83, 0xc1, 0xf8, //0x00001bf0 addq $-8, %rcx + //0x00001bf4 LBB8_48 + 0x48, 0x83, 0xf9, 0x04, //0x00001bf4 cmpq $4, %rcx + 0x0f, 0x8c, 0x39, 0x00, 0x00, 0x00, //0x00001bf8 jl LBB8_49 + 0x8b, 0x13, //0x00001bfe movl (%rbx), %edx + 0x41, 0x89, 0x14, 0x24, //0x00001c00 movl %edx, (%r12) + 0x48, 0x83, 0xc3, 0x04, //0x00001c04 addq $4, %rbx + 0x49, 0x83, 0xc4, 0x04, //0x00001c08 addq $4, %r12 + 0x48, 0x83, 0xc1, 0xfc, //0x00001c0c addq $-4, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00001c10 cmpq $2, %rcx + 0x0f, 0x83, 0x27, 0x00, 0x00, 0x00, //0x00001c14 jae LBB8_56 + //0x00001c1a LBB8_50 + 0x48, 0x85, 0xc9, //0x00001c1a testq %rcx, %rcx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001c1d je LBB8_52 + //0x00001c23 LBB8_51 + 0x8a, 0x0b, //0x00001c23 movb (%rbx), %cl + 0x41, 0x88, 0x0c, 0x24, //0x00001c25 movb %cl, (%r12) + //0x00001c29 LBB8_52 + 0x4d, 0x29, 0xdd, //0x00001c29 subq %r11, %r13 + 0x4d, 0x01, 0xf5, //0x00001c2c addq %r14, %r13 + 0x49, 0x89, 0xf6, //0x00001c2f movq %rsi, %r14 + 0xe9, 0x39, 0x01, 0x00, 0x00, //0x00001c32 jmp LBB8_75 + //0x00001c37 LBB8_49 + 0x48, 0x83, 0xf9, 0x02, //0x00001c37 cmpq $2, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x00001c3b jb LBB8_50 + //0x00001c41 LBB8_56 + 0x0f, 0xb7, 0x13, //0x00001c41 movzwl (%rbx), %edx + 0x66, 0x41, 0x89, 0x14, 0x24, //0x00001c44 movw %dx, (%r12) + 0x48, 0x83, 0xc3, 0x02, //0x00001c49 addq $2, %rbx + 0x49, 0x83, 0xc4, 0x02, //0x00001c4d addq $2, %r12 + 0x48, 0x83, 0xc1, 0xfe, //0x00001c51 addq $-2, %rcx + 0x48, 0x85, 0xc9, //0x00001c55 testq %rcx, %rcx + 0x0f, 0x85, 0xc5, 0xff, 0xff, 0xff, //0x00001c58 jne LBB8_51 + 0xe9, 0xc6, 0xff, 0xff, 0xff, //0x00001c5e jmp LBB8_52 + //0x00001c63 LBB8_57 + 0x83, 0xfb, 0x08, //0x00001c63 cmpl $8, %ebx + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c66 movq $-56(%rbp), %r15 + 0x0f, 0x82, 0xac, 0x00, 0x00, 0x00, //0x00001c6a jb LBB8_69 + 0x49, 0x89, 0x0c, 0x24, //0x00001c70 movq %rcx, (%r12) + 0x49, 0x8d, 0x55, 0x08, //0x00001c74 leaq $8(%r13), %rdx + 0x49, 0x83, 0xc4, 0x08, //0x00001c78 addq $8, %r12 + 0x48, 0x8d, 0x4b, 0xf8, //0x00001c7c leaq $-8(%rbx), %rcx + 0xe9, 0x9d, 0x00, 0x00, 0x00, //0x00001c80 jmp LBB8_70 + //0x00001c85 LBB8_59 + 0x4d, 0x29, 0xdd, //0x00001c85 subq %r11, %r13 + //0x00001c88 LBB8_60 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c88 movq $-56(%rbp), %r15 + 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x00001c8c jmp LBB8_76 + //0x00001c91 LBB8_61 + 0x4d, 0x29, 0xdd, //0x00001c91 subq %r11, %r13 + 0x49, 0x29, 0xcd, //0x00001c94 subq %rcx, %r13 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00001c97 movq $-56(%rbp), %r15 + 0xe9, 0x47, 0x00, 0x00, 0x00, //0x00001c9b jmp LBB8_68 + //0x00001ca0 LBB8_62 + 0x4c, 0x89, 0xe9, //0x00001ca0 movq %r13, %rcx + 0x4c, 0x89, 0xf2, //0x00001ca3 movq %r14, %rdx + //0x00001ca6 LBB8_63 + 0x48, 0x83, 0xfa, 0x04, //0x00001ca6 cmpq $4, %rdx + 0x0f, 0x8c, 0x40, 0x00, 0x00, 0x00, //0x00001caa jl LBB8_64 + 0x8b, 0x31, //0x00001cb0 movl (%rcx), %esi + 0x41, 0x89, 0x34, 0x24, //0x00001cb2 movl %esi, (%r12) + 0x48, 0x83, 0xc1, 0x04, //0x00001cb6 addq $4, %rcx + 0x49, 0x83, 0xc4, 0x04, //0x00001cba addq $4, %r12 + 0x48, 0x83, 0xc2, 0xfc, //0x00001cbe addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00001cc2 cmpq $2, %rdx + 0x0f, 0x83, 0x2e, 0x00, 0x00, 0x00, //0x00001cc6 jae LBB8_90 + //0x00001ccc LBB8_65 + 0x48, 0x85, 0xd2, //0x00001ccc testq %rdx, %rdx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001ccf je LBB8_67 + //0x00001cd5 LBB8_66 + 0x8a, 0x09, //0x00001cd5 movb (%rcx), %cl + 0x41, 0x88, 0x0c, 0x24, //0x00001cd7 movb %cl, (%r12) + //0x00001cdb LBB8_67 + 0x4d, 0x01, 0xee, //0x00001cdb addq %r13, %r14 + 0x49, 0xf7, 0xd6, //0x00001cde notq %r14 + 0x4d, 0x01, 0xde, //0x00001ce1 addq %r11, %r14 + 0x4d, 0x89, 0xf5, //0x00001ce4 movq %r14, %r13 + //0x00001ce7 LBB8_68 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001ce7 movq $-48(%rbp), %r14 + 0xe9, 0x80, 0x00, 0x00, 0x00, //0x00001ceb jmp LBB8_75 + //0x00001cf0 LBB8_64 + 0x48, 0x83, 0xfa, 0x02, //0x00001cf0 cmpq $2, %rdx + 0x0f, 0x82, 0xd2, 0xff, 0xff, 0xff, //0x00001cf4 jb LBB8_65 + //0x00001cfa LBB8_90 + 0x0f, 0xb7, 0x31, //0x00001cfa movzwl (%rcx), %esi + 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001cfd movw %si, (%r12) + 0x48, 0x83, 0xc1, 0x02, //0x00001d02 addq $2, %rcx + 0x49, 0x83, 0xc4, 0x02, //0x00001d06 addq $2, %r12 + 0x48, 0x83, 0xc2, 0xfe, //0x00001d0a addq $-2, %rdx + 0x48, 0x85, 0xd2, //0x00001d0e testq %rdx, %rdx + 0x0f, 0x85, 0xbe, 0xff, 0xff, 0xff, //0x00001d11 jne LBB8_66 + 0xe9, 0xbf, 0xff, 0xff, 0xff, //0x00001d17 jmp LBB8_67 + //0x00001d1c LBB8_69 + 0x4c, 0x89, 0xea, //0x00001d1c movq %r13, %rdx + 0x48, 0x89, 0xd9, //0x00001d1f movq %rbx, %rcx + //0x00001d22 LBB8_70 + 0x4c, 0x8b, 0x75, 0xd0, //0x00001d22 movq $-48(%rbp), %r14 + 0x48, 0x83, 0xf9, 0x04, //0x00001d26 cmpq $4, %rcx + 0x0f, 0x8c, 0x27, 0x01, 0x00, 0x00, //0x00001d2a jl LBB8_71 + 0x8b, 0x32, //0x00001d30 movl (%rdx), %esi + 0x41, 0x89, 0x34, 0x24, //0x00001d32 movl %esi, (%r12) + 0x48, 0x83, 0xc2, 0x04, //0x00001d36 addq $4, %rdx + 0x49, 0x83, 0xc4, 0x04, //0x00001d3a addq $4, %r12 + 0x48, 0x83, 0xc1, 0xfc, //0x00001d3e addq $-4, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00001d42 cmpq $2, %rcx + 0x0f, 0x83, 0x15, 0x01, 0x00, 0x00, //0x00001d46 jae LBB8_92 + //0x00001d4c LBB8_72 + 0x48, 0x85, 0xc9, //0x00001d4c testq %rcx, %rcx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00001d4f je LBB8_74 + //0x00001d55 LBB8_73 + 0x8a, 0x0a, //0x00001d55 movb (%rdx), %cl + 0x41, 0x88, 0x0c, 0x24, //0x00001d57 movb %cl, (%r12) + //0x00001d5b LBB8_74 + 0x4d, 0x29, 0xdd, //0x00001d5b subq %r11, %r13 + 0x49, 0x01, 0xdd, //0x00001d5e addq %rbx, %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d61 .p2align 4, 0x90 + //0x00001d70 LBB8_75 + 0x49, 0xbc, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00001d70 movabsq $12884901889, %r12 + //0x00001d7a LBB8_76 + 0x4d, 0x85, 0xed, //0x00001d7a testq %r13, %r13 + 0x0f, 0x88, 0x8b, 0x04, 0x00, 0x00, //0x00001d7d js LBB8_128 + 0x4d, 0x01, 0xe9, //0x00001d83 addq %r13, %r9 + 0x4d, 0x39, 0xee, //0x00001d86 cmpq %r13, %r14 + 0x0f, 0x84, 0x3f, 0x04, 0x00, 0x00, //0x00001d89 je LBB8_124 + 0x4d, 0x29, 0xea, //0x00001d8f subq %r13, %r10 + 0xe9, 0x19, 0x00, 0x00, 0x00, //0x00001d92 jmp LBB8_80 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d97 .p2align 4, 0x90 + //0x00001da0 LBB8_79 + 0x49, 0x01, 0xc9, //0x00001da0 addq %rcx, %r9 + 0x49, 0x83, 0xc5, 0x01, //0x00001da3 addq $1, %r13 + 0x4d, 0x39, 0xee, //0x00001da7 cmpq %r13, %r14 + 0x0f, 0x84, 0x1e, 0x04, 0x00, 0x00, //0x00001daa je LBB8_124 + //0x00001db0 LBB8_80 + 0x43, 0x0f, 0xb6, 0x34, 0x2b, //0x00001db0 movzbl (%r11,%r13), %esi + 0x48, 0xc1, 0xe6, 0x04, //0x00001db5 shlq $4, %rsi + 0x49, 0x8b, 0x1c, 0x30, //0x00001db9 movq (%r8,%rsi), %rbx + 0x85, 0xdb, //0x00001dbd testl %ebx, %ebx + 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00001dbf je LBB8_88 + 0x48, 0x63, 0xcb, //0x00001dc5 movslq %ebx, %rcx + 0x49, 0x29, 0xca, //0x00001dc8 subq %rcx, %r10 + 0x0f, 0x8c, 0x15, 0x04, 0x00, 0x00, //0x00001dcb jl LBB8_126 + 0x48, 0xc1, 0xe3, 0x20, //0x00001dd1 shlq $32, %rbx + 0x49, 0x8d, 0x14, 0x30, //0x00001dd5 leaq (%r8,%rsi), %rdx + 0x48, 0x83, 0xc2, 0x08, //0x00001dd9 addq $8, %rdx + 0x4c, 0x39, 0xe3, //0x00001ddd cmpq %r12, %rbx + 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001de0 jl LBB8_84 + 0x8b, 0x02, //0x00001de6 movl (%rdx), %eax + 0x41, 0x89, 0x01, //0x00001de8 movl %eax, (%r9) + 0x49, 0x8d, 0x14, 0x30, //0x00001deb leaq (%r8,%rsi), %rdx + 0x48, 0x83, 0xc2, 0x0c, //0x00001def addq $12, %rdx + 0x49, 0x8d, 0x71, 0x04, //0x00001df3 leaq $4(%r9), %rsi + 0x48, 0x8d, 0x59, 0xfc, //0x00001df7 leaq $-4(%rcx), %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001dfb cmpq $2, %rbx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00001dff jae LBB8_85 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x00001e05 jmp LBB8_86 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001e0a .p2align 4, 0x90 + //0x00001e10 LBB8_84 + 0x4c, 0x89, 0xce, //0x00001e10 movq %r9, %rsi + 0x48, 0x89, 0xcb, //0x00001e13 movq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00001e16 cmpq $2, %rbx + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00001e1a jb LBB8_86 + //0x00001e20 LBB8_85 + 0x0f, 0xb7, 0x02, //0x00001e20 movzwl (%rdx), %eax + 0x66, 0x89, 0x06, //0x00001e23 movw %ax, (%rsi) + 0x48, 0x83, 0xc2, 0x02, //0x00001e26 addq $2, %rdx + 0x48, 0x83, 0xc6, 0x02, //0x00001e2a addq $2, %rsi + 0x48, 0x83, 0xc3, 0xfe, //0x00001e2e addq $-2, %rbx + //0x00001e32 LBB8_86 + 0x48, 0x85, 0xdb, //0x00001e32 testq %rbx, %rbx + 0x0f, 0x84, 0x65, 0xff, 0xff, 0xff, //0x00001e35 je LBB8_79 + 0x0f, 0xb6, 0x02, //0x00001e3b movzbl (%rdx), %eax + 0x88, 0x06, //0x00001e3e movb %al, (%rsi) + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00001e40 jmp LBB8_79 + //0x00001e45 LBB8_88 + 0x4b, 0x8d, 0x0c, 0x2b, //0x00001e45 leaq (%r11,%r13), %rcx + 0x4d, 0x29, 0xee, //0x00001e49 subq %r13, %r14 + 0x0f, 0x85, 0x15, 0xf9, 0xff, 0xff, //0x00001e4c jne LBB8_3 + 0xe9, 0x77, 0x03, 0x00, 0x00, //0x00001e52 jmp LBB8_124 + //0x00001e57 LBB8_71 + 0x48, 0x83, 0xf9, 0x02, //0x00001e57 cmpq $2, %rcx + 0x0f, 0x82, 0xeb, 0xfe, 0xff, 0xff, //0x00001e5b jb LBB8_72 + //0x00001e61 LBB8_92 + 0x0f, 0xb7, 0x32, //0x00001e61 movzwl (%rdx), %esi + 0x66, 0x41, 0x89, 0x34, 0x24, //0x00001e64 movw %si, (%r12) + 0x48, 0x83, 0xc2, 0x02, //0x00001e69 addq $2, %rdx + 0x49, 0x83, 0xc4, 0x02, //0x00001e6d addq $2, %r12 + 0x48, 0x83, 0xc1, 0xfe, //0x00001e71 addq $-2, %rcx + 0x48, 0x85, 0xc9, //0x00001e75 testq %rcx, %rcx + 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001e78 jne LBB8_73 + 0xe9, 0xd8, 0xfe, 0xff, 0xff, //0x00001e7e jmp LBB8_74 + //0x00001e83 LBB8_93 + 0x4c, 0x8d, 0x0d, 0x46, 0xfb, 0x00, 0x00, //0x00001e83 leaq $64326(%rip), %r9 /* __EscTab+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0xce, 0xf7, 0xff, 0xff, //0x00001e8a vmovdqa $-2098(%rip), %ymm10 /* LCPI8_0+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0xe6, 0xf7, 0xff, 0xff, //0x00001e92 vmovdqa $-2074(%rip), %ymm9 /* LCPI8_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x1d, 0xfe, 0xf7, 0xff, 0xff, //0x00001e9a vmovdqa $-2050(%rip), %ymm11 /* LCPI8_2+0(%rip) */ + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x00001ea2 vpcmpeqd %ymm8, %ymm8, %ymm8 + 0x48, 0x89, 0xd3, //0x00001ea7 movq %rdx, %rbx + 0x4c, 0x89, 0xf6, //0x00001eaa movq %r14, %rsi + //0x00001ead LBB8_94 + 0x48, 0x83, 0xfe, 0x10, //0x00001ead cmpq $16, %rsi + 0x0f, 0x8d, 0x19, 0x01, 0x00, 0x00, //0x00001eb1 jge LBB8_95 + //0x00001eb7 LBB8_100 + 0x48, 0x83, 0xfe, 0x08, //0x00001eb7 cmpq $8, %rsi + 0x0f, 0x8c, 0x7b, 0x00, 0x00, 0x00, //0x00001ebb jl LBB8_104 + //0x00001ec1 LBB8_101 + 0x0f, 0xb6, 0x07, //0x00001ec1 movzbl (%rdi), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001ec4 movzbl $1(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001ec8 movb (%rcx,%r9), %cl + 0x00, 0xc9, //0x00001ecc addb %cl, %cl + 0x42, 0x0a, 0x0c, 0x08, //0x00001ece orb (%rax,%r9), %cl + 0x0f, 0xb6, 0x47, 0x02, //0x00001ed2 movzbl $2(%rdi), %eax + 0x46, 0x8a, 0x14, 0x08, //0x00001ed6 movb (%rax,%r9), %r10b + 0x41, 0xc0, 0xe2, 0x02, //0x00001eda shlb $2, %r10b + 0x41, 0x08, 0xca, //0x00001ede orb %cl, %r10b + 0x0f, 0xb6, 0x47, 0x03, //0x00001ee1 movzbl $3(%rdi), %eax + 0x42, 0x8a, 0x04, 0x08, //0x00001ee5 movb (%rax,%r9), %al + 0xc0, 0xe0, 0x03, //0x00001ee9 shlb $3, %al + 0x44, 0x08, 0xd0, //0x00001eec orb %r10b, %al + 0x48, 0x8b, 0x0f, //0x00001eef movq (%rdi), %rcx + 0x48, 0x89, 0x0b, //0x00001ef2 movq %rcx, (%rbx) + 0x0f, 0x85, 0x94, 0x02, 0x00, 0x00, //0x00001ef5 jne LBB8_121 + 0x0f, 0xb6, 0x47, 0x04, //0x00001efb movzbl $4(%rdi), %eax + 0x0f, 0xb6, 0x4f, 0x05, //0x00001eff movzbl $5(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001f03 movb (%rcx,%r9), %cl + 0x00, 0xc9, //0x00001f07 addb %cl, %cl + 0x42, 0x0a, 0x0c, 0x08, //0x00001f09 orb (%rax,%r9), %cl + 0x0f, 0xb6, 0x47, 0x06, //0x00001f0d movzbl $6(%rdi), %eax + 0x46, 0x8a, 0x14, 0x08, //0x00001f11 movb (%rax,%r9), %r10b + 0x41, 0xc0, 0xe2, 0x02, //0x00001f15 shlb $2, %r10b + 0x41, 0x08, 0xca, //0x00001f19 orb %cl, %r10b + 0x0f, 0xb6, 0x47, 0x07, //0x00001f1c movzbl $7(%rdi), %eax + 0x42, 0x8a, 0x04, 0x08, //0x00001f20 movb (%rax,%r9), %al + 0xc0, 0xe0, 0x03, //0x00001f24 shlb $3, %al + 0x44, 0x08, 0xd0, //0x00001f27 orb %r10b, %al + 0x0f, 0x85, 0x73, 0x02, 0x00, 0x00, //0x00001f2a jne LBB8_122 + 0x48, 0x83, 0xc3, 0x08, //0x00001f30 addq $8, %rbx + 0x48, 0x83, 0xc7, 0x08, //0x00001f34 addq $8, %rdi + 0x48, 0x83, 0xc6, 0xf8, //0x00001f38 addq $-8, %rsi + //0x00001f3c LBB8_104 + 0x48, 0x83, 0xfe, 0x04, //0x00001f3c cmpq $4, %rsi + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00001f40 jl LBB8_107 + 0x0f, 0xb6, 0x07, //0x00001f46 movzbl (%rdi), %eax + 0x0f, 0xb6, 0x4f, 0x01, //0x00001f49 movzbl $1(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001f4d movb (%rcx,%r9), %cl + 0x00, 0xc9, //0x00001f51 addb %cl, %cl + 0x42, 0x0a, 0x0c, 0x08, //0x00001f53 orb (%rax,%r9), %cl + 0x0f, 0xb6, 0x47, 0x02, //0x00001f57 movzbl $2(%rdi), %eax + 0x46, 0x8a, 0x14, 0x08, //0x00001f5b movb (%rax,%r9), %r10b + 0x41, 0xc0, 0xe2, 0x02, //0x00001f5f shlb $2, %r10b + 0x41, 0x08, 0xca, //0x00001f63 orb %cl, %r10b + 0x0f, 0xb6, 0x47, 0x03, //0x00001f66 movzbl $3(%rdi), %eax + 0x42, 0x8a, 0x04, 0x08, //0x00001f6a movb (%rax,%r9), %al + 0xc0, 0xe0, 0x03, //0x00001f6e shlb $3, %al + 0x44, 0x08, 0xd0, //0x00001f71 orb %r10b, %al + 0x8b, 0x0f, //0x00001f74 movl (%rdi), %ecx + 0x89, 0x0b, //0x00001f76 movl %ecx, (%rbx) + 0x0f, 0x85, 0x11, 0x02, 0x00, 0x00, //0x00001f78 jne LBB8_121 + 0x48, 0x83, 0xc3, 0x04, //0x00001f7e addq $4, %rbx + 0x48, 0x83, 0xc7, 0x04, //0x00001f82 addq $4, %rdi + 0x48, 0x83, 0xc6, 0xfc, //0x00001f86 addq $-4, %rsi + //0x00001f8a LBB8_107 + 0x48, 0x85, 0xf6, //0x00001f8a testq %rsi, %rsi + 0x0f, 0x8e, 0x30, 0x02, 0x00, 0x00, //0x00001f8d jle LBB8_123 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001f93 .p2align 4, 0x90 + //0x00001fa0 LBB8_108 + 0x0f, 0xb6, 0x07, //0x00001fa0 movzbl (%rdi), %eax + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x00001fa3 cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0x95, 0x01, 0x00, 0x00, //0x00001fa8 jne LBB8_118 + 0x48, 0x83, 0xc7, 0x01, //0x00001fae addq $1, %rdi + 0x88, 0x03, //0x00001fb2 movb %al, (%rbx) + 0x48, 0x83, 0xc3, 0x01, //0x00001fb4 addq $1, %rbx + 0x48, 0x8d, 0x46, 0xff, //0x00001fb8 leaq $-1(%rsi), %rax + 0x48, 0x83, 0xfe, 0x01, //0x00001fbc cmpq $1, %rsi + 0x48, 0x89, 0xc6, //0x00001fc0 movq %rax, %rsi + 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001fc3 jg LBB8_108 + 0xe9, 0xf5, 0x01, 0x00, 0x00, //0x00001fc9 jmp LBB8_123 + 0x90, 0x90, //0x00001fce .p2align 4, 0x90 + //0x00001fd0 LBB8_95 + 0x48, 0x83, 0xfe, 0x20, //0x00001fd0 cmpq $32, %rsi + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x00001fd4 jl LBB8_110 + 0x48, 0x89, 0xf1, //0x00001fda movq %rsi, %rcx + 0x90, 0x90, 0x90, //0x00001fdd .p2align 4, 0x90 + //0x00001fe0 LBB8_97 + 0xc5, 0xfe, 0x6f, 0x07, //0x00001fe0 vmovdqu (%rdi), %ymm0 + 0xc5, 0xad, 0x64, 0xc8, //0x00001fe4 vpcmpgtb %ymm0, %ymm10, %ymm1 + 0xc5, 0xb5, 0x74, 0xd0, //0x00001fe8 vpcmpeqb %ymm0, %ymm9, %ymm2 + 0xc5, 0xa5, 0x74, 0xd8, //0x00001fec vpcmpeqb %ymm0, %ymm11, %ymm3 + 0xc5, 0xe5, 0xeb, 0xd2, //0x00001ff0 vpor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x03, //0x00001ff4 vmovdqu %ymm0, (%rbx) + 0xc4, 0xc1, 0x7d, 0x64, 0xc0, //0x00001ff8 vpcmpgtb %ymm8, %ymm0, %ymm0 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00001ffd vpand %ymm0, %ymm1, %ymm0 + 0xc5, 0xed, 0xeb, 0xc0, //0x00002001 vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc0, //0x00002005 vpmovmskb %ymm0, %eax + 0x85, 0xc0, //0x00002009 testl %eax, %eax + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x0000200b jne LBB8_116 + 0x48, 0x83, 0xc7, 0x20, //0x00002011 addq $32, %rdi + 0x48, 0x83, 0xc3, 0x20, //0x00002015 addq $32, %rbx + 0x48, 0x8d, 0x71, 0xe0, //0x00002019 leaq $-32(%rcx), %rsi + 0x48, 0x83, 0xf9, 0x3f, //0x0000201d cmpq $63, %rcx + 0x48, 0x89, 0xf1, //0x00002021 movq %rsi, %rcx + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00002024 jg LBB8_97 + 0xc5, 0xf8, 0x77, //0x0000202a vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000202d vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0x66, 0xf6, 0xff, 0xff, //0x00002032 vmovdqa $-2458(%rip), %ymm11 /* LCPI8_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x3e, 0xf6, 0xff, 0xff, //0x0000203a vmovdqa $-2498(%rip), %ymm9 /* LCPI8_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x16, 0xf6, 0xff, 0xff, //0x00002042 vmovdqa $-2538(%rip), %ymm10 /* LCPI8_0+0(%rip) */ + 0x48, 0x8d, 0x46, 0x20, //0x0000204a leaq $32(%rsi), %rax + 0x48, 0x83, 0xf8, 0x30, //0x0000204e cmpq $48, %rax + 0xc5, 0xf9, 0x6f, 0x3d, 0x66, 0xf6, 0xff, 0xff, //0x00002052 vmovdqa $-2458(%rip), %xmm7 /* LCPI8_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x6e, 0xf6, 0xff, 0xff, //0x0000205a vmovdqa $-2450(%rip), %xmm5 /* LCPI8_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x76, 0xf6, 0xff, 0xff, //0x00002062 vmovdqa $-2442(%rip), %xmm4 /* LCPI8_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x0000206a vpcmpeqd %xmm6, %xmm6, %xmm6 + 0x0f, 0x8d, 0x41, 0x00, 0x00, 0x00, //0x0000206e jge LBB8_111 + 0xe9, 0x3e, 0xfe, 0xff, 0xff, //0x00002074 jmp LBB8_100 + //0x00002079 LBB8_110 + 0xc5, 0xf8, 0x77, //0x00002079 vzeroupper + 0xc4, 0x41, 0x3d, 0x76, 0xc0, //0x0000207c vpcmpeqd %ymm8, %ymm8, %ymm8 + 0xc5, 0x7d, 0x6f, 0x1d, 0x17, 0xf6, 0xff, 0xff, //0x00002081 vmovdqa $-2537(%rip), %ymm11 /* LCPI8_2+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0xef, 0xf5, 0xff, 0xff, //0x00002089 vmovdqa $-2577(%rip), %ymm9 /* LCPI8_1+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0xc7, 0xf5, 0xff, 0xff, //0x00002091 vmovdqa $-2617(%rip), %ymm10 /* LCPI8_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x1f, 0xf6, 0xff, 0xff, //0x00002099 vmovdqa $-2529(%rip), %xmm7 /* LCPI8_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0x27, 0xf6, 0xff, 0xff, //0x000020a1 vmovdqa $-2521(%rip), %xmm5 /* LCPI8_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0x2f, 0xf6, 0xff, 0xff, //0x000020a9 vmovdqa $-2513(%rip), %xmm4 /* LCPI8_5+0(%rip) */ + 0xc5, 0xc9, 0x76, 0xf6, //0x000020b1 vpcmpeqd %xmm6, %xmm6, %xmm6 + //0x000020b5 LBB8_111 + 0x48, 0x89, 0xf1, //0x000020b5 movq %rsi, %rcx + 0x48, 0xf7, 0xd9, //0x000020b8 negq %rcx + 0x48, 0x83, 0xc6, 0x10, //0x000020bb addq $16, %rsi + 0x90, //0x000020bf .p2align 4, 0x90 + //0x000020c0 LBB8_112 + 0xc5, 0xfa, 0x6f, 0x07, //0x000020c0 vmovdqu (%rdi), %xmm0 + 0xc5, 0xc1, 0x64, 0xc8, //0x000020c4 vpcmpgtb %xmm0, %xmm7, %xmm1 + 0xc5, 0xf9, 0x74, 0xd5, //0x000020c8 vpcmpeqb %xmm5, %xmm0, %xmm2 + 0xc5, 0xf9, 0x74, 0xdc, //0x000020cc vpcmpeqb %xmm4, %xmm0, %xmm3 + 0xc5, 0xe1, 0xeb, 0xd2, //0x000020d0 vpor %xmm2, %xmm3, %xmm2 + 0xc5, 0xfa, 0x7f, 0x03, //0x000020d4 vmovdqu %xmm0, (%rbx) + 0xc5, 0xf9, 0x64, 0xc6, //0x000020d8 vpcmpgtb %xmm6, %xmm0, %xmm0 + 0xc5, 0xf1, 0xdb, 0xc0, //0x000020dc vpand %xmm0, %xmm1, %xmm0 + 0xc5, 0xe9, 0xeb, 0xc0, //0x000020e0 vpor %xmm0, %xmm2, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x000020e4 vpmovmskb %xmm0, %eax + 0x85, 0xc0, //0x000020e8 testl %eax, %eax + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x000020ea jne LBB8_115 + 0x48, 0x83, 0xc7, 0x10, //0x000020f0 addq $16, %rdi + 0x48, 0x83, 0xc3, 0x10, //0x000020f4 addq $16, %rbx + 0x48, 0x83, 0xc1, 0x10, //0x000020f8 addq $16, %rcx + 0x48, 0x83, 0xc6, 0xf0, //0x000020fc addq $-16, %rsi + 0x48, 0x83, 0xfe, 0x1f, //0x00002100 cmpq $31, %rsi + 0x0f, 0x8f, 0xb6, 0xff, 0xff, 0xff, //0x00002104 jg LBB8_112 + 0x48, 0xf7, 0xd9, //0x0000210a negq %rcx + 0x48, 0x89, 0xce, //0x0000210d movq %rcx, %rsi + 0x48, 0x83, 0xfe, 0x08, //0x00002110 cmpq $8, %rsi + 0x0f, 0x8d, 0xa7, 0xfd, 0xff, 0xff, //0x00002114 jge LBB8_101 + 0xe9, 0x1d, 0xfe, 0xff, 0xff, //0x0000211a jmp LBB8_104 + //0x0000211f LBB8_115 + 0x66, 0x0f, 0xbc, 0xc0, //0x0000211f bsfw %ax, %ax + 0x0f, 0xb7, 0xc0, //0x00002123 movzwl %ax, %eax + 0x48, 0x01, 0xc7, //0x00002126 addq %rax, %rdi + 0x48, 0x01, 0xc1, //0x00002129 addq %rax, %rcx + 0x48, 0xf7, 0xd9, //0x0000212c negq %rcx + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000212f jmp LBB8_117 + //0x00002134 LBB8_116 + 0x0f, 0xbc, 0xc0, //0x00002134 bsfl %eax, %eax + 0x48, 0x01, 0xc7, //0x00002137 addq %rax, %rdi + 0x48, 0x29, 0xc1, //0x0000213a subq %rax, %rcx + //0x0000213d LBB8_117 + 0x48, 0x01, 0xc3, //0x0000213d addq %rax, %rbx + 0x48, 0x89, 0xce, //0x00002140 movq %rcx, %rsi + //0x00002143 LBB8_118 + 0x8a, 0x07, //0x00002143 movb (%rdi), %al + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002145 .p2align 4, 0x90 + //0x00002150 LBB8_119 + 0x48, 0x89, 0xd9, //0x00002150 movq %rbx, %rcx + 0x0f, 0xb6, 0xc0, //0x00002153 movzbl %al, %eax + 0x48, 0xc1, 0xe0, 0x04, //0x00002156 shlq $4, %rax + 0x49, 0x63, 0x1c, 0x00, //0x0000215a movslq (%r8,%rax), %rbx + 0x49, 0x8b, 0x44, 0x00, 0x08, //0x0000215e movq $8(%r8,%rax), %rax + 0x48, 0x89, 0x01, //0x00002163 movq %rax, (%rcx) + 0x48, 0x01, 0xcb, //0x00002166 addq %rcx, %rbx + 0x48, 0x83, 0xfe, 0x02, //0x00002169 cmpq $2, %rsi + 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x0000216d jl LBB8_123 + 0x0f, 0xb6, 0x47, 0x01, //0x00002173 movzbl $1(%rdi), %eax + 0x48, 0x83, 0xc7, 0x01, //0x00002177 addq $1, %rdi + 0x48, 0x83, 0xc6, 0xff, //0x0000217b addq $-1, %rsi + 0x42, 0x80, 0x3c, 0x08, 0x00, //0x0000217f cmpb $0, (%rax,%r9) + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00002184 jne LBB8_119 + 0xe9, 0x1e, 0xfd, 0xff, 0xff, //0x0000218a jmp LBB8_94 + //0x0000218f LBB8_121 + 0x0f, 0xb6, 0xc0, //0x0000218f movzbl %al, %eax + 0x0f, 0xbc, 0xc0, //0x00002192 bsfl %eax, %eax + 0x48, 0x01, 0xc7, //0x00002195 addq %rax, %rdi + 0x48, 0x29, 0xc6, //0x00002198 subq %rax, %rsi + 0x48, 0x01, 0xc3, //0x0000219b addq %rax, %rbx + 0xe9, 0xa0, 0xff, 0xff, 0xff, //0x0000219e jmp LBB8_118 + //0x000021a3 LBB8_122 + 0x0f, 0xb6, 0xc0, //0x000021a3 movzbl %al, %eax + 0x0f, 0xbc, 0xc0, //0x000021a6 bsfl %eax, %eax + 0x48, 0x8d, 0x48, 0x04, //0x000021a9 leaq $4(%rax), %rcx + 0x48, 0x01, 0xc7, //0x000021ad addq %rax, %rdi + 0x48, 0x83, 0xc7, 0x04, //0x000021b0 addq $4, %rdi + 0x48, 0x29, 0xce, //0x000021b4 subq %rcx, %rsi + 0x48, 0x01, 0xc3, //0x000021b7 addq %rax, %rbx + 0x48, 0x83, 0xc3, 0x04, //0x000021ba addq $4, %rbx + 0xe9, 0x80, 0xff, 0xff, 0xff, //0x000021be jmp LBB8_118 + //0x000021c3 LBB8_123 + 0x48, 0x29, 0xd3, //0x000021c3 subq %rdx, %rbx + 0x49, 0x89, 0x1f, //0x000021c6 movq %rbx, (%r15) + 0xe9, 0x2b, 0x00, 0x00, 0x00, //0x000021c9 jmp LBB8_127 + //0x000021ce LBB8_124 + 0x4d, 0x01, 0xeb, //0x000021ce addq %r13, %r11 + 0x48, 0x8b, 0x55, 0xc0, //0x000021d1 movq $-64(%rbp), %rdx + //0x000021d5 LBB8_125 + 0x49, 0x29, 0xd1, //0x000021d5 subq %rdx, %r9 + 0x4d, 0x89, 0x0f, //0x000021d8 movq %r9, (%r15) + 0x49, 0x29, 0xfb, //0x000021db subq %rdi, %r11 + 0x4d, 0x89, 0xde, //0x000021de movq %r11, %r14 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000021e1 jmp LBB8_127 + //0x000021e6 LBB8_126 + 0x4c, 0x2b, 0x4d, 0xc0, //0x000021e6 subq $-64(%rbp), %r9 + 0x4d, 0x89, 0x0f, //0x000021ea movq %r9, (%r15) + 0x4c, 0x29, 0xdf, //0x000021ed subq %r11, %rdi + 0x49, 0xf7, 0xd5, //0x000021f0 notq %r13 + 0x49, 0x01, 0xfd, //0x000021f3 addq %rdi, %r13 + 0x4d, 0x89, 0xee, //0x000021f6 movq %r13, %r14 + //0x000021f9 LBB8_127 + 0x4c, 0x89, 0xf0, //0x000021f9 movq %r14, %rax + 0x48, 0x83, 0xc4, 0x18, //0x000021fc addq $24, %rsp + 0x5b, //0x00002200 popq %rbx + 0x41, 0x5c, //0x00002201 popq %r12 + 0x41, 0x5d, //0x00002203 popq %r13 + 0x41, 0x5e, //0x00002205 popq %r14 + 0x41, 0x5f, //0x00002207 popq %r15 + 0x5d, //0x00002209 popq %rbp + 0xc5, 0xf8, 0x77, //0x0000220a vzeroupper + 0xc3, //0x0000220d retq + //0x0000220e LBB8_128 + 0x48, 0x8b, 0x45, 0xc0, //0x0000220e movq $-64(%rbp), %rax + 0x4c, 0x01, 0xe8, //0x00002212 addq %r13, %rax + 0x48, 0xf7, 0xd0, //0x00002215 notq %rax + 0x4c, 0x01, 0xc8, //0x00002218 addq %r9, %rax + 0x49, 0x89, 0x07, //0x0000221b movq %rax, (%r15) + 0x4c, 0x29, 0xdf, //0x0000221e subq %r11, %rdi + 0x4c, 0x01, 0xef, //0x00002221 addq %r13, %rdi + 0x49, 0x89, 0xfe, //0x00002224 movq %rdi, %r14 + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00002227 jmp LBB8_127 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000222c .p2align 5, 0x00 + //0x00002240 LCPI9_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002240 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002250 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00002260 .p2align 4, 0x00 + //0x00002260 LCPI9_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00002260 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00002270 .p2align 4, 0x90 + //0x00002270 _unquote + 0x55, //0x00002270 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002271 movq %rsp, %rbp + 0x41, 0x57, //0x00002274 pushq %r15 + 0x41, 0x56, //0x00002276 pushq %r14 + 0x41, 0x55, //0x00002278 pushq %r13 + 0x41, 0x54, //0x0000227a pushq %r12 + 0x53, //0x0000227c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000227d subq $56, %rsp + 0x48, 0x85, 0xf6, //0x00002281 testq %rsi, %rsi + 0x0f, 0x84, 0x03, 0x07, 0x00, 0x00, //0x00002284 je LBB9_1 + 0x48, 0x89, 0x4d, 0xd0, //0x0000228a movq %rcx, $-48(%rbp) + 0x4c, 0x89, 0xc0, //0x0000228e movq %r8, %rax + 0x4c, 0x89, 0x45, 0xa8, //0x00002291 movq %r8, $-88(%rbp) + 0x4d, 0x89, 0xc2, //0x00002295 movq %r8, %r10 + 0x41, 0x83, 0xe2, 0x01, //0x00002298 andl $1, %r10d + 0x4c, 0x8d, 0x05, 0x2d, 0xf8, 0x00, 0x00, //0x0000229c leaq $63533(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x95, 0xff, 0xff, 0xff, //0x000022a3 vmovdqa $-107(%rip), %ymm1 /* LCPI9_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xff, 0xff, 0xff, //0x000022ab vmovdqa $-83(%rip), %xmm2 /* LCPI9_1+0(%rip) */ + 0x49, 0x89, 0xff, //0x000022b3 movq %rdi, %r15 + 0x49, 0x89, 0xf5, //0x000022b6 movq %rsi, %r13 + 0x49, 0x89, 0xd4, //0x000022b9 movq %rdx, %r12 + 0xe9, 0x1f, 0x02, 0x00, 0x00, //0x000022bc jmp LBB9_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000022c1 .p2align 4, 0x90 + //0x000022d0 LBB9_65 + 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x000022d0 cmpl $2047, %r14d + 0x0f, 0x86, 0x76, 0x05, 0x00, 0x00, //0x000022d7 jbe LBB9_73 + 0x44, 0x89, 0xf0, //0x000022dd movl %r14d, %eax + 0x25, 0x00, 0xf8, 0xff, 0xff, //0x000022e0 andl $-2048, %eax + 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x000022e5 cmpl $55296, %eax + 0x0f, 0x85, 0x20, 0x05, 0x00, 0x00, //0x000022ea jne LBB9_76 + 0x4d, 0x85, 0xd2, //0x000022f0 testq %r10, %r10 + 0x48, 0x89, 0x7d, 0xc8, //0x000022f3 movq %rdi, $-56(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x000022f7 movq %rsi, $-64(%rbp) + 0x0f, 0x85, 0xe1, 0x00, 0x00, 0x00, //0x000022fb jne LBB9_68 + 0x4c, 0x89, 0x55, 0xb8, //0x00002301 movq %r10, $-72(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00002305 movq %rdx, $-80(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00002309 cmpq $6, %r13 + 0x0f, 0x8c, 0xfc, 0x00, 0x00, 0x00, //0x0000230d jl LBB9_100 + //0x00002313 LBB9_97 + 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00002313 cmpl $56319, %r14d + 0x0f, 0x87, 0xef, 0x00, 0x00, 0x00, //0x0000231a ja LBB9_100 + 0x41, 0x80, 0x3f, 0x5c, //0x00002320 cmpb $92, (%r15) + 0x0f, 0x85, 0xe5, 0x00, 0x00, 0x00, //0x00002324 jne LBB9_100 + 0x41, 0x80, 0x7f, 0x01, 0x75, //0x0000232a cmpb $117, $1(%r15) + 0x0f, 0x85, 0xda, 0x00, 0x00, 0x00, //0x0000232f jne LBB9_100 + 0x49, 0x8d, 0x7f, 0x02, //0x00002335 leaq $2(%r15), %rdi + 0xc5, 0xf8, 0x77, //0x00002339 vzeroupper + 0xe8, 0x2f, 0x09, 0x00, 0x00, //0x0000233c callq _unhex16_is + 0x84, 0xc0, //0x00002341 testb %al, %al + 0x0f, 0x84, 0x00, 0x08, 0x00, 0x00, //0x00002343 je LBB9_106 + 0x41, 0x8b, 0x47, 0x02, //0x00002349 movl $2(%r15), %eax + 0x0f, 0xc8, //0x0000234d bswapl %eax + 0x89, 0xc1, //0x0000234f movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002351 shrl $4, %ecx + 0xf7, 0xd1, //0x00002354 notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00002356 andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x0000235c leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000235f andl $252645135, %eax + 0x01, 0xc8, //0x00002364 addl %ecx, %eax + 0x89, 0xc1, //0x00002366 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00002368 shrl $4, %ecx + 0x09, 0xc1, //0x0000236b orl %eax, %ecx + 0x89, 0xc8, //0x0000236d movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x0000236f shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00002372 andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x00002377 movzbl %cl, %ebx + 0x09, 0xc3, //0x0000237a orl %eax, %ebx + 0x49, 0x83, 0xc7, 0x06, //0x0000237c addq $6, %r15 + 0x49, 0x83, 0xc5, 0xfa, //0x00002380 addq $-6, %r13 + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00002384 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000238a cmpl $14417920, %ecx + 0x48, 0x8b, 0x7d, 0xc8, //0x00002390 movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xb0, //0x00002394 movq $-80(%rbp), %rdx + 0x48, 0x8b, 0x75, 0xc0, //0x00002398 movq $-64(%rbp), %rsi + 0x4c, 0x8d, 0x05, 0x2d, 0xf7, 0x00, 0x00, //0x0000239c leaq $63277(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x95, 0xfe, 0xff, 0xff, //0x000023a3 vmovdqa $-363(%rip), %ymm1 /* LCPI9_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xad, 0xfe, 0xff, 0xff, //0x000023ab vmovdqa $-339(%rip), %xmm2 /* LCPI9_1+0(%rip) */ + 0x0f, 0x84, 0x76, 0x00, 0x00, 0x00, //0x000023b3 je LBB9_117 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x000023b9 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x000023c0 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x000023c6 addq $3, %r12 + 0x41, 0x89, 0xde, //0x000023ca movl %ebx, %r14d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x000023cd cmpl $128, %ebx + 0x4c, 0x8b, 0x55, 0xb8, //0x000023d3 movq $-72(%rbp), %r10 + 0x0f, 0x83, 0xf3, 0xfe, 0xff, 0xff, //0x000023d7 jae LBB9_65 + 0xe9, 0xe7, 0x03, 0x00, 0x00, //0x000023dd jmp LBB9_119 + //0x000023e2 LBB9_68 + 0x4d, 0x85, 0xed, //0x000023e2 testq %r13, %r13 + 0x0f, 0x8e, 0x38, 0x07, 0x00, 0x00, //0x000023e5 jle LBB9_69 + 0x41, 0x80, 0x3f, 0x5c, //0x000023eb cmpb $92, (%r15) + 0x0f, 0x85, 0xb9, 0x00, 0x00, 0x00, //0x000023ef jne LBB9_102 + 0x49, 0x83, 0xc5, 0xff, //0x000023f5 addq $-1, %r13 + 0x49, 0x83, 0xc7, 0x01, //0x000023f9 addq $1, %r15 + 0x4c, 0x89, 0x55, 0xb8, //0x000023fd movq %r10, $-72(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00002401 movq %rdx, $-80(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00002405 cmpq $6, %r13 + 0x0f, 0x8d, 0x04, 0xff, 0xff, 0xff, //0x00002409 jge LBB9_97 + //0x0000240f LBB9_100 + 0xf6, 0x45, 0xa8, 0x02, //0x0000240f testb $2, $-88(%rbp) + 0x0f, 0x84, 0x52, 0x05, 0x00, 0x00, //0x00002413 je LBB9_83 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00002419 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002420 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002426 addq $3, %r12 + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000242a jmp LBB9_92 + //0x0000242f LBB9_117 + 0x89, 0xd8, //0x0000242f movl %ebx, %eax + 0x44, 0x89, 0xf3, //0x00002431 movl %r14d, %ebx + //0x00002434 LBB9_91 + 0xc1, 0xe3, 0x0a, //0x00002434 shll $10, %ebx + 0x89, 0xc1, //0x00002437 movl %eax, %ecx + 0x01, 0xd9, //0x00002439 addl %ebx, %ecx + 0x01, 0xd8, //0x0000243b addl %ebx, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x0000243d addl $-56613888, %eax + 0x89, 0xc2, //0x00002442 movl %eax, %edx + 0xc1, 0xea, 0x12, //0x00002444 shrl $18, %edx + 0x80, 0xca, 0xf0, //0x00002447 orb $-16, %dl + 0x41, 0x88, 0x14, 0x24, //0x0000244a movb %dl, (%r12) + 0x89, 0xc2, //0x0000244e movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x00002450 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x00002453 andb $63, %dl + 0x80, 0xca, 0x80, //0x00002456 orb $-128, %dl + 0x41, 0x88, 0x54, 0x24, 0x01, //0x00002459 movb %dl, $1(%r12) + 0xc1, 0xe8, 0x06, //0x0000245e shrl $6, %eax + 0x24, 0x3f, //0x00002461 andb $63, %al + 0x0c, 0x80, //0x00002463 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x02, //0x00002465 movb %al, $2(%r12) + 0x80, 0xe1, 0x3f, //0x0000246a andb $63, %cl + 0x80, 0xc9, 0x80, //0x0000246d orb $-128, %cl + 0x41, 0x88, 0x4c, 0x24, 0x03, //0x00002470 movb %cl, $3(%r12) + 0x49, 0x83, 0xc4, 0x04, //0x00002475 addq $4, %r12 + //0x00002479 LBB9_92 + 0x48, 0x8b, 0x7d, 0xc8, //0x00002479 movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xb0, //0x0000247d movq $-80(%rbp), %rdx + 0x4c, 0x8b, 0x55, 0xb8, //0x00002481 movq $-72(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xc0, //0x00002485 movq $-64(%rbp), %rsi + 0x4c, 0x8d, 0x05, 0x40, 0xf6, 0x00, 0x00, //0x00002489 leaq $63040(%rip), %r8 /* __UnquoteTab+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0xa8, 0xfd, 0xff, 0xff, //0x00002490 vmovdqa $-600(%rip), %ymm1 /* LCPI9_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xc0, 0xfd, 0xff, 0xff, //0x00002498 vmovdqa $-576(%rip), %xmm2 /* LCPI9_1+0(%rip) */ + 0x4d, 0x85, 0xed, //0x000024a0 testq %r13, %r13 + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x000024a3 jne LBB9_4 + 0xe9, 0x2f, 0x06, 0x00, 0x00, //0x000024a9 jmp LBB9_126 + //0x000024ae LBB9_102 + 0xf6, 0x45, 0xa8, 0x02, //0x000024ae testb $2, $-88(%rbp) + 0x0f, 0x84, 0x9b, 0x07, 0x00, 0x00, //0x000024b2 je LBB9_103 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x000024b8 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x000024bf movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x000024c5 addq $3, %r12 + 0x48, 0x8b, 0x7d, 0xc8, //0x000024c9 movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x75, 0xc0, //0x000024cd movq $-64(%rbp), %rsi + 0x4d, 0x85, 0xed, //0x000024d1 testq %r13, %r13 + 0x0f, 0x84, 0x03, 0x06, 0x00, 0x00, //0x000024d4 je LBB9_126 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024da .p2align 4, 0x90 + //0x000024e0 LBB9_4 + 0x41, 0x80, 0x3f, 0x5c, //0x000024e0 cmpb $92, (%r15) + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000024e4 jne LBB9_6 + 0x45, 0x31, 0xc9, //0x000024ea xorl %r9d, %r9d + 0xe9, 0x5e, 0x01, 0x00, 0x00, //0x000024ed jmp LBB9_24 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000024f2 .p2align 4, 0x90 + //0x00002500 LBB9_6 + 0x4c, 0x89, 0xeb, //0x00002500 movq %r13, %rbx + 0x4c, 0x89, 0xe1, //0x00002503 movq %r12, %rcx + 0x4d, 0x89, 0xf9, //0x00002506 movq %r15, %r9 + 0x49, 0x83, 0xfd, 0x20, //0x00002509 cmpq $32, %r13 + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x0000250d jl LBB9_12 + 0x31, 0xc9, //0x00002513 xorl %ecx, %ecx + 0x4c, 0x89, 0xe8, //0x00002515 movq %r13, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002518 .p2align 4, 0x90 + //0x00002520 LBB9_8 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x0f, //0x00002520 vmovdqu (%r15,%rcx), %ymm0 + 0xc4, 0xc1, 0x7e, 0x7f, 0x04, 0x0c, //0x00002526 vmovdqu %ymm0, (%r12,%rcx) + 0xc5, 0xfd, 0x74, 0xc1, //0x0000252c vpcmpeqb %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xd8, //0x00002530 vpmovmskb %ymm0, %ebx + 0x85, 0xdb, //0x00002534 testl %ebx, %ebx + 0x0f, 0x85, 0xdc, 0x00, 0x00, 0x00, //0x00002536 jne LBB9_9 + 0x48, 0x8d, 0x58, 0xe0, //0x0000253c leaq $-32(%rax), %rbx + 0x48, 0x83, 0xc1, 0x20, //0x00002540 addq $32, %rcx + 0x48, 0x83, 0xf8, 0x3f, //0x00002544 cmpq $63, %rax + 0x48, 0x89, 0xd8, //0x00002548 movq %rbx, %rax + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x0000254b jg LBB9_8 + 0x4d, 0x8d, 0x0c, 0x0f, //0x00002551 leaq (%r15,%rcx), %r9 + 0x4c, 0x01, 0xe1, //0x00002555 addq %r12, %rcx + //0x00002558 LBB9_12 + 0xc5, 0xf8, 0x77, //0x00002558 vzeroupper + 0x48, 0x83, 0xfb, 0x10, //0x0000255b cmpq $16, %rbx + 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x0000255f jl LBB9_13 + 0x4d, 0x89, 0xfb, //0x00002565 movq %r15, %r11 + 0x4d, 0x29, 0xcb, //0x00002568 subq %r9, %r11 + 0xc5, 0xfd, 0x6f, 0x0d, 0xcd, 0xfc, 0xff, 0xff, //0x0000256b vmovdqa $-819(%rip), %ymm1 /* LCPI9_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xe5, 0xfc, 0xff, 0xff, //0x00002573 vmovdqa $-795(%rip), %xmm2 /* LCPI9_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000257b .p2align 4, 0x90 + //0x00002580 LBB9_19 + 0xc4, 0xc1, 0x7a, 0x6f, 0x01, //0x00002580 vmovdqu (%r9), %xmm0 + 0xc5, 0xfa, 0x7f, 0x01, //0x00002585 vmovdqu %xmm0, (%rcx) + 0xc5, 0xf9, 0x74, 0xc2, //0x00002589 vpcmpeqb %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc0, //0x0000258d vpmovmskb %xmm0, %eax + 0x85, 0xc0, //0x00002591 testl %eax, %eax + 0x0f, 0x85, 0x95, 0x00, 0x00, 0x00, //0x00002593 jne LBB9_20 + 0x49, 0x83, 0xc1, 0x10, //0x00002599 addq $16, %r9 + 0x48, 0x83, 0xc1, 0x10, //0x0000259d addq $16, %rcx + 0x4c, 0x8d, 0x73, 0xf0, //0x000025a1 leaq $-16(%rbx), %r14 + 0x49, 0x83, 0xc3, 0xf0, //0x000025a5 addq $-16, %r11 + 0x48, 0x83, 0xfb, 0x1f, //0x000025a9 cmpq $31, %rbx + 0x4c, 0x89, 0xf3, //0x000025ad movq %r14, %rbx + 0x0f, 0x8f, 0xca, 0xff, 0xff, 0xff, //0x000025b0 jg LBB9_19 + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000025b6 jmp LBB9_14 + //0x000025bb LBB9_13 + 0x49, 0x89, 0xde, //0x000025bb movq %rbx, %r14 + 0xc5, 0xfd, 0x6f, 0x0d, 0x7a, 0xfc, 0xff, 0xff, //0x000025be vmovdqa $-902(%rip), %ymm1 /* LCPI9_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x92, 0xfc, 0xff, 0xff, //0x000025c6 vmovdqa $-878(%rip), %xmm2 /* LCPI9_1+0(%rip) */ + //0x000025ce LBB9_14 + 0x4d, 0x85, 0xf6, //0x000025ce testq %r14, %r14 + 0x0f, 0x84, 0xbc, 0x03, 0x00, 0x00, //0x000025d1 je LBB9_2 + 0x31, 0xc0, //0x000025d7 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000025d9 .p2align 4, 0x90 + //0x000025e0 LBB9_16 + 0x41, 0x0f, 0xb6, 0x1c, 0x01, //0x000025e0 movzbl (%r9,%rax), %ebx + 0x80, 0xfb, 0x5c, //0x000025e5 cmpb $92, %bl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x000025e8 je LBB9_22 + 0x88, 0x1c, 0x01, //0x000025ee movb %bl, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x000025f1 addq $1, %rax + 0x49, 0x39, 0xc6, //0x000025f5 cmpq %rax, %r14 + 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x000025f8 jne LBB9_16 + 0xe9, 0x90, 0x03, 0x00, 0x00, //0x000025fe jmp LBB9_2 + //0x00002603 LBB9_22 + 0x4d, 0x29, 0xf9, //0x00002603 subq %r15, %r9 + 0x49, 0x01, 0xc1, //0x00002606 addq %rax, %r9 + 0x49, 0x83, 0xf9, 0xff, //0x00002609 cmpq $-1, %r9 + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x0000260d jne LBB9_24 + 0xe9, 0x7b, 0x03, 0x00, 0x00, //0x00002613 jmp LBB9_2 + //0x00002618 LBB9_9 + 0x44, 0x0f, 0xbc, 0xcb, //0x00002618 bsfl %ebx, %r9d + 0x49, 0x01, 0xc9, //0x0000261c addq %rcx, %r9 + 0x49, 0x83, 0xf9, 0xff, //0x0000261f cmpq $-1, %r9 + 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00002623 jne LBB9_24 + 0xe9, 0x65, 0x03, 0x00, 0x00, //0x00002629 jmp LBB9_2 + //0x0000262e LBB9_20 + 0x66, 0x0f, 0xbc, 0xc0, //0x0000262e bsfw %ax, %ax + 0x44, 0x0f, 0xb7, 0xc8, //0x00002632 movzwl %ax, %r9d + 0x4d, 0x29, 0xd9, //0x00002636 subq %r11, %r9 + 0x49, 0x83, 0xf9, 0xff, //0x00002639 cmpq $-1, %r9 + 0x0f, 0x84, 0x50, 0x03, 0x00, 0x00, //0x0000263d je LBB9_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002643 .p2align 4, 0x90 + //0x00002650 LBB9_24 + 0x49, 0x8d, 0x49, 0x02, //0x00002650 leaq $2(%r9), %rcx + 0x49, 0x29, 0xcd, //0x00002654 subq %rcx, %r13 + 0x0f, 0x88, 0x6d, 0x04, 0x00, 0x00, //0x00002657 js LBB9_25 + 0x4d, 0x01, 0xcf, //0x0000265d addq %r9, %r15 + 0x49, 0x83, 0xc7, 0x02, //0x00002660 addq $2, %r15 + 0x4d, 0x85, 0xd2, //0x00002664 testq %r10, %r10 + 0x0f, 0x85, 0x03, 0x01, 0x00, 0x00, //0x00002667 jne LBB9_27 + //0x0000266d LBB9_38 + 0x4d, 0x01, 0xcc, //0x0000266d addq %r9, %r12 + 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00002670 movzbl $-1(%r15), %eax + 0x42, 0x8a, 0x04, 0x00, //0x00002675 movb (%rax,%r8), %al + 0x3c, 0xff, //0x00002679 cmpb $-1, %al + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x0000267b je LBB9_42 + 0x84, 0xc0, //0x00002681 testb %al, %al + 0x0f, 0x84, 0x5c, 0x04, 0x00, 0x00, //0x00002683 je LBB9_40 + 0x41, 0x88, 0x04, 0x24, //0x00002689 movb %al, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x0000268d addq $1, %r12 + 0x4d, 0x85, 0xed, //0x00002691 testq %r13, %r13 + 0x0f, 0x85, 0x46, 0xfe, 0xff, 0xff, //0x00002694 jne LBB9_4 + 0xe9, 0x3e, 0x04, 0x00, 0x00, //0x0000269a jmp LBB9_126 + 0x90, //0x0000269f .p2align 4, 0x90 + //0x000026a0 LBB9_42 + 0x49, 0x83, 0xfd, 0x03, //0x000026a0 cmpq $3, %r13 + 0x0f, 0x8e, 0x20, 0x04, 0x00, 0x00, //0x000026a4 jle LBB9_25 + 0x41, 0x8b, 0x1f, //0x000026aa movl (%r15), %ebx + 0x89, 0xd9, //0x000026ad movl %ebx, %ecx + 0xf7, 0xd1, //0x000026af notl %ecx + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x000026b1 leal $-808464432(%rbx), %eax + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x000026b7 andl $-2139062144, %ecx + 0x85, 0xc1, //0x000026bd testl %eax, %ecx + 0x0f, 0x85, 0xe9, 0x02, 0x00, 0x00, //0x000026bf jne LBB9_47 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x000026c5 leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x000026cb orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x000026cd testl $-2139062144, %eax + 0x0f, 0x85, 0xd6, 0x02, 0x00, 0x00, //0x000026d2 jne LBB9_47 + 0x89, 0xd8, //0x000026d8 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000026da andl $2139062143, %eax + 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x000026df movl $-1061109568, %r11d + 0x41, 0x29, 0xc3, //0x000026e5 subl %eax, %r11d + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x000026e8 leal $1179010630(%rax), %r9d + 0x41, 0x21, 0xcb, //0x000026ef andl %ecx, %r11d + 0x45, 0x85, 0xcb, //0x000026f2 testl %r9d, %r11d + 0x0f, 0x85, 0xb3, 0x02, 0x00, 0x00, //0x000026f5 jne LBB9_47 + 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x000026fb movl $-522133280, %r9d + 0x41, 0x29, 0xc1, //0x00002701 subl %eax, %r9d + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002704 addl $960051513, %eax + 0x44, 0x21, 0xc9, //0x00002709 andl %r9d, %ecx + 0x85, 0xc1, //0x0000270c testl %eax, %ecx + 0x0f, 0x85, 0x9a, 0x02, 0x00, 0x00, //0x0000270e jne LBB9_47 + 0x0f, 0xcb, //0x00002714 bswapl %ebx + 0x89, 0xd9, //0x00002716 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00002718 shrl $4, %ecx + 0xf7, 0xd1, //0x0000271b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x0000271d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00002723 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00002726 andl $252645135, %ebx + 0x01, 0xcb, //0x0000272c addl %ecx, %ebx + 0x89, 0xd9, //0x0000272e movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00002730 shrl $4, %ecx + 0x09, 0xd9, //0x00002733 orl %ebx, %ecx + 0x89, 0xc8, //0x00002735 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00002737 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x0000273a andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x0000273f movzbl %cl, %ebx + 0x09, 0xc3, //0x00002742 orl %eax, %ebx + 0x4d, 0x8d, 0x4f, 0x04, //0x00002744 leaq $4(%r15), %r9 + 0x49, 0x8d, 0x45, 0xfc, //0x00002748 leaq $-4(%r13), %rax + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x0000274c cmpl $128, %ebx + 0x0f, 0x82, 0x6b, 0x00, 0x00, 0x00, //0x00002752 jb LBB9_62 + 0xf6, 0x45, 0xa8, 0x02, //0x00002758 testb $2, $-88(%rbp) + 0x0f, 0x84, 0x7d, 0x00, 0x00, 0x00, //0x0000275c je LBB9_71 + 0x4d, 0x89, 0xcf, //0x00002762 movq %r9, %r15 + 0x41, 0x89, 0xde, //0x00002765 movl %ebx, %r14d + 0x49, 0x89, 0xc5, //0x00002768 movq %rax, %r13 + 0xe9, 0x60, 0xfb, 0xff, 0xff, //0x0000276b jmp LBB9_65 + //0x00002770 LBB9_27 + 0x45, 0x85, 0xed, //0x00002770 testl %r13d, %r13d + 0x0f, 0x84, 0x51, 0x03, 0x00, 0x00, //0x00002773 je LBB9_25 + 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00002779 cmpb $92, $-1(%r15) + 0x0f, 0x85, 0x7a, 0x03, 0x00, 0x00, //0x0000277e jne LBB9_29 + 0x41, 0x80, 0x3f, 0x5c, //0x00002784 cmpb $92, (%r15) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00002788 jne LBB9_37 + 0x41, 0x83, 0xfd, 0x01, //0x0000278e cmpl $1, %r13d + 0x0f, 0x8e, 0x32, 0x03, 0x00, 0x00, //0x00002792 jle LBB9_25 + 0x41, 0x8a, 0x4f, 0x01, //0x00002798 movb $1(%r15), %cl + 0x80, 0xf9, 0x22, //0x0000279c cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x0000279f je LBB9_36 + 0x80, 0xf9, 0x5c, //0x000027a5 cmpb $92, %cl + 0x0f, 0x85, 0x69, 0x03, 0x00, 0x00, //0x000027a8 jne LBB9_35 + //0x000027ae LBB9_36 + 0x49, 0x83, 0xc7, 0x01, //0x000027ae addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x000027b2 addq $-1, %r13 + //0x000027b6 LBB9_37 + 0x49, 0x83, 0xc7, 0x01, //0x000027b6 addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x000027ba addq $-1, %r13 + 0xe9, 0xaa, 0xfe, 0xff, 0xff, //0x000027be jmp LBB9_38 + //0x000027c3 LBB9_62 + 0x49, 0x89, 0xc5, //0x000027c3 movq %rax, %r13 + 0x4d, 0x89, 0xcf, //0x000027c6 movq %r9, %r15 + //0x000027c9 LBB9_119 + 0x41, 0x88, 0x1c, 0x24, //0x000027c9 movb %bl, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x000027cd addq $1, %r12 + 0x4d, 0x85, 0xed, //0x000027d1 testq %r13, %r13 + 0x0f, 0x85, 0x06, 0xfd, 0xff, 0xff, //0x000027d4 jne LBB9_4 + 0xe9, 0xfe, 0x02, 0x00, 0x00, //0x000027da jmp LBB9_126 + //0x000027df LBB9_71 + 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x000027df cmpl $2048, %ebx + 0x0f, 0x82, 0x5f, 0x00, 0x00, 0x00, //0x000027e5 jb LBB9_72 + 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x000027eb andl $16252928, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x000027f1 cmpl $14155776, %ecx + 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x000027f7 je LBB9_77 + 0x49, 0x89, 0xc5, //0x000027fd movq %rax, %r13 + 0x41, 0x89, 0xde, //0x00002800 movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002803 movq %r9, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002806 .p2align 4, 0x90 + //0x00002810 LBB9_76 + 0x44, 0x89, 0xf0, //0x00002810 movl %r14d, %eax + 0xc1, 0xe8, 0x0c, //0x00002813 shrl $12, %eax + 0x0c, 0xe0, //0x00002816 orb $-32, %al + 0x41, 0x88, 0x04, 0x24, //0x00002818 movb %al, (%r12) + 0x44, 0x89, 0xf0, //0x0000281c movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x0000281f shrl $6, %eax + 0x24, 0x3f, //0x00002822 andb $63, %al + 0x0c, 0x80, //0x00002824 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x01, //0x00002826 movb %al, $1(%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x0000282b andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x0000282f orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x02, //0x00002833 movb %r14b, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002838 addq $3, %r12 + 0x4d, 0x85, 0xed, //0x0000283c testq %r13, %r13 + 0x0f, 0x85, 0x9b, 0xfc, 0xff, 0xff, //0x0000283f jne LBB9_4 + 0xe9, 0x93, 0x02, 0x00, 0x00, //0x00002845 jmp LBB9_126 + //0x0000284a LBB9_72 + 0x49, 0x89, 0xc5, //0x0000284a movq %rax, %r13 + 0x41, 0x89, 0xde, //0x0000284d movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002850 movq %r9, %r15 + //0x00002853 LBB9_73 + 0x44, 0x89, 0xf0, //0x00002853 movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x00002856 shrl $6, %eax + 0x0c, 0xc0, //0x00002859 orb $-64, %al + 0x41, 0x88, 0x04, 0x24, //0x0000285b movb %al, (%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x0000285f andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x00002863 orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x01, //0x00002867 movb %r14b, $1(%r12) + 0x49, 0x83, 0xc4, 0x02, //0x0000286c addq $2, %r12 + 0x4d, 0x85, 0xed, //0x00002870 testq %r13, %r13 + 0x0f, 0x85, 0x67, 0xfc, 0xff, 0xff, //0x00002873 jne LBB9_4 + 0xe9, 0x5f, 0x02, 0x00, 0x00, //0x00002879 jmp LBB9_126 + //0x0000287e LBB9_77 + 0x48, 0x89, 0x45, 0xa0, //0x0000287e movq %rax, $-96(%rbp) + 0x4d, 0x89, 0xce, //0x00002882 movq %r9, %r14 + 0x48, 0x89, 0x75, 0xc0, //0x00002885 movq %rsi, $-64(%rbp) + 0x48, 0x89, 0x55, 0xb0, //0x00002889 movq %rdx, $-80(%rbp) + 0x48, 0x89, 0x7d, 0xc8, //0x0000288d movq %rdi, $-56(%rbp) + 0x4c, 0x89, 0x55, 0xb8, //0x00002891 movq %r10, $-72(%rbp) + 0x4d, 0x85, 0xd2, //0x00002895 testq %r10, %r10 + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00002898 jne LBB9_78 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000289e cmpq $6, $-96(%rbp) + 0x0f, 0x8c, 0xbf, 0x00, 0x00, 0x00, //0x000028a3 jl LBB9_82 + //0x000028a9 LBB9_84 + 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x000028a9 cmpl $56319, %ebx + 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x000028af ja LBB9_82 + 0x41, 0x80, 0x3e, 0x5c, //0x000028b5 cmpb $92, (%r14) + 0x0f, 0x85, 0xa9, 0x00, 0x00, 0x00, //0x000028b9 jne LBB9_82 + 0x41, 0x80, 0x7e, 0x01, 0x75, //0x000028bf cmpb $117, $1(%r14) + 0x0f, 0x85, 0x9e, 0x00, 0x00, 0x00, //0x000028c4 jne LBB9_82 + 0x49, 0x8d, 0x7e, 0x02, //0x000028ca leaq $2(%r14), %rdi + 0xc5, 0xf8, 0x77, //0x000028ce vzeroupper + 0xe8, 0x9a, 0x03, 0x00, 0x00, //0x000028d1 callq _unhex16_is + 0x84, 0xc0, //0x000028d6 testb %al, %al + 0x0f, 0x84, 0x68, 0x02, 0x00, 0x00, //0x000028d8 je LBB9_88 + 0x4d, 0x89, 0xf7, //0x000028de movq %r14, %r15 + 0x41, 0x8b, 0x4e, 0x02, //0x000028e1 movl $2(%r14), %ecx + 0x0f, 0xc9, //0x000028e5 bswapl %ecx + 0x89, 0xc8, //0x000028e7 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x000028e9 shrl $4, %eax + 0xf7, 0xd0, //0x000028ec notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000028ee andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000028f3 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x000028f6 andl $252645135, %ecx + 0x01, 0xc1, //0x000028fc addl %eax, %ecx + 0x89, 0xc8, //0x000028fe movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00002900 shrl $4, %eax + 0x09, 0xc8, //0x00002903 orl %ecx, %eax + 0x49, 0x83, 0xc7, 0x06, //0x00002905 addq $6, %r15 + 0x89, 0xc1, //0x00002909 movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000290b andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00002911 cmpl $14417920, %ecx + 0x0f, 0x85, 0x16, 0x03, 0x00, 0x00, //0x00002917 jne LBB9_120 + 0x89, 0xc1, //0x0000291d movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x0000291f shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x00002922 andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x00002928 movzbl %al, %eax + 0x09, 0xc8, //0x0000292b orl %ecx, %eax + 0x4c, 0x8b, 0x6d, 0xa0, //0x0000292d movq $-96(%rbp), %r13 + 0x49, 0x83, 0xc5, 0xfa, //0x00002931 addq $-6, %r13 + 0xe9, 0xfa, 0xfa, 0xff, 0xff, //0x00002935 jmp LBB9_91 + //0x0000293a LBB9_78 + 0x49, 0x83, 0xfd, 0x05, //0x0000293a cmpq $5, %r13 + 0x0f, 0x8c, 0xf8, 0x02, 0x00, 0x00, //0x0000293e jl LBB9_93 + 0x41, 0x80, 0x3e, 0x5c, //0x00002944 cmpb $92, (%r14) + 0x0f, 0x85, 0x08, 0x03, 0x00, 0x00, //0x00002948 jne LBB9_104 + 0x49, 0x83, 0xc5, 0xfb, //0x0000294e addq $-5, %r13 + 0x49, 0x83, 0xc7, 0x05, //0x00002952 addq $5, %r15 + 0x4c, 0x89, 0x6d, 0xa0, //0x00002956 movq %r13, $-96(%rbp) + 0x4d, 0x89, 0xfe, //0x0000295a movq %r15, %r14 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000295d cmpq $6, $-96(%rbp) + 0x0f, 0x8d, 0x41, 0xff, 0xff, 0xff, //0x00002962 jge LBB9_84 + //0x00002968 LBB9_82 + 0x4d, 0x89, 0xf7, //0x00002968 movq %r14, %r15 + //0x0000296b LBB9_83 + 0x48, 0x8b, 0x45, 0xb8, //0x0000296b movq $-72(%rbp), %rax + 0x48, 0x03, 0x45, 0xc8, //0x0000296f addq $-56(%rbp), %rax + 0x49, 0x29, 0xc7, //0x00002973 subq %rax, %r15 + //0x00002976 LBB9_121 + 0x49, 0x83, 0xc7, 0xfc, //0x00002976 addq $-4, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x0000297a movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x0000297e movq %r15, (%rax) + //0x00002981 LBB9_122 + 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x00002981 movq $-4, %r12 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00002988 jmp LBB9_123 + //0x0000298d LBB9_1 + 0x45, 0x31, 0xed, //0x0000298d xorl %r13d, %r13d + 0x49, 0x89, 0xd4, //0x00002990 movq %rdx, %r12 + //0x00002993 LBB9_2 + 0x4d, 0x01, 0xec, //0x00002993 addq %r13, %r12 + 0x49, 0x29, 0xd4, //0x00002996 subq %rdx, %r12 + //0x00002999 LBB9_123 + 0x4c, 0x89, 0xe0, //0x00002999 movq %r12, %rax + 0x48, 0x83, 0xc4, 0x38, //0x0000299c addq $56, %rsp + 0x5b, //0x000029a0 popq %rbx + 0x41, 0x5c, //0x000029a1 popq %r12 + 0x41, 0x5d, //0x000029a3 popq %r13 + 0x41, 0x5e, //0x000029a5 popq %r14 + 0x41, 0x5f, //0x000029a7 popq %r15 + 0x5d, //0x000029a9 popq %rbp + 0xc5, 0xf8, 0x77, //0x000029aa vzeroupper + 0xc3, //0x000029ad retq + //0x000029ae LBB9_47 + 0x4c, 0x89, 0xf8, //0x000029ae movq %r15, %rax + 0x48, 0x29, 0xf8, //0x000029b1 subq %rdi, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x000029b4 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x000029b8 movq %rax, (%rsi) + 0x41, 0x8a, 0x0f, //0x000029bb movb (%r15), %cl + 0x8d, 0x51, 0xd0, //0x000029be leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x000029c1 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000029c4 jb LBB9_50 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000029ca movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000029d1 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000029d4 cmpb $37, %cl + 0x0f, 0x87, 0xbc, 0xff, 0xff, 0xff, //0x000029d7 ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x000029dd movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000029e0 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000029ea btq %rcx, %rdx + 0x0f, 0x83, 0xa5, 0xff, 0xff, 0xff, //0x000029ee jae LBB9_123 + //0x000029f4 LBB9_50 + 0x48, 0x8d, 0x48, 0x01, //0x000029f4 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x000029f8 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x01, //0x000029fb movb $1(%r15), %cl + 0x8d, 0x51, 0xd0, //0x000029ff leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002a02 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002a05 jbe LBB9_53 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a0b movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002a12 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002a15 cmpb $37, %cl + 0x0f, 0x87, 0x7b, 0xff, 0xff, 0xff, //0x00002a18 ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002a1e movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002a21 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002a2b btq %rcx, %rdx + 0x0f, 0x83, 0x64, 0xff, 0xff, 0xff, //0x00002a2f jae LBB9_123 + //0x00002a35 LBB9_53 + 0x48, 0x8d, 0x48, 0x02, //0x00002a35 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002a39 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x00002a3c movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002a40 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002a43 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002a46 jb LBB9_56 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a4c movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002a53 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002a56 cmpb $37, %cl + 0x0f, 0x87, 0x3a, 0xff, 0xff, 0xff, //0x00002a59 ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002a5f movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002a62 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002a6c btq %rcx, %rdx + 0x0f, 0x83, 0x23, 0xff, 0xff, 0xff, //0x00002a70 jae LBB9_123 + //0x00002a76 LBB9_56 + 0x48, 0x8d, 0x48, 0x03, //0x00002a76 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002a7a movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x00002a7d movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002a81 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002a84 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002a87 jb LBB9_60 + //0x00002a8d LBB9_58 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002a8d movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002a94 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002a97 cmpb $37, %cl + 0x0f, 0x87, 0xf9, 0xfe, 0xff, 0xff, //0x00002a9a ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002aa0 movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002aa3 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002aad btq %rcx, %rdx + 0x0f, 0x83, 0xe2, 0xfe, 0xff, 0xff, //0x00002ab1 jae LBB9_123 + //0x00002ab7 LBB9_60 + 0x48, 0x83, 0xc0, 0x04, //0x00002ab7 addq $4, %rax + 0x48, 0x89, 0x06, //0x00002abb movq %rax, (%rsi) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002abe movq $-2, %r12 + 0xe9, 0xcf, 0xfe, 0xff, 0xff, //0x00002ac5 jmp LBB9_123 + //0x00002aca LBB9_25 + 0x48, 0x8b, 0x45, 0xd0, //0x00002aca movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x00002ace movq %rsi, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ad1 movq $-1, %r12 + 0xe9, 0xbc, 0xfe, 0xff, 0xff, //0x00002ad8 jmp LBB9_123 + //0x00002add LBB9_126 + 0x45, 0x31, 0xed, //0x00002add xorl %r13d, %r13d + 0xe9, 0xae, 0xfe, 0xff, 0xff, //0x00002ae0 jmp LBB9_2 + //0x00002ae5 LBB9_40 + 0x48, 0xf7, 0xd7, //0x00002ae5 notq %rdi + 0x49, 0x01, 0xff, //0x00002ae8 addq %rdi, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x00002aeb movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00002aef movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x00002af2 movq $-3, %r12 + 0xe9, 0x9b, 0xfe, 0xff, 0xff, //0x00002af9 jmp LBB9_123 + //0x00002afe LBB9_29 + 0x48, 0xf7, 0xd7, //0x00002afe notq %rdi + 0x49, 0x01, 0xff, //0x00002b01 addq %rdi, %r15 + //0x00002b04 LBB9_30 + 0x48, 0x8b, 0x45, 0xd0, //0x00002b04 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00002b08 movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002b0b movq $-2, %r12 + 0xe9, 0x82, 0xfe, 0xff, 0xff, //0x00002b12 jmp LBB9_123 + //0x00002b17 LBB9_35 + 0x49, 0x29, 0xff, //0x00002b17 subq %rdi, %r15 + 0x49, 0x83, 0xc7, 0x01, //0x00002b1a addq $1, %r15 + 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x00002b1e jmp LBB9_30 + //0x00002b23 LBB9_69 + 0xf6, 0x45, 0xa8, 0x02, //0x00002b23 testb $2, $-88(%rbp) + 0x0f, 0x84, 0x0f, 0x01, 0x00, 0x00, //0x00002b27 je LBB9_93 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00002b2d movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002b34 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002b3a addq $3, %r12 + 0x45, 0x31, 0xed, //0x00002b3e xorl %r13d, %r13d + 0xe9, 0x4d, 0xfe, 0xff, 0xff, //0x00002b41 jmp LBB9_2 + //0x00002b46 LBB9_88 + 0x4d, 0x89, 0xf7, //0x00002b46 movq %r14, %r15 + //0x00002b49 LBB9_106 + 0x4c, 0x89, 0xf8, //0x00002b49 movq %r15, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x00002b4c subq $-56(%rbp), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00002b50 addq $2, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x00002b54 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x00002b58 movq %rax, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x00002b5b movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002b5f leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002b62 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002b65 jb LBB9_109 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002b6b movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002b72 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002b75 cmpb $37, %cl + 0x0f, 0x87, 0x1b, 0xfe, 0xff, 0xff, //0x00002b78 ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002b7e movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002b81 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002b8b btq %rcx, %rdx + 0x0f, 0x83, 0x04, 0xfe, 0xff, 0xff, //0x00002b8f jae LBB9_123 + //0x00002b95 LBB9_109 + 0x48, 0x8d, 0x48, 0x01, //0x00002b95 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002b99 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x00002b9c movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002ba0 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002ba3 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002ba6 jbe LBB9_112 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002bac movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002bb3 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002bb6 cmpb $37, %cl + 0x0f, 0x87, 0xda, 0xfd, 0xff, 0xff, //0x00002bb9 ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002bbf movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002bc2 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002bcc btq %rcx, %rdx + 0x0f, 0x83, 0xc3, 0xfd, 0xff, 0xff, //0x00002bd0 jae LBB9_123 + //0x00002bd6 LBB9_112 + 0x48, 0x8d, 0x48, 0x02, //0x00002bd6 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002bda movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x04, //0x00002bdd movb $4(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002be1 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002be4 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002be7 jb LBB9_115 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x00002bed movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002bf4 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002bf7 cmpb $37, %cl + 0x0f, 0x87, 0x99, 0xfd, 0xff, 0xff, //0x00002bfa ja LBB9_123 + 0x0f, 0xb6, 0xc9, //0x00002c00 movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002c03 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00002c0d btq %rcx, %rdx + 0x0f, 0x83, 0x82, 0xfd, 0xff, 0xff, //0x00002c11 jae LBB9_123 + //0x00002c17 LBB9_115 + 0x48, 0x8d, 0x48, 0x03, //0x00002c17 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002c1b movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x05, //0x00002c1e movb $5(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002c22 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002c25 cmpb $10, %dl + 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002c28 jae LBB9_58 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x00002c2e jmp LBB9_60 + //0x00002c33 LBB9_120 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00002c33 subq $-56(%rbp), %r15 + 0xe9, 0x3a, 0xfd, 0xff, 0xff, //0x00002c37 jmp LBB9_121 + //0x00002c3c LBB9_93 + 0x48, 0x8b, 0x45, 0xd0, //0x00002c3c movq $-48(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00002c40 movq $-64(%rbp), %rcx + 0x48, 0x89, 0x08, //0x00002c44 movq %rcx, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002c47 movq $-1, %r12 + 0xe9, 0x46, 0xfd, 0xff, 0xff, //0x00002c4e jmp LBB9_123 + //0x00002c53 LBB9_103 + 0x4d, 0x89, 0xfe, //0x00002c53 movq %r15, %r14 + //0x00002c56 LBB9_104 + 0x4c, 0x2b, 0x75, 0xc8, //0x00002c56 subq $-56(%rbp), %r14 + 0x49, 0x83, 0xc6, 0xfc, //0x00002c5a addq $-4, %r14 + 0x48, 0x8b, 0x45, 0xd0, //0x00002c5e movq $-48(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00002c62 movq %r14, (%rax) + 0xe9, 0x17, 0xfd, 0xff, 0xff, //0x00002c65 jmp LBB9_122 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002c6a .p2align 4, 0x90 + //0x00002c70 _unhex16_is + 0x55, //0x00002c70 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002c71 movq %rsp, %rbp + 0x8b, 0x07, //0x00002c74 movl (%rdi), %eax + 0x89, 0xc1, //0x00002c76 movl %eax, %ecx + 0xf7, 0xd1, //0x00002c78 notl %ecx + 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x00002c7a leal $-808464432(%rax), %edx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00002c80 andl $-2139062144, %ecx + 0x85, 0xd1, //0x00002c86 testl %edx, %ecx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002c88 je LBB10_2 + 0x31, 0xc0, //0x00002c8e xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x00002c90 movzbl %al, %eax + 0x5d, //0x00002c93 popq %rbp + 0xc3, //0x00002c94 retq + //0x00002c95 LBB10_2 + 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x00002c95 leal $421075225(%rax), %edx + 0x09, 0xc2, //0x00002c9b orl %eax, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00002c9d testl $-2139062144, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002ca3 je LBB10_4 + 0x31, 0xc0, //0x00002ca9 xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x00002cab movzbl %al, %eax + 0x5d, //0x00002cae popq %rbp + 0xc3, //0x00002caf retq + //0x00002cb0 LBB10_4 + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00002cb0 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x00002cb5 movl $-1061109568, %edx + 0x29, 0xc2, //0x00002cba subl %eax, %edx + 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x00002cbc leal $1179010630(%rax), %esi + 0x21, 0xca, //0x00002cc2 andl %ecx, %edx + 0x85, 0xf2, //0x00002cc4 testl %esi, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002cc6 je LBB10_6 + 0x31, 0xc0, //0x00002ccc xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x00002cce movzbl %al, %eax + 0x5d, //0x00002cd1 popq %rbp + 0xc3, //0x00002cd2 retq + //0x00002cd3 LBB10_6 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x00002cd3 movl $-522133280, %edx + 0x29, 0xc2, //0x00002cd8 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00002cda addl $960051513, %eax + 0x21, 0xd1, //0x00002cdf andl %edx, %ecx + 0x85, 0xc1, //0x00002ce1 testl %eax, %ecx + 0x0f, 0x94, 0xc0, //0x00002ce3 sete %al + 0x0f, 0xb6, 0xc0, //0x00002ce6 movzbl %al, %eax + 0x5d, //0x00002ce9 popq %rbp + 0xc3, //0x00002cea retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00002ceb .p2align 5, 0x00 + //0x00002d00 LCPI11_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d00 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d10 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002d20 LCPI11_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002d20 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, //0x00002d30 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002d40 LCPI11_2 + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002d40 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002d50 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' + //0x00002d60 LCPI11_3 + 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002d60 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' + 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002d70 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' + //0x00002d80 .p2align 4, 0x00 + //0x00002d80 LCPI11_4 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x00002d80 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002d90 LCPI11_5 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002d90 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002da0 LCPI11_6 + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002da0 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' + //0x00002db0 LCPI11_7 + 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002db0 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' + //0x00002dc0 .p2align 4, 0x90 + //0x00002dc0 _html_escape + 0x55, //0x00002dc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002dc1 movq %rsp, %rbp + 0x41, 0x57, //0x00002dc4 pushq %r15 + 0x41, 0x56, //0x00002dc6 pushq %r14 + 0x41, 0x55, //0x00002dc8 pushq %r13 + 0x41, 0x54, //0x00002dca pushq %r12 + 0x53, //0x00002dcc pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x00002dcd subq $24, %rsp + 0x48, 0x89, 0x4d, 0xc0, //0x00002dd1 movq %rcx, $-64(%rbp) + 0x49, 0x89, 0xd7, //0x00002dd5 movq %rdx, %r15 + 0x48, 0x89, 0x55, 0xc8, //0x00002dd8 movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x00002ddc movq %rdi, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x00002de0 movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x00002de3 testq %rsi, %rsi + 0x0f, 0x8e, 0x8c, 0x07, 0x00, 0x00, //0x00002de6 jle LBB11_106 + 0x48, 0x8b, 0x45, 0xc0, //0x00002dec movq $-64(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x00002df0 movq (%rax), %r9 + 0xc5, 0xfd, 0x6f, 0x1d, 0x05, 0xff, 0xff, 0xff, //0x00002df3 vmovdqa $-251(%rip), %ymm3 /* LCPI11_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x1d, 0xff, 0xff, 0xff, //0x00002dfb vmovdqa $-227(%rip), %ymm4 /* LCPI11_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x35, 0xff, 0xff, 0xff, //0x00002e03 vmovdqa $-203(%rip), %ymm5 /* LCPI11_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x4d, 0xff, 0xff, 0xff, //0x00002e0b vmovdqa $-179(%rip), %ymm6 /* LCPI11_3+0(%rip) */ + 0x4c, 0x8d, 0x35, 0xb6, 0xed, 0x00, 0x00, //0x00002e13 leaq $60854(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x4c, 0x8b, 0x5d, 0xd0, //0x00002e1a movq $-48(%rbp), %r11 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00002e1e movq $-56(%rbp), %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e22 .p2align 4, 0x90 + //0x00002e30 LBB11_2 + 0x4d, 0x85, 0xc9, //0x00002e30 testq %r9, %r9 + 0x0f, 0x8e, 0x5e, 0x07, 0x00, 0x00, //0x00002e33 jle LBB11_3 + 0x48, 0x83, 0xfe, 0x20, //0x00002e39 cmpq $32, %rsi + 0x0f, 0x9d, 0xc1, //0x00002e3d setge %cl + 0x4c, 0x89, 0xc8, //0x00002e40 movq %r9, %rax + 0x4d, 0x89, 0xf8, //0x00002e43 movq %r15, %r8 + 0x49, 0x89, 0xf2, //0x00002e46 movq %rsi, %r10 + 0x4d, 0x89, 0xdc, //0x00002e49 movq %r11, %r12 + 0x0f, 0x8c, 0x7e, 0x00, 0x00, 0x00, //0x00002e4c jl LBB11_12 + 0x49, 0x83, 0xf9, 0x20, //0x00002e52 cmpq $32, %r9 + 0x0f, 0x8c, 0x74, 0x00, 0x00, 0x00, //0x00002e56 jl LBB11_12 + 0x45, 0x31, 0xc0, //0x00002e5c xorl %r8d, %r8d + 0x48, 0x89, 0xf3, //0x00002e5f movq %rsi, %rbx + 0x4c, 0x89, 0xcf, //0x00002e62 movq %r9, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e65 .p2align 4, 0x90 + //0x00002e70 LBB11_7 + 0xc4, 0x81, 0x7e, 0x6f, 0x04, 0x03, //0x00002e70 vmovdqu (%r11,%r8), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x00002e76 vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x00002e7a vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x00002e7e vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xdb, 0xd5, //0x00002e82 vpand %ymm5, %ymm0, %ymm2 + 0xc5, 0xed, 0x74, 0xd6, //0x00002e86 vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc5, 0xf5, 0xeb, 0xca, //0x00002e8a vpor %ymm2, %ymm1, %ymm1 + 0xc4, 0x81, 0x7e, 0x7f, 0x04, 0x07, //0x00002e8e vmovdqu %ymm0, (%r15,%r8) + 0xc5, 0xfd, 0xd7, 0xc1, //0x00002e94 vpmovmskb %ymm1, %eax + 0x85, 0xc0, //0x00002e98 testl %eax, %eax + 0x0f, 0x85, 0x90, 0x01, 0x00, 0x00, //0x00002e9a jne LBB11_8 + 0x4c, 0x8d, 0x53, 0xe0, //0x00002ea0 leaq $-32(%rbx), %r10 + 0x48, 0x8d, 0x47, 0xe0, //0x00002ea4 leaq $-32(%rdi), %rax + 0x49, 0x83, 0xc0, 0x20, //0x00002ea8 addq $32, %r8 + 0x48, 0x83, 0xfb, 0x40, //0x00002eac cmpq $64, %rbx + 0x0f, 0x9d, 0xc1, //0x00002eb0 setge %cl + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00002eb3 jl LBB11_11 + 0x4c, 0x89, 0xd3, //0x00002eb9 movq %r10, %rbx + 0x48, 0x83, 0xff, 0x3f, //0x00002ebc cmpq $63, %rdi + 0x48, 0x89, 0xc7, //0x00002ec0 movq %rax, %rdi + 0x0f, 0x8f, 0xa7, 0xff, 0xff, 0xff, //0x00002ec3 jg LBB11_7 + //0x00002ec9 LBB11_11 + 0x4f, 0x8d, 0x24, 0x03, //0x00002ec9 leaq (%r11,%r8), %r12 + 0x4d, 0x01, 0xf8, //0x00002ecd addq %r15, %r8 + //0x00002ed0 LBB11_12 + 0x84, 0xc9, //0x00002ed0 testb %cl, %cl + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x00002ed2 je LBB11_38 + 0xc4, 0xc1, 0x7e, 0x6f, 0x04, 0x24, //0x00002ed8 vmovdqu (%r12), %ymm0 + 0xc5, 0xfd, 0x74, 0xcb, //0x00002ede vpcmpeqb %ymm3, %ymm0, %ymm1 + 0xc5, 0xfd, 0x74, 0xd4, //0x00002ee2 vpcmpeqb %ymm4, %ymm0, %ymm2 + 0xc5, 0xed, 0xeb, 0xc9, //0x00002ee6 vpor %ymm1, %ymm2, %ymm1 + 0xc5, 0xfd, 0xdb, 0xc5, //0x00002eea vpand %ymm5, %ymm0, %ymm0 + 0xc5, 0xfd, 0x74, 0xc6, //0x00002eee vpcmpeqb %ymm6, %ymm0, %ymm0 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00002ef2 vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00002ef6 vpmovmskb %ymm0, %ecx + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00002efa movabsq $4294967296, %rdx + 0x48, 0x09, 0xd1, //0x00002f04 orq %rdx, %rcx + 0x4c, 0x0f, 0xbc, 0xe9, //0x00002f07 bsfq %rcx, %r13 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00002f0b vmovdqu (%r12), %xmm0 + 0xc4, 0xe3, 0xf9, 0x16, 0xc1, 0x01, //0x00002f11 vpextrq $1, %xmm0, %rcx + 0xc4, 0xe1, 0xf9, 0x7e, 0xc7, //0x00002f17 vmovq %xmm0, %rdi + 0x49, 0x39, 0xc5, //0x00002f1c cmpq %rax, %r13 + 0x0f, 0x8e, 0x17, 0x01, 0x00, 0x00, //0x00002f1f jle LBB11_14 + 0x48, 0x83, 0xf8, 0x10, //0x00002f25 cmpq $16, %rax + 0x0f, 0x82, 0x4a, 0x01, 0x00, 0x00, //0x00002f29 jb LBB11_27 + 0x49, 0x89, 0x38, //0x00002f2f movq %rdi, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00002f32 movq %rcx, $8(%r8) + 0x4d, 0x8d, 0x54, 0x24, 0x10, //0x00002f36 leaq $16(%r12), %r10 + 0x49, 0x83, 0xc0, 0x10, //0x00002f3b addq $16, %r8 + 0x4c, 0x8d, 0x70, 0xf0, //0x00002f3f leaq $-16(%rax), %r14 + 0x49, 0x83, 0xfe, 0x08, //0x00002f43 cmpq $8, %r14 + 0x0f, 0x83, 0x3c, 0x01, 0x00, 0x00, //0x00002f47 jae LBB11_30 + 0xe9, 0x49, 0x01, 0x00, 0x00, //0x00002f4d jmp LBB11_31 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f52 .p2align 4, 0x90 + //0x00002f60 LBB11_38 + 0xc5, 0xf8, 0x77, //0x00002f60 vzeroupper + 0x49, 0x83, 0xfa, 0x10, //0x00002f63 cmpq $16, %r10 + 0x0f, 0x9d, 0xc1, //0x00002f67 setge %cl + 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00002f6a jl LBB11_39 + 0x48, 0x83, 0xf8, 0x10, //0x00002f70 cmpq $16, %rax + 0xc5, 0xf9, 0x6f, 0x3d, 0x04, 0xfe, 0xff, 0xff, //0x00002f74 vmovdqa $-508(%rip), %xmm7 /* LCPI11_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0x0c, 0xfe, 0xff, 0xff, //0x00002f7c vmovdqa $-500(%rip), %xmm8 /* LCPI11_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x14, 0xfe, 0xff, 0xff, //0x00002f84 vmovdqa $-492(%rip), %xmm9 /* LCPI11_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x1c, 0xfe, 0xff, 0xff, //0x00002f8c vmovdqa $-484(%rip), %xmm10 /* LCPI11_7+0(%rip) */ + 0x0f, 0x8c, 0xeb, 0x01, 0x00, 0x00, //0x00002f94 jl LBB11_41 + 0x4c, 0x89, 0xdf, //0x00002f9a movq %r11, %rdi + 0x4c, 0x29, 0xe7, //0x00002f9d subq %r12, %rdi + 0xc5, 0xfd, 0x6f, 0x1d, 0x58, 0xfd, 0xff, 0xff, //0x00002fa0 vmovdqa $-680(%rip), %ymm3 /* LCPI11_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x70, 0xfd, 0xff, 0xff, //0x00002fa8 vmovdqa $-656(%rip), %ymm4 /* LCPI11_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x88, 0xfd, 0xff, 0xff, //0x00002fb0 vmovdqa $-632(%rip), %ymm5 /* LCPI11_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xa0, 0xfd, 0xff, 0xff, //0x00002fb8 vmovdqa $-608(%rip), %ymm6 /* LCPI11_3+0(%rip) */ + //0x00002fc0 .p2align 4, 0x90 + //0x00002fc0 LBB11_43 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x00002fc0 vmovdqu (%r12), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00002fc6 vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00002fca vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x00002fce vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xdb, 0xd0, //0x00002fd2 vpand %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00002fd6 vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00002fda vpor %xmm2, %xmm1, %xmm1 + 0xc4, 0xc1, 0x7a, 0x7f, 0x00, //0x00002fde vmovdqu %xmm0, (%r8) + 0xc5, 0xf9, 0xd7, 0xc9, //0x00002fe3 vpmovmskb %xmm1, %ecx + 0x85, 0xc9, //0x00002fe7 testl %ecx, %ecx + 0x0f, 0x85, 0x7a, 0x00, 0x00, 0x00, //0x00002fe9 jne LBB11_44 + 0x49, 0x83, 0xc4, 0x10, //0x00002fef addq $16, %r12 + 0x49, 0x83, 0xc0, 0x10, //0x00002ff3 addq $16, %r8 + 0x4d, 0x8d, 0x72, 0xf0, //0x00002ff7 leaq $-16(%r10), %r14 + 0x4c, 0x8d, 0x68, 0xf0, //0x00002ffb leaq $-16(%rax), %r13 + 0x49, 0x83, 0xfa, 0x20, //0x00002fff cmpq $32, %r10 + 0x0f, 0x9d, 0xc1, //0x00003003 setge %cl + 0x0f, 0x8c, 0x09, 0x01, 0x00, 0x00, //0x00003006 jl LBB11_47 + 0x48, 0x83, 0xc7, 0xf0, //0x0000300c addq $-16, %rdi + 0x4d, 0x89, 0xf2, //0x00003010 movq %r14, %r10 + 0x48, 0x83, 0xf8, 0x1f, //0x00003013 cmpq $31, %rax + 0x4c, 0x89, 0xe8, //0x00003017 movq %r13, %rax + 0x0f, 0x8f, 0xa0, 0xff, 0xff, 0xff, //0x0000301a jg LBB11_43 + 0xe9, 0xf0, 0x00, 0x00, 0x00, //0x00003020 jmp LBB11_47 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003025 .p2align 4, 0x90 + //0x00003030 LBB11_8 + 0x44, 0x0f, 0xbc, 0xe0, //0x00003030 bsfl %eax, %r12d + 0x4d, 0x01, 0xc4, //0x00003034 addq %r8, %r12 + 0xe9, 0xeb, 0x03, 0x00, 0x00, //0x00003037 jmp LBB11_83 + //0x0000303c LBB11_14 + 0x41, 0x83, 0xfd, 0x10, //0x0000303c cmpl $16, %r13d + 0x0f, 0x82, 0xfb, 0x01, 0x00, 0x00, //0x00003040 jb LBB11_15 + 0x49, 0x89, 0x38, //0x00003046 movq %rdi, (%r8) + 0x49, 0x89, 0x48, 0x08, //0x00003049 movq %rcx, $8(%r8) + 0x4d, 0x8d, 0x54, 0x24, 0x10, //0x0000304d leaq $16(%r12), %r10 + 0x49, 0x83, 0xc0, 0x10, //0x00003052 addq $16, %r8 + 0x49, 0x8d, 0x45, 0xf0, //0x00003056 leaq $-16(%r13), %rax + 0x48, 0x83, 0xf8, 0x08, //0x0000305a cmpq $8, %rax + 0x0f, 0x83, 0xed, 0x01, 0x00, 0x00, //0x0000305e jae LBB11_18 + 0xe9, 0xfa, 0x01, 0x00, 0x00, //0x00003064 jmp LBB11_19 + //0x00003069 LBB11_44 + 0x66, 0x0f, 0xbc, 0xc1, //0x00003069 bsfw %cx, %ax + 0x44, 0x0f, 0xb7, 0xe0, //0x0000306d movzwl %ax, %r12d + 0x49, 0x29, 0xfc, //0x00003071 subq %rdi, %r12 + 0xe9, 0xa7, 0x03, 0x00, 0x00, //0x00003074 jmp LBB11_82 + //0x00003079 LBB11_27 + 0x4d, 0x89, 0xe2, //0x00003079 movq %r12, %r10 + 0x49, 0x89, 0xc6, //0x0000307c movq %rax, %r14 + 0x49, 0x83, 0xfe, 0x08, //0x0000307f cmpq $8, %r14 + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00003083 jb LBB11_31 + //0x00003089 LBB11_30 + 0x49, 0x8b, 0x0a, //0x00003089 movq (%r10), %rcx + 0x49, 0x89, 0x08, //0x0000308c movq %rcx, (%r8) + 0x49, 0x83, 0xc2, 0x08, //0x0000308f addq $8, %r10 + 0x49, 0x83, 0xc0, 0x08, //0x00003093 addq $8, %r8 + 0x49, 0x83, 0xc6, 0xf8, //0x00003097 addq $-8, %r14 + //0x0000309b LBB11_31 + 0x49, 0x83, 0xfe, 0x04, //0x0000309b cmpq $4, %r14 + 0x0f, 0x8d, 0xec, 0x01, 0x00, 0x00, //0x0000309f jge LBB11_32 + 0x49, 0x83, 0xfe, 0x02, //0x000030a5 cmpq $2, %r14 + 0x0f, 0x83, 0xfe, 0x01, 0x00, 0x00, //0x000030a9 jae LBB11_34 + //0x000030af LBB11_35 + 0x4d, 0x85, 0xf6, //0x000030af testq %r14, %r14 + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000030b2 je LBB11_37 + //0x000030b8 LBB11_36 + 0x41, 0x8a, 0x0a, //0x000030b8 movb (%r10), %cl + 0x41, 0x88, 0x08, //0x000030bb movb %cl, (%r8) + //0x000030be LBB11_37 + 0x4c, 0x01, 0xe0, //0x000030be addq %r12, %rax + 0x48, 0xf7, 0xd0, //0x000030c1 notq %rax + 0x4c, 0x01, 0xd8, //0x000030c4 addq %r11, %rax + 0x49, 0x89, 0xc4, //0x000030c7 movq %rax, %r12 + 0xe9, 0x51, 0x03, 0x00, 0x00, //0x000030ca jmp LBB11_82 + //0x000030cf LBB11_39 + 0x49, 0x89, 0xc5, //0x000030cf movq %rax, %r13 + 0x4d, 0x89, 0xd6, //0x000030d2 movq %r10, %r14 + 0xc5, 0xfd, 0x6f, 0x1d, 0x23, 0xfc, 0xff, 0xff, //0x000030d5 vmovdqa $-989(%rip), %ymm3 /* LCPI11_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x3b, 0xfc, 0xff, 0xff, //0x000030dd vmovdqa $-965(%rip), %ymm4 /* LCPI11_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x53, 0xfc, 0xff, 0xff, //0x000030e5 vmovdqa $-941(%rip), %ymm5 /* LCPI11_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x6b, 0xfc, 0xff, 0xff, //0x000030ed vmovdqa $-917(%rip), %ymm6 /* LCPI11_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x3d, 0x83, 0xfc, 0xff, 0xff, //0x000030f5 vmovdqa $-893(%rip), %xmm7 /* LCPI11_4+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x05, 0x8b, 0xfc, 0xff, 0xff, //0x000030fd vmovdqa $-885(%rip), %xmm8 /* LCPI11_5+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0x93, 0xfc, 0xff, 0xff, //0x00003105 vmovdqa $-877(%rip), %xmm9 /* LCPI11_6+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0x9b, 0xfc, 0xff, 0xff, //0x0000310d vmovdqa $-869(%rip), %xmm10 /* LCPI11_7+0(%rip) */ + //0x00003115 LBB11_47 + 0x84, 0xc9, //0x00003115 testb %cl, %cl + 0x0f, 0x84, 0x96, 0x00, 0x00, 0x00, //0x00003117 je LBB11_48 + //0x0000311d LBB11_58 + 0xc4, 0xc1, 0x7a, 0x6f, 0x04, 0x24, //0x0000311d vmovdqu (%r12), %xmm0 + 0xc5, 0xf9, 0x74, 0xcf, //0x00003123 vpcmpeqb %xmm7, %xmm0, %xmm1 + 0xc5, 0xb9, 0x74, 0xd0, //0x00003127 vpcmpeqb %xmm0, %xmm8, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000312b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xb1, 0xdb, 0xd0, //0x0000312f vpand %xmm0, %xmm9, %xmm2 + 0xc5, 0xa9, 0x74, 0xd2, //0x00003133 vpcmpeqb %xmm2, %xmm10, %xmm2 + 0xc5, 0xf1, 0xeb, 0xca, //0x00003137 vpor %xmm2, %xmm1, %xmm1 + 0xc5, 0xf9, 0xd7, 0xc1, //0x0000313b vpmovmskb %xmm1, %eax + 0x0d, 0x00, 0x00, 0x01, 0x00, //0x0000313f orl $65536, %eax + 0x0f, 0xbc, 0xc0, //0x00003144 bsfl %eax, %eax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00003147 vmovq %xmm0, %rcx + 0x49, 0x39, 0xc5, //0x0000314c cmpq %rax, %r13 + 0x0f, 0x8d, 0xb8, 0x01, 0x00, 0x00, //0x0000314f jge LBB11_59 + 0x49, 0x83, 0xfd, 0x08, //0x00003155 cmpq $8, %r13 + 0x4c, 0x8d, 0x35, 0x70, 0xea, 0x00, 0x00, //0x00003159 leaq $60016(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x0f, 0x82, 0xe1, 0x01, 0x00, 0x00, //0x00003160 jb LBB11_70 + 0x49, 0x89, 0x08, //0x00003166 movq %rcx, (%r8) + 0x49, 0x8d, 0x44, 0x24, 0x08, //0x00003169 leaq $8(%r12), %rax + 0x49, 0x83, 0xc0, 0x08, //0x0000316e addq $8, %r8 + 0x49, 0x8d, 0x7d, 0xf8, //0x00003172 leaq $-8(%r13), %rdi + 0x48, 0x83, 0xff, 0x04, //0x00003176 cmpq $4, %rdi + 0x0f, 0x8d, 0xd7, 0x01, 0x00, 0x00, //0x0000317a jge LBB11_73 + 0xe9, 0xe3, 0x01, 0x00, 0x00, //0x00003180 jmp LBB11_74 + //0x00003185 LBB11_41 + 0x49, 0x89, 0xc5, //0x00003185 movq %rax, %r13 + 0x4d, 0x89, 0xd6, //0x00003188 movq %r10, %r14 + 0xc5, 0xfd, 0x6f, 0x1d, 0x6d, 0xfb, 0xff, 0xff, //0x0000318b vmovdqa $-1171(%rip), %ymm3 /* LCPI11_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x85, 0xfb, 0xff, 0xff, //0x00003193 vmovdqa $-1147(%rip), %ymm4 /* LCPI11_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x9d, 0xfb, 0xff, 0xff, //0x0000319b vmovdqa $-1123(%rip), %ymm5 /* LCPI11_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xb5, 0xfb, 0xff, 0xff, //0x000031a3 vmovdqa $-1099(%rip), %ymm6 /* LCPI11_3+0(%rip) */ + 0x84, 0xc9, //0x000031ab testb %cl, %cl + 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x000031ad jne LBB11_58 + //0x000031b3 LBB11_48 + 0x4d, 0x85, 0xf6, //0x000031b3 testq %r14, %r14 + 0x0f, 0x8e, 0x71, 0x00, 0x00, 0x00, //0x000031b6 jle LBB11_56 + 0x4d, 0x85, 0xed, //0x000031bc testq %r13, %r13 + 0x0f, 0x8e, 0x68, 0x00, 0x00, 0x00, //0x000031bf jle LBB11_56 + 0x31, 0xc9, //0x000031c5 xorl %ecx, %ecx + 0x31, 0xc0, //0x000031c7 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031c9 .p2align 4, 0x90 + //0x000031d0 LBB11_51 + 0x41, 0x0f, 0xb6, 0x3c, 0x0c, //0x000031d0 movzbl (%r12,%rcx), %edi + 0x48, 0x83, 0xff, 0x3e, //0x000031d5 cmpq $62, %rdi + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000031d9 ja LBB11_52 + 0x48, 0xba, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000031df movabsq $5764607797912141824, %rdx + 0x48, 0x0f, 0xa3, 0xfa, //0x000031e9 btq %rdi, %rdx + 0x0f, 0x82, 0x49, 0x01, 0x00, 0x00, //0x000031ed jb LBB11_80 + //0x000031f3 LBB11_52 + 0x40, 0x80, 0xff, 0xe2, //0x000031f3 cmpb $-30, %dil + 0x0f, 0x84, 0x3f, 0x01, 0x00, 0x00, //0x000031f7 je LBB11_80 + 0x49, 0x8d, 0x14, 0x06, //0x000031fd leaq (%r14,%rax), %rdx + 0x41, 0x88, 0x3c, 0x08, //0x00003201 movb %dil, (%r8,%rcx) + 0x48, 0x8d, 0x78, 0xff, //0x00003205 leaq $-1(%rax), %rdi + 0x48, 0x83, 0xfa, 0x02, //0x00003209 cmpq $2, %rdx + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000320d jl LBB11_55 + 0x4c, 0x01, 0xe8, //0x00003213 addq %r13, %rax + 0x48, 0x83, 0xc1, 0x01, //0x00003216 addq $1, %rcx + 0x48, 0x83, 0xf8, 0x01, //0x0000321a cmpq $1, %rax + 0x48, 0x89, 0xf8, //0x0000321e movq %rdi, %rax + 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00003221 jg LBB11_51 + //0x00003227 LBB11_55 + 0x49, 0x29, 0xfc, //0x00003227 subq %rdi, %r12 + 0x49, 0x01, 0xfe, //0x0000322a addq %rdi, %r14 + //0x0000322d LBB11_56 + 0x4d, 0x85, 0xf6, //0x0000322d testq %r14, %r14 + 0x0f, 0x84, 0xe4, 0x01, 0x00, 0x00, //0x00003230 je LBB11_57 + 0x49, 0xf7, 0xd4, //0x00003236 notq %r12 + 0x4d, 0x01, 0xdc, //0x00003239 addq %r11, %r12 + 0xe9, 0xdf, 0x01, 0x00, 0x00, //0x0000323c jmp LBB11_82 + //0x00003241 LBB11_15 + 0x4d, 0x89, 0xe2, //0x00003241 movq %r12, %r10 + 0x4c, 0x89, 0xe8, //0x00003244 movq %r13, %rax + 0x48, 0x83, 0xf8, 0x08, //0x00003247 cmpq $8, %rax + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x0000324b jb LBB11_19 + //0x00003251 LBB11_18 + 0x49, 0x8b, 0x0a, //0x00003251 movq (%r10), %rcx + 0x49, 0x89, 0x08, //0x00003254 movq %rcx, (%r8) + 0x49, 0x83, 0xc2, 0x08, //0x00003257 addq $8, %r10 + 0x49, 0x83, 0xc0, 0x08, //0x0000325b addq $8, %r8 + 0x48, 0x83, 0xc0, 0xf8, //0x0000325f addq $-8, %rax + //0x00003263 LBB11_19 + 0x48, 0x83, 0xf8, 0x04, //0x00003263 cmpq $4, %rax + 0x0f, 0x8d, 0x62, 0x00, 0x00, 0x00, //0x00003267 jge LBB11_20 + 0x48, 0x83, 0xf8, 0x02, //0x0000326d cmpq $2, %rax + 0x0f, 0x83, 0x74, 0x00, 0x00, 0x00, //0x00003271 jae LBB11_22 + //0x00003277 LBB11_23 + 0x48, 0x85, 0xc0, //0x00003277 testq %rax, %rax + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000327a je LBB11_25 + //0x00003280 LBB11_24 + 0x41, 0x8a, 0x02, //0x00003280 movb (%r10), %al + 0x41, 0x88, 0x00, //0x00003283 movb %al, (%r8) + //0x00003286 LBB11_25 + 0x4d, 0x29, 0xdc, //0x00003286 subq %r11, %r12 + 0x4d, 0x01, 0xec, //0x00003289 addq %r13, %r12 + 0xe9, 0x96, 0x01, 0x00, 0x00, //0x0000328c jmp LBB11_83 + //0x00003291 LBB11_32 + 0x41, 0x8b, 0x0a, //0x00003291 movl (%r10), %ecx + 0x41, 0x89, 0x08, //0x00003294 movl %ecx, (%r8) + 0x49, 0x83, 0xc2, 0x04, //0x00003297 addq $4, %r10 + 0x49, 0x83, 0xc0, 0x04, //0x0000329b addq $4, %r8 + 0x49, 0x83, 0xc6, 0xfc, //0x0000329f addq $-4, %r14 + 0x49, 0x83, 0xfe, 0x02, //0x000032a3 cmpq $2, %r14 + 0x0f, 0x82, 0x02, 0xfe, 0xff, 0xff, //0x000032a7 jb LBB11_35 + //0x000032ad LBB11_34 + 0x41, 0x0f, 0xb7, 0x0a, //0x000032ad movzwl (%r10), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000032b1 movw %cx, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x000032b5 addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x000032b9 addq $2, %r8 + 0x49, 0x83, 0xc6, 0xfe, //0x000032bd addq $-2, %r14 + 0x4d, 0x85, 0xf6, //0x000032c1 testq %r14, %r14 + 0x0f, 0x85, 0xee, 0xfd, 0xff, 0xff, //0x000032c4 jne LBB11_36 + 0xe9, 0xef, 0xfd, 0xff, 0xff, //0x000032ca jmp LBB11_37 + //0x000032cf LBB11_20 + 0x41, 0x8b, 0x0a, //0x000032cf movl (%r10), %ecx + 0x41, 0x89, 0x08, //0x000032d2 movl %ecx, (%r8) + 0x49, 0x83, 0xc2, 0x04, //0x000032d5 addq $4, %r10 + 0x49, 0x83, 0xc0, 0x04, //0x000032d9 addq $4, %r8 + 0x48, 0x83, 0xc0, 0xfc, //0x000032dd addq $-4, %rax + 0x48, 0x83, 0xf8, 0x02, //0x000032e1 cmpq $2, %rax + 0x0f, 0x82, 0x8c, 0xff, 0xff, 0xff, //0x000032e5 jb LBB11_23 + //0x000032eb LBB11_22 + 0x41, 0x0f, 0xb7, 0x0a, //0x000032eb movzwl (%r10), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000032ef movw %cx, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x000032f3 addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x000032f7 addq $2, %r8 + 0x48, 0x83, 0xc0, 0xfe, //0x000032fb addq $-2, %rax + 0x48, 0x85, 0xc0, //0x000032ff testq %rax, %rax + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00003302 jne LBB11_24 + 0xe9, 0x79, 0xff, 0xff, 0xff, //0x00003308 jmp LBB11_25 + //0x0000330d LBB11_59 + 0x83, 0xf8, 0x08, //0x0000330d cmpl $8, %eax + 0x4c, 0x8d, 0x35, 0xb9, 0xe8, 0x00, 0x00, //0x00003310 leaq $59577(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + 0x0f, 0x82, 0x74, 0x00, 0x00, 0x00, //0x00003317 jb LBB11_60 + 0x49, 0x89, 0x08, //0x0000331d movq %rcx, (%r8) + 0x4d, 0x8d, 0x54, 0x24, 0x08, //0x00003320 leaq $8(%r12), %r10 + 0x49, 0x83, 0xc0, 0x08, //0x00003325 addq $8, %r8 + 0x48, 0x8d, 0x78, 0xf8, //0x00003329 leaq $-8(%rax), %rdi + 0x48, 0x83, 0xff, 0x04, //0x0000332d cmpq $4, %rdi + 0x0f, 0x8d, 0x6a, 0x00, 0x00, 0x00, //0x00003331 jge LBB11_63 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00003337 jmp LBB11_64 + //0x0000333c LBB11_80 + 0x4d, 0x29, 0xdc, //0x0000333c subq %r11, %r12 + 0x49, 0x29, 0xc4, //0x0000333f subq %rax, %r12 + 0xe9, 0xd9, 0x00, 0x00, 0x00, //0x00003342 jmp LBB11_82 + //0x00003347 LBB11_70 + 0x4c, 0x89, 0xe0, //0x00003347 movq %r12, %rax + 0x4c, 0x89, 0xef, //0x0000334a movq %r13, %rdi + 0x48, 0x83, 0xff, 0x04, //0x0000334d cmpq $4, %rdi + 0x0f, 0x8c, 0x11, 0x00, 0x00, 0x00, //0x00003351 jl LBB11_74 + //0x00003357 LBB11_73 + 0x8b, 0x08, //0x00003357 movl (%rax), %ecx + 0x41, 0x89, 0x08, //0x00003359 movl %ecx, (%r8) + 0x48, 0x83, 0xc0, 0x04, //0x0000335c addq $4, %rax + 0x49, 0x83, 0xc0, 0x04, //0x00003360 addq $4, %r8 + 0x48, 0x83, 0xc7, 0xfc, //0x00003364 addq $-4, %rdi + //0x00003368 LBB11_74 + 0x48, 0x83, 0xff, 0x02, //0x00003368 cmpq $2, %rdi + 0x0f, 0x83, 0x65, 0x00, 0x00, 0x00, //0x0000336c jae LBB11_75 + 0x48, 0x85, 0xff, //0x00003372 testq %rdi, %rdi + 0x0f, 0x84, 0x05, 0x00, 0x00, 0x00, //0x00003375 je LBB11_78 + //0x0000337b LBB11_77 + 0x8a, 0x00, //0x0000337b movb (%rax), %al + 0x41, 0x88, 0x00, //0x0000337d movb %al, (%r8) + //0x00003380 LBB11_78 + 0x4d, 0x01, 0xe5, //0x00003380 addq %r12, %r13 + 0x49, 0xf7, 0xd5, //0x00003383 notq %r13 + 0x4d, 0x01, 0xdd, //0x00003386 addq %r11, %r13 + 0x4d, 0x89, 0xec, //0x00003389 movq %r13, %r12 + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x0000338c jmp LBB11_83 + //0x00003391 LBB11_60 + 0x4d, 0x89, 0xe2, //0x00003391 movq %r12, %r10 + 0x48, 0x89, 0xc7, //0x00003394 movq %rax, %rdi + 0x48, 0x83, 0xff, 0x04, //0x00003397 cmpq $4, %rdi + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x0000339b jl LBB11_64 + //0x000033a1 LBB11_63 + 0x41, 0x8b, 0x0a, //0x000033a1 movl (%r10), %ecx + 0x41, 0x89, 0x08, //0x000033a4 movl %ecx, (%r8) + 0x49, 0x83, 0xc2, 0x04, //0x000033a7 addq $4, %r10 + 0x49, 0x83, 0xc0, 0x04, //0x000033ab addq $4, %r8 + 0x48, 0x83, 0xc7, 0xfc, //0x000033af addq $-4, %rdi + //0x000033b3 LBB11_64 + 0x48, 0x83, 0xff, 0x02, //0x000033b3 cmpq $2, %rdi + 0x0f, 0x83, 0x3b, 0x00, 0x00, 0x00, //0x000033b7 jae LBB11_65 + 0x48, 0x85, 0xff, //0x000033bd testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000033c0 je LBB11_68 + //0x000033c6 LBB11_67 + 0x41, 0x8a, 0x0a, //0x000033c6 movb (%r10), %cl + 0x41, 0x88, 0x08, //0x000033c9 movb %cl, (%r8) + //0x000033cc LBB11_68 + 0x4d, 0x29, 0xdc, //0x000033cc subq %r11, %r12 + 0x49, 0x01, 0xc4, //0x000033cf addq %rax, %r12 + 0xe9, 0x50, 0x00, 0x00, 0x00, //0x000033d2 jmp LBB11_83 + //0x000033d7 LBB11_75 + 0x0f, 0xb7, 0x08, //0x000033d7 movzwl (%rax), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000033da movw %cx, (%r8) + 0x48, 0x83, 0xc0, 0x02, //0x000033de addq $2, %rax + 0x49, 0x83, 0xc0, 0x02, //0x000033e2 addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x000033e6 addq $-2, %rdi + 0x48, 0x85, 0xff, //0x000033ea testq %rdi, %rdi + 0x0f, 0x85, 0x88, 0xff, 0xff, 0xff, //0x000033ed jne LBB11_77 + 0xe9, 0x88, 0xff, 0xff, 0xff, //0x000033f3 jmp LBB11_78 + //0x000033f8 LBB11_65 + 0x41, 0x0f, 0xb7, 0x0a, //0x000033f8 movzwl (%r10), %ecx + 0x66, 0x41, 0x89, 0x08, //0x000033fc movw %cx, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x00003400 addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x00003404 addq $2, %r8 + 0x48, 0x83, 0xc7, 0xfe, //0x00003408 addq $-2, %rdi + 0x48, 0x85, 0xff, //0x0000340c testq %rdi, %rdi + 0x0f, 0x85, 0xb1, 0xff, 0xff, 0xff, //0x0000340f jne LBB11_67 + 0xe9, 0xb2, 0xff, 0xff, 0xff, //0x00003415 jmp LBB11_68 + //0x0000341a LBB11_57 + 0x4d, 0x29, 0xdc, //0x0000341a subq %r11, %r12 + 0x90, 0x90, 0x90, //0x0000341d .p2align 4, 0x90 + //0x00003420 LBB11_82 + 0x4c, 0x8d, 0x35, 0xa9, 0xe7, 0x00, 0x00, //0x00003420 leaq $59305(%rip), %r14 /* __HtmlQuoteTab+0(%rip) */ + //0x00003427 LBB11_83 + 0x4d, 0x85, 0xe4, //0x00003427 testq %r12, %r12 + 0x0f, 0x88, 0x22, 0x01, 0x00, 0x00, //0x0000342a js LBB11_84 + 0x4d, 0x01, 0xe3, //0x00003430 addq %r12, %r11 + 0x4d, 0x01, 0xe7, //0x00003433 addq %r12, %r15 + 0x4c, 0x29, 0xe6, //0x00003436 subq %r12, %rsi + 0x0f, 0x8e, 0x36, 0x01, 0x00, 0x00, //0x00003439 jle LBB11_86 + 0x4d, 0x29, 0xe1, //0x0000343f subq %r12, %r9 + 0x41, 0x8a, 0x0b, //0x00003442 movb (%r11), %cl + 0x80, 0xf9, 0xe2, //0x00003445 cmpb $-30, %cl + 0x0f, 0x84, 0xb5, 0x00, 0x00, 0x00, //0x00003448 je LBB11_89 + 0x4c, 0x89, 0xd8, //0x0000344e movq %r11, %rax + //0x00003451 LBB11_93 + 0x0f, 0xb6, 0xf9, //0x00003451 movzbl %cl, %edi + 0x48, 0xc1, 0xe7, 0x04, //0x00003454 shlq $4, %rdi + 0x4a, 0x8b, 0x14, 0x37, //0x00003458 movq (%rdi,%r14), %rdx + 0x48, 0x63, 0xda, //0x0000345c movslq %edx, %rbx + 0x49, 0x29, 0xd9, //0x0000345f subq %rbx, %r9 + 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x00003462 jl LBB11_94 + 0x48, 0xc1, 0xe2, 0x20, //0x00003468 shlq $32, %rdx + 0x4e, 0x8d, 0x04, 0x37, //0x0000346c leaq (%rdi,%r14), %r8 + 0x49, 0x83, 0xc0, 0x08, //0x00003470 addq $8, %r8 + 0x48, 0xb9, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00003474 movabsq $12884901889, %rcx + 0x48, 0x39, 0xca, //0x0000347e cmpq %rcx, %rdx + 0x0f, 0x8c, 0x29, 0x00, 0x00, 0x00, //0x00003481 jl LBB11_98 + 0x41, 0x8b, 0x08, //0x00003487 movl (%r8), %ecx + 0x41, 0x89, 0x0f, //0x0000348a movl %ecx, (%r15) + 0x4e, 0x8d, 0x04, 0x37, //0x0000348d leaq (%rdi,%r14), %r8 + 0x49, 0x83, 0xc0, 0x0c, //0x00003491 addq $12, %r8 + 0x4d, 0x8d, 0x57, 0x04, //0x00003495 leaq $4(%r15), %r10 + 0x48, 0x8d, 0x7b, 0xfc, //0x00003499 leaq $-4(%rbx), %rdi + 0x48, 0x83, 0xff, 0x02, //0x0000349d cmpq $2, %rdi + 0x0f, 0x83, 0x19, 0x00, 0x00, 0x00, //0x000034a1 jae LBB11_101 + 0xe9, 0x28, 0x00, 0x00, 0x00, //0x000034a7 jmp LBB11_102 + 0x90, 0x90, 0x90, 0x90, //0x000034ac .p2align 4, 0x90 + //0x000034b0 LBB11_98 + 0x4d, 0x89, 0xfa, //0x000034b0 movq %r15, %r10 + 0x48, 0x89, 0xdf, //0x000034b3 movq %rbx, %rdi + 0x48, 0x83, 0xff, 0x02, //0x000034b6 cmpq $2, %rdi + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x000034ba jb LBB11_102 + //0x000034c0 LBB11_101 + 0x41, 0x0f, 0xb7, 0x10, //0x000034c0 movzwl (%r8), %edx + 0x66, 0x41, 0x89, 0x12, //0x000034c4 movw %dx, (%r10) + 0x49, 0x83, 0xc0, 0x02, //0x000034c8 addq $2, %r8 + 0x49, 0x83, 0xc2, 0x02, //0x000034cc addq $2, %r10 + 0x48, 0x83, 0xc7, 0xfe, //0x000034d0 addq $-2, %rdi + //0x000034d4 LBB11_102 + 0x48, 0x85, 0xff, //0x000034d4 testq %rdi, %rdi + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000034d7 je LBB11_104 + 0x41, 0x8a, 0x08, //0x000034dd movb (%r8), %cl + 0x41, 0x88, 0x0a, //0x000034e0 movb %cl, (%r10) + //0x000034e3 LBB11_104 + 0x49, 0x01, 0xdf, //0x000034e3 addq %rbx, %r15 + //0x000034e6 LBB11_105 + 0x48, 0x83, 0xc0, 0x01, //0x000034e6 addq $1, %rax + 0x48, 0x8d, 0x4e, 0xff, //0x000034ea leaq $-1(%rsi), %rcx + 0x49, 0x89, 0xc3, //0x000034ee movq %rax, %r11 + 0x48, 0x83, 0xfe, 0x01, //0x000034f1 cmpq $1, %rsi + 0x48, 0x89, 0xce, //0x000034f5 movq %rcx, %rsi + 0x0f, 0x8f, 0x32, 0xf9, 0xff, 0xff, //0x000034f8 jg LBB11_2 + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x000034fe jmp LBB11_106 + //0x00003503 LBB11_89 + 0x48, 0x83, 0xfe, 0x03, //0x00003503 cmpq $3, %rsi + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00003507 jl LBB11_95 + 0x41, 0x80, 0x7b, 0x01, 0x80, //0x0000350d cmpb $-128, $1(%r11) + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00003512 jne LBB11_95 + 0x41, 0x8a, 0x4b, 0x02, //0x00003518 movb $2(%r11), %cl + 0x89, 0xc8, //0x0000351c movl %ecx, %eax + 0x24, 0xfe, //0x0000351e andb $-2, %al + 0x3c, 0xa8, //0x00003520 cmpb $-88, %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00003522 jne LBB11_95 + 0x49, 0x8d, 0x43, 0x02, //0x00003528 leaq $2(%r11), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x0000352c addq $-2, %rsi + 0xe9, 0x1c, 0xff, 0xff, 0xff, //0x00003530 jmp LBB11_93 + //0x00003535 LBB11_95 + 0x4d, 0x85, 0xc9, //0x00003535 testq %r9, %r9 + 0x0f, 0x8e, 0x59, 0x00, 0x00, 0x00, //0x00003538 jle LBB11_3 + 0x41, 0xc6, 0x07, 0xe2, //0x0000353e movb $-30, (%r15) + 0x49, 0x83, 0xc7, 0x01, //0x00003542 addq $1, %r15 + 0x49, 0x83, 0xc1, 0xff, //0x00003546 addq $-1, %r9 + 0x4c, 0x89, 0xd8, //0x0000354a movq %r11, %rax + 0xe9, 0x94, 0xff, 0xff, 0xff, //0x0000354d jmp LBB11_105 + //0x00003552 LBB11_84 + 0x48, 0x8b, 0x4d, 0xc8, //0x00003552 movq $-56(%rbp), %rcx + 0x4c, 0x01, 0xe1, //0x00003556 addq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00003559 notq %rcx + 0x4c, 0x01, 0xf9, //0x0000355c addq %r15, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x0000355f movq $-64(%rbp), %rax + 0x48, 0x89, 0x08, //0x00003563 movq %rcx, (%rax) + 0x48, 0x8b, 0x45, 0xd0, //0x00003566 movq $-48(%rbp), %rax + 0x4c, 0x29, 0xd8, //0x0000356a subq %r11, %rax + 0x4c, 0x01, 0xe0, //0x0000356d addq %r12, %rax + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x00003570 jmp LBB11_107 + //0x00003575 LBB11_86 + 0x4c, 0x89, 0xd8, //0x00003575 movq %r11, %rax + //0x00003578 LBB11_106 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00003578 subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x4d, 0xc0, //0x0000357c movq $-64(%rbp), %rcx + 0x4c, 0x89, 0x39, //0x00003580 movq %r15, (%rcx) + 0x48, 0x2b, 0x45, 0xd0, //0x00003583 subq $-48(%rbp), %rax + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00003587 jmp LBB11_107 + //0x0000358c LBB11_94 + 0x4c, 0x2b, 0x7d, 0xc8, //0x0000358c subq $-56(%rbp), %r15 + 0x48, 0x8b, 0x45, 0xc0, //0x00003590 movq $-64(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00003594 movq %r15, (%rax) + //0x00003597 LBB11_3 + 0x49, 0xf7, 0xd3, //0x00003597 notq %r11 + 0x4c, 0x03, 0x5d, 0xd0, //0x0000359a addq $-48(%rbp), %r11 + 0x4c, 0x89, 0xd8, //0x0000359e movq %r11, %rax + //0x000035a1 LBB11_107 + 0x48, 0x83, 0xc4, 0x18, //0x000035a1 addq $24, %rsp + 0x5b, //0x000035a5 popq %rbx + 0x41, 0x5c, //0x000035a6 popq %r12 + 0x41, 0x5d, //0x000035a8 popq %r13 + 0x41, 0x5e, //0x000035aa popq %r14 + 0x41, 0x5f, //0x000035ac popq %r15 + 0x5d, //0x000035ae popq %rbp + 0xc5, 0xf8, 0x77, //0x000035af vzeroupper + 0xc3, //0x000035b2 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000035b3 .p2align 4, 0x90 + //0x000035c0 _atof_eisel_lemire64 + 0x55, //0x000035c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000035c1 movq %rsp, %rbp + 0x41, 0x57, //0x000035c4 pushq %r15 + 0x41, 0x56, //0x000035c6 pushq %r14 + 0x41, 0x54, //0x000035c8 pushq %r12 + 0x53, //0x000035ca pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x000035cb leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x000035d1 cmpl $695, %eax + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x000035d6 ja LBB12_1 + 0x49, 0x89, 0xc8, //0x000035dc movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x000035df movl %edx, %r9d + 0x48, 0x85, 0xff, //0x000035e2 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x000035e5 je LBB12_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x000035eb bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x000035ef xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x000035f3 jmp LBB12_5 + //0x000035f8 LBB12_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x000035f8 movl $64, %r10d + //0x000035fe LBB12_5 + 0x44, 0x89, 0xd1, //0x000035fe movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x00003601 shlq %cl, %rdi + 0x89, 0xc1, //0x00003604 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00003606 shlq $4, %rcx + 0x4c, 0x8d, 0x25, 0x0f, 0x70, 0x00, 0x00, //0x0000360a leaq $28687(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x00003611 movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00003614 mulq $8(%rcx,%r12) + 0x49, 0x89, 0xc7, //0x00003619 movq %rax, %r15 + 0x49, 0x89, 0xd3, //0x0000361c movq %rdx, %r11 + 0x44, 0x89, 0xdb, //0x0000361f movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00003622 andl $511, %ebx + 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00003628 cmpq $511, %rbx + 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x0000362f jne LBB12_11 + 0x49, 0x89, 0xfe, //0x00003635 movq %rdi, %r14 + 0x49, 0xf7, 0xd6, //0x00003638 notq %r14 + 0x4c, 0x89, 0xfa, //0x0000363b movq %r15, %rdx + 0x4d, 0x39, 0xf7, //0x0000363e cmpq %r14, %r15 + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00003641 jbe LBB12_13 + 0x48, 0x89, 0xf8, //0x00003647 movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x21, //0x0000364a mulq (%rcx,%r12) + 0x4c, 0x01, 0xfa, //0x0000364e addq %r15, %rdx + 0x49, 0x83, 0xd3, 0x00, //0x00003651 adcq $0, %r11 + 0x44, 0x89, 0xd9, //0x00003655 movl %r11d, %ecx + 0xf7, 0xd1, //0x00003658 notl %ecx + 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x0000365a testl $511, %ecx + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003660 jne LBB12_12 + 0x48, 0x83, 0xfa, 0xff, //0x00003666 cmpq $-1, %rdx + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x0000366a jne LBB12_12 + 0x4c, 0x39, 0xf0, //0x00003670 cmpq %r14, %rax + 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00003673 ja LBB12_1 + //0x00003679 LBB12_12 + 0x44, 0x89, 0xdb, //0x00003679 movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x0000367c andl $511, %ebx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00003682 jmp LBB12_13 + //0x00003687 LBB12_11 + 0x4c, 0x89, 0xfa, //0x00003687 movq %r15, %rdx + //0x0000368a LBB12_13 + 0x4c, 0x89, 0xd8, //0x0000368a movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x0000368d shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00003691 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x00003694 shrq %cl, %r11 + 0x48, 0x85, 0xd2, //0x00003697 testq %rdx, %rdx + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000369a jne LBB12_17 + 0x48, 0x85, 0xdb, //0x000036a0 testq %rbx, %rbx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x000036a3 jne LBB12_17 + 0x44, 0x89, 0xd9, //0x000036a9 movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x000036ac andl $3, %ecx + 0x83, 0xf9, 0x01, //0x000036af cmpl $1, %ecx + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x000036b2 je LBB12_1 + //0x000036b8 LBB12_17 + 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x000036b8 imull $217706, %esi, %ecx + 0xc1, 0xf9, 0x10, //0x000036be sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x000036c1 addl $1087, %ecx + 0x48, 0x63, 0xf1, //0x000036c7 movslq %ecx, %rsi + 0x4c, 0x29, 0xd6, //0x000036ca subq %r10, %rsi + 0x44, 0x89, 0xda, //0x000036cd movl %r11d, %edx + 0x83, 0xe2, 0x01, //0x000036d0 andl $1, %edx + 0x4c, 0x01, 0xda, //0x000036d3 addq %r11, %rdx + 0x48, 0x89, 0xd1, //0x000036d6 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x36, //0x000036d9 shrq $54, %rcx + 0x48, 0x01, 0xf0, //0x000036dd addq %rsi, %rax + 0x48, 0x83, 0xf9, 0x01, //0x000036e0 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0x00, //0x000036e4 sbbq $0, %rax + 0x48, 0x8d, 0x70, 0xff, //0x000036e8 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x000036ec cmpq $2045, %rsi + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x000036f3 jbe LBB12_19 + //0x000036f9 LBB12_1 + 0x31, 0xc0, //0x000036f9 xorl %eax, %eax + //0x000036fb LBB12_20 + 0x5b, //0x000036fb popq %rbx + 0x41, 0x5c, //0x000036fc popq %r12 + 0x41, 0x5e, //0x000036fe popq %r14 + 0x41, 0x5f, //0x00003700 popq %r15 + 0x5d, //0x00003702 popq %rbp + 0xc3, //0x00003703 retq + //0x00003704 LBB12_19 + 0x48, 0x83, 0xf9, 0x01, //0x00003704 cmpq $1, %rcx + 0xb1, 0x02, //0x00003708 movb $2, %cl + 0x80, 0xd9, 0x00, //0x0000370a sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x0000370d shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00003710 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00003714 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x0000371e andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00003721 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003724 movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x0000372e orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00003731 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x00003735 cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00003739 movq %rax, (%r8) + 0xb0, 0x01, //0x0000373c movb $1, %al + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x0000373e jmp LBB12_20 + 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, //0x00003743 .p2align 5, 0x00 + //0x00003760 LCPI13_0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003760 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003768 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003770 .quad 1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003778 .quad 1 + //0x00003780 .p2align 3, 0x00 + //0x00003780 LCPI13_1 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003780 .quad 1 + //0x00003788 LCPI13_2 + 0x10, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003788 .quad 10000 + //0x00003790 LCPI13_3 + 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003790 .quad 10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003798 .p2align 4, 0x90 + //0x000037a0 _decimal_to_f64 + 0x55, //0x000037a0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000037a1 movq %rsp, %rbp + 0x41, 0x57, //0x000037a4 pushq %r15 + 0x41, 0x56, //0x000037a6 pushq %r14 + 0x41, 0x55, //0x000037a8 pushq %r13 + 0x41, 0x54, //0x000037aa pushq %r12 + 0x53, //0x000037ac pushq %rbx + 0x50, //0x000037ad pushq %rax + 0x48, 0x89, 0xf3, //0x000037ae movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x000037b1 movq %rdi, %r15 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x000037b4 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x000037be cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000037c2 je LBB13_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000037c8 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x47, 0x14, //0x000037d2 movl $20(%r15), %eax + 0x45, 0x31, 0xe4, //0x000037d6 xorl %r12d, %r12d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x000037d9 cmpl $310, %eax + 0x0f, 0x8f, 0x2e, 0x05, 0x00, 0x00, //0x000037de jg LBB13_69 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x000037e4 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x000037e9 jge LBB13_5 + 0x45, 0x31, 0xf6, //0x000037ef xorl %r14d, %r14d + 0xe9, 0x1b, 0x05, 0x00, 0x00, //0x000037f2 jmp LBB13_69 + //0x000037f7 LBB13_4 + 0x45, 0x31, 0xf6, //0x000037f7 xorl %r14d, %r14d + 0x45, 0x31, 0xe4, //0x000037fa xorl %r12d, %r12d + 0xe9, 0x10, 0x05, 0x00, 0x00, //0x000037fd jmp LBB13_69 + //0x00003802 LBB13_5 + 0x85, 0xc0, //0x00003802 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x00003804 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00003808 jle LBB13_12 + 0x45, 0x31, 0xe4, //0x0000380e xorl %r12d, %r12d + 0x4c, 0x8d, 0x35, 0x98, 0x99, 0x00, 0x00, //0x00003811 leaq $39320(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00003818 jmp LBB13_8 + 0x90, 0x90, 0x90, //0x0000381d .p2align 4, 0x90 + //0x00003820 LBB13_10 + 0x89, 0xc0, //0x00003820 movl %eax, %eax + 0x41, 0x8b, 0x1c, 0x86, //0x00003822 movl (%r14,%rax,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003826 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000382b je LBB13_7 + //0x00003831 LBB13_11 + 0x4c, 0x89, 0xff, //0x00003831 movq %r15, %rdi + 0x89, 0xde, //0x00003834 movl %ebx, %esi + 0xe8, 0xd5, 0x65, 0x00, 0x00, //0x00003836 callq _right_shift + //0x0000383b LBB13_7 + 0x41, 0x01, 0xdc, //0x0000383b addl %ebx, %r12d + 0x41, 0x8b, 0x47, 0x14, //0x0000383e movl $20(%r15), %eax + 0x85, 0xc0, //0x00003842 testl %eax, %eax + 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00003844 jle LBB13_12 + //0x0000384a LBB13_8 + 0x83, 0xf8, 0x08, //0x0000384a cmpl $8, %eax + 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x0000384d jle LBB13_10 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00003853 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003858 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x0000385d jne LBB13_11 + 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00003863 jmp LBB13_7 + //0x00003868 LBB13_12 + 0x4c, 0x8d, 0x35, 0x41, 0x99, 0x00, 0x00, //0x00003868 leaq $39233(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x0000386f jmp LBB13_14 + //0x00003874 LBB13_18 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00003874 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003879 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000387e je LBB13_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003884 .p2align 4, 0x90 + //0x00003890 LBB13_20 + 0x4c, 0x89, 0xff, //0x00003890 movq %r15, %rdi + 0x89, 0xde, //0x00003893 movl %ebx, %esi + 0xe8, 0x56, 0x63, 0x00, 0x00, //0x00003895 callq _left_shift + 0x41, 0x8b, 0x47, 0x14, //0x0000389a movl $20(%r15), %eax + //0x0000389e LBB13_13 + 0x41, 0x29, 0xdc, //0x0000389e subl %ebx, %r12d + //0x000038a1 LBB13_14 + 0x85, 0xc0, //0x000038a1 testl %eax, %eax + 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x000038a3 js LBB13_17 + 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x000038a9 jne LBB13_21 + 0x49, 0x8b, 0x0f, //0x000038af movq (%r15), %rcx + 0x80, 0x39, 0x35, //0x000038b2 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x000038b5 jl LBB13_19 + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x000038bb jmp LBB13_21 + //0x000038c0 .p2align 4, 0x90 + //0x000038c0 LBB13_17 + 0x83, 0xf8, 0xf8, //0x000038c0 cmpl $-8, %eax + 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x000038c3 jl LBB13_18 + //0x000038c9 LBB13_19 + 0x89, 0xc1, //0x000038c9 movl %eax, %ecx + 0xf7, 0xd9, //0x000038cb negl %ecx + 0x41, 0x8b, 0x1c, 0x8e, //0x000038cd movl (%r14,%rcx,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x000038d1 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x000038d6 jne LBB13_20 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x000038dc jmp LBB13_13 + //0x000038e1 LBB13_21 + 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x000038e1 cmpl $-1022, %r12d + 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x000038e8 jg LBB13_27 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x000038ee cmpl $0, $16(%r15) + 0x48, 0x8b, 0x5d, 0xd0, //0x000038f3 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x000038f7 je LBB13_29 + 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x000038fd cmpl $-1082, %r12d + 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00003904 jg LBB13_30 + 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x0000390a addl $961, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003911 .p2align 4, 0x90 + //0x00003920 LBB13_25 + 0x4c, 0x89, 0xff, //0x00003920 movq %r15, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00003923 movl $60, %esi + 0xe8, 0xe3, 0x64, 0x00, 0x00, //0x00003928 callq _right_shift + 0x41, 0x83, 0xc4, 0x3c, //0x0000392d addl $60, %r12d + 0x41, 0x83, 0xfc, 0x88, //0x00003931 cmpl $-120, %r12d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00003935 jl LBB13_25 + 0x41, 0x83, 0xc4, 0x3c, //0x0000393b addl $60, %r12d + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x0000393f jmp LBB13_31 + //0x00003944 LBB13_27 + 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00003944 cmpl $1024, %r12d + 0x48, 0x8b, 0x5d, 0xd0, //0x0000394b movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0x85, 0x03, 0x00, 0x00, //0x0000394f jg LBB13_66 + 0x41, 0x83, 0xc4, 0xff, //0x00003955 addl $-1, %r12d + 0x45, 0x89, 0xe6, //0x00003959 movl %r12d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x0000395c jmp LBB13_32 + //0x00003961 LBB13_29 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00003961 movl $-1022, %r14d + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00003967 jmp LBB13_34 + //0x0000396c LBB13_30 + 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x0000396c addl $1021, %r12d + //0x00003973 LBB13_31 + 0x41, 0xf7, 0xdc, //0x00003973 negl %r12d + 0x4c, 0x89, 0xff, //0x00003976 movq %r15, %rdi + 0x44, 0x89, 0xe6, //0x00003979 movl %r12d, %esi + 0xe8, 0x8f, 0x64, 0x00, 0x00, //0x0000397c callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00003981 movl $-1022, %r14d + //0x00003987 LBB13_32 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00003987 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x0000398c je LBB13_34 + 0x4c, 0x89, 0xff, //0x00003992 movq %r15, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00003995 movl $53, %esi + 0xe8, 0x51, 0x62, 0x00, 0x00, //0x0000399a callq _left_shift + //0x0000399f LBB13_34 + 0x41, 0x8b, 0x47, 0x14, //0x0000399f movl $20(%r15), %eax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000039a3 movq $-1, %r12 + 0x83, 0xf8, 0x14, //0x000039aa cmpl $20, %eax + 0x0f, 0x8f, 0x40, 0x03, 0x00, 0x00, //0x000039ad jg LBB13_68 + 0x85, 0xc0, //0x000039b3 testl %eax, %eax + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x000039b5 jle LBB13_40 + 0x41, 0x8b, 0x57, 0x10, //0x000039bb movl $16(%r15), %edx + 0x31, 0xf6, //0x000039bf xorl %esi, %esi + 0x85, 0xd2, //0x000039c1 testl %edx, %edx + 0x0f, 0x4e, 0xd6, //0x000039c3 cmovlel %esi, %edx + 0x4c, 0x8d, 0x48, 0xff, //0x000039c6 leaq $-1(%rax), %r9 + 0x49, 0x39, 0xd1, //0x000039ca cmpq %rdx, %r9 + 0x4c, 0x0f, 0x43, 0xca, //0x000039cd cmovaeq %rdx, %r9 + 0x45, 0x8d, 0x41, 0x01, //0x000039d1 leal $1(%r9), %r8d + 0x45, 0x31, 0xe4, //0x000039d5 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000039d8 .p2align 4, 0x90 + //0x000039e0 LBB13_37 + 0x48, 0x39, 0xf2, //0x000039e0 cmpq %rsi, %rdx + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x000039e3 je LBB13_41 + 0x4b, 0x8d, 0x3c, 0xa4, //0x000039e9 leaq (%r12,%r12,4), %rdi + 0x49, 0x8b, 0x0f, //0x000039ed movq (%r15), %rcx + 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x000039f0 movsbq (%rcx,%rsi), %rcx + 0x4c, 0x8d, 0x24, 0x79, //0x000039f5 leaq (%rcx,%rdi,2), %r12 + 0x49, 0x83, 0xc4, 0xd0, //0x000039f9 addq $-48, %r12 + 0x48, 0x83, 0xc6, 0x01, //0x000039fd addq $1, %rsi + 0x48, 0x39, 0xf0, //0x00003a01 cmpq %rsi, %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00003a04 jne LBB13_37 + 0x45, 0x89, 0xc1, //0x00003a0a movl %r8d, %r9d + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00003a0d jmp LBB13_41 + //0x00003a12 LBB13_40 + 0x45, 0x31, 0xc9, //0x00003a12 xorl %r9d, %r9d + 0x45, 0x31, 0xe4, //0x00003a15 xorl %r12d, %r12d + //0x00003a18 LBB13_41 + 0x44, 0x39, 0xc8, //0x00003a18 cmpl %r9d, %eax + 0x0f, 0x8e, 0x3f, 0x02, 0x00, 0x00, //0x00003a1b jle LBB13_54 + 0x89, 0xc2, //0x00003a21 movl %eax, %edx + 0x44, 0x29, 0xca, //0x00003a23 subl %r9d, %edx + 0x83, 0xfa, 0x10, //0x00003a26 cmpl $16, %edx + 0x0f, 0x82, 0x1c, 0x02, 0x00, 0x00, //0x00003a29 jb LBB13_52 + 0x41, 0x89, 0xd0, //0x00003a2f movl %edx, %r8d + 0xc5, 0xf9, 0x6f, 0x05, 0x26, 0xfd, 0xff, 0xff, //0x00003a32 vmovdqa $-730(%rip), %xmm0 /* LCPI13_0+0(%rip) */ + 0xc4, 0xc3, 0xf9, 0x22, 0xc4, 0x00, //0x00003a3a vpinsrq $0, %r12, %xmm0, %xmm0 + 0x41, 0x83, 0xe0, 0xf0, //0x00003a40 andl $-16, %r8d + 0xc4, 0xe3, 0x7d, 0x02, 0x05, 0x12, 0xfd, 0xff, 0xff, 0xf0, //0x00003a44 vpblendd $240, $-750(%rip), %ymm0, %ymm0 /* LCPI13_0+0(%rip) */ + 0x41, 0x8d, 0x48, 0xf0, //0x00003a4e leal $-16(%r8), %ecx + 0x89, 0xcf, //0x00003a52 movl %ecx, %edi + 0xc1, 0xef, 0x04, //0x00003a54 shrl $4, %edi + 0x83, 0xc7, 0x01, //0x00003a57 addl $1, %edi + 0x89, 0xfe, //0x00003a5a movl %edi, %esi + 0x83, 0xe6, 0x03, //0x00003a5c andl $3, %esi + 0x83, 0xf9, 0x30, //0x00003a5f cmpl $48, %ecx + 0x0f, 0x83, 0x16, 0x00, 0x00, 0x00, //0x00003a62 jae LBB13_45 + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0x0f, 0xfd, 0xff, 0xff, //0x00003a68 vpbroadcastq $-753(%rip), %ymm2 /* LCPI13_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x00003a71 vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x00003a75 vmovdqa %ymm2, %ymm1 + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00003a79 jmp LBB13_47 + //0x00003a7e LBB13_45 + 0x83, 0xe7, 0xfc, //0x00003a7e andl $-4, %edi + 0xf7, 0xdf, //0x00003a81 negl %edi + 0xc4, 0xe2, 0x7d, 0x59, 0x15, 0xf4, 0xfc, 0xff, 0xff, //0x00003a83 vpbroadcastq $-780(%rip), %ymm2 /* LCPI13_1+0(%rip) */ + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0xf3, 0xfc, 0xff, 0xff, //0x00003a8c vpbroadcastq $-781(%rip), %ymm4 /* LCPI13_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0xda, //0x00003a95 vmovdqa %ymm2, %ymm3 + 0xc5, 0xfd, 0x6f, 0xca, //0x00003a99 vmovdqa %ymm2, %ymm1 + 0x90, 0x90, 0x90, //0x00003a9d .p2align 4, 0x90 + //0x00003aa0 LBB13_46 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003aa0 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003aa4 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00003aa9 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00003aad vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003ab2 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003ab6 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00003aba vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x00003abf vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003ac3 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003ac8 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x00003acc vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003ad0 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x00003ad5 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003ad9 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x00003ade vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00003ae2 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003ae6 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x00003aeb vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00003aef vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x00003af4 vpaddq %ymm1, %ymm5, %ymm1 + 0x83, 0xc7, 0x04, //0x00003af8 addl $4, %edi + 0x0f, 0x85, 0x9f, 0xff, 0xff, 0xff, //0x00003afb jne LBB13_46 + //0x00003b01 LBB13_47 + 0x85, 0xf6, //0x00003b01 testl %esi, %esi + 0x0f, 0x84, 0x77, 0x00, 0x00, 0x00, //0x00003b03 je LBB13_50 + 0xf7, 0xde, //0x00003b09 negl %esi + 0xc4, 0xe2, 0x7d, 0x59, 0x25, 0x7c, 0xfc, 0xff, 0xff, //0x00003b0b vpbroadcastq $-900(%rip), %ymm4 /* LCPI13_3+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003b14 .p2align 4, 0x90 + //0x00003b20 LBB13_49 + 0xc5, 0xfd, 0xf4, 0xec, //0x00003b20 vpmuludq %ymm4, %ymm0, %ymm5 + 0xc5, 0xfd, 0x73, 0xd0, 0x20, //0x00003b24 vpsrlq $32, %ymm0, %ymm0 + 0xc5, 0xfd, 0xf4, 0xc4, //0x00003b29 vpmuludq %ymm4, %ymm0, %ymm0 + 0xc5, 0xfd, 0x73, 0xf0, 0x20, //0x00003b2d vpsllq $32, %ymm0, %ymm0 + 0xc5, 0xd5, 0xd4, 0xc0, //0x00003b32 vpaddq %ymm0, %ymm5, %ymm0 + 0xc5, 0xed, 0xf4, 0xec, //0x00003b36 vpmuludq %ymm4, %ymm2, %ymm5 + 0xc5, 0xed, 0x73, 0xd2, 0x20, //0x00003b3a vpsrlq $32, %ymm2, %ymm2 + 0xc5, 0xed, 0xf4, 0xd4, //0x00003b3f vpmuludq %ymm4, %ymm2, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003b43 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xd5, 0xd4, 0xd2, //0x00003b48 vpaddq %ymm2, %ymm5, %ymm2 + 0xc5, 0xe5, 0xf4, 0xec, //0x00003b4c vpmuludq %ymm4, %ymm3, %ymm5 + 0xc5, 0xe5, 0x73, 0xd3, 0x20, //0x00003b50 vpsrlq $32, %ymm3, %ymm3 + 0xc5, 0xe5, 0xf4, 0xdc, //0x00003b55 vpmuludq %ymm4, %ymm3, %ymm3 + 0xc5, 0xe5, 0x73, 0xf3, 0x20, //0x00003b59 vpsllq $32, %ymm3, %ymm3 + 0xc5, 0xd5, 0xd4, 0xdb, //0x00003b5e vpaddq %ymm3, %ymm5, %ymm3 + 0xc5, 0xf5, 0xf4, 0xec, //0x00003b62 vpmuludq %ymm4, %ymm1, %ymm5 + 0xc5, 0xf5, 0x73, 0xd1, 0x20, //0x00003b66 vpsrlq $32, %ymm1, %ymm1 + 0xc5, 0xf5, 0xf4, 0xcc, //0x00003b6b vpmuludq %ymm4, %ymm1, %ymm1 + 0xc5, 0xf5, 0x73, 0xf1, 0x20, //0x00003b6f vpsllq $32, %ymm1, %ymm1 + 0xc5, 0xd5, 0xd4, 0xc9, //0x00003b74 vpaddq %ymm1, %ymm5, %ymm1 + 0xff, 0xc6, //0x00003b78 incl %esi + 0x0f, 0x85, 0xa0, 0xff, 0xff, 0xff, //0x00003b7a jne LBB13_49 + //0x00003b80 LBB13_50 + 0xc5, 0xdd, 0x73, 0xd2, 0x20, //0x00003b80 vpsrlq $32, %ymm2, %ymm4 + 0xc5, 0xdd, 0xf4, 0xe0, //0x00003b85 vpmuludq %ymm0, %ymm4, %ymm4 + 0xc5, 0xd5, 0x73, 0xd0, 0x20, //0x00003b89 vpsrlq $32, %ymm0, %ymm5 + 0xc5, 0xed, 0xf4, 0xed, //0x00003b8e vpmuludq %ymm5, %ymm2, %ymm5 + 0xc5, 0xd5, 0xd4, 0xe4, //0x00003b92 vpaddq %ymm4, %ymm5, %ymm4 + 0xc5, 0xdd, 0x73, 0xf4, 0x20, //0x00003b96 vpsllq $32, %ymm4, %ymm4 + 0xc5, 0xed, 0xf4, 0xc0, //0x00003b9b vpmuludq %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc4, //0x00003b9f vpaddq %ymm4, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd3, 0x20, //0x00003ba3 vpsrlq $32, %ymm3, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x00003ba8 vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xdd, 0x73, 0xd0, 0x20, //0x00003bac vpsrlq $32, %ymm0, %ymm4 + 0xc5, 0xe5, 0xf4, 0xe4, //0x00003bb1 vpmuludq %ymm4, %ymm3, %ymm4 + 0xc5, 0xdd, 0xd4, 0xd2, //0x00003bb5 vpaddq %ymm2, %ymm4, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003bb9 vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xe5, 0xf4, 0xc0, //0x00003bbe vpmuludq %ymm0, %ymm3, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003bc2 vpaddq %ymm2, %ymm0, %ymm0 + 0xc5, 0xed, 0x73, 0xd1, 0x20, //0x00003bc6 vpsrlq $32, %ymm1, %ymm2 + 0xc5, 0xed, 0xf4, 0xd0, //0x00003bcb vpmuludq %ymm0, %ymm2, %ymm2 + 0xc5, 0xe5, 0x73, 0xd0, 0x20, //0x00003bcf vpsrlq $32, %ymm0, %ymm3 + 0xc5, 0xf5, 0xf4, 0xdb, //0x00003bd4 vpmuludq %ymm3, %ymm1, %ymm3 + 0xc5, 0xe5, 0xd4, 0xd2, //0x00003bd8 vpaddq %ymm2, %ymm3, %ymm2 + 0xc5, 0xed, 0x73, 0xf2, 0x20, //0x00003bdc vpsllq $32, %ymm2, %ymm2 + 0xc5, 0xf5, 0xf4, 0xc0, //0x00003be1 vpmuludq %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xd4, 0xc2, //0x00003be5 vpaddq %ymm2, %ymm0, %ymm0 + 0xc4, 0xe3, 0x7d, 0x39, 0xc1, 0x01, //0x00003be9 vextracti128 $1, %ymm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003bef vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003bf4 vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xe1, 0x73, 0xd1, 0x20, //0x00003bf8 vpsrlq $32, %xmm1, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00003bfd vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003c01 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003c05 vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x00003c0a vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00003c0e vpaddq %xmm2, %xmm0, %xmm0 + 0xc5, 0xf9, 0x70, 0xc8, 0xee, //0x00003c12 vpshufd $238, %xmm0, %xmm1 + 0xc5, 0xe9, 0x73, 0xd0, 0x20, //0x00003c17 vpsrlq $32, %xmm0, %xmm2 + 0xc5, 0xe9, 0xf4, 0xd1, //0x00003c1c vpmuludq %xmm1, %xmm2, %xmm2 + 0xc5, 0xf9, 0x70, 0xd8, 0xff, //0x00003c20 vpshufd $255, %xmm0, %xmm3 + 0xc5, 0xf9, 0xf4, 0xdb, //0x00003c25 vpmuludq %xmm3, %xmm0, %xmm3 + 0xc5, 0xe1, 0xd4, 0xd2, //0x00003c29 vpaddq %xmm2, %xmm3, %xmm2 + 0xc5, 0xe9, 0x73, 0xf2, 0x20, //0x00003c2d vpsllq $32, %xmm2, %xmm2 + 0xc5, 0xf9, 0xf4, 0xc1, //0x00003c32 vpmuludq %xmm1, %xmm0, %xmm0 + 0xc5, 0xf9, 0xd4, 0xc2, //0x00003c36 vpaddq %xmm2, %xmm0, %xmm0 + 0xc4, 0xc1, 0xf9, 0x7e, 0xc4, //0x00003c3a vmovq %xmm0, %r12 + 0x44, 0x39, 0xc2, //0x00003c3f cmpl %r8d, %edx + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00003c42 je LBB13_54 + 0x45, 0x01, 0xc1, //0x00003c48 addl %r8d, %r9d + //0x00003c4b LBB13_52 + 0x89, 0xc2, //0x00003c4b movl %eax, %edx + 0x44, 0x29, 0xca, //0x00003c4d subl %r9d, %edx + //0x00003c50 .p2align 4, 0x90 + //0x00003c50 LBB13_53 + 0x4d, 0x01, 0xe4, //0x00003c50 addq %r12, %r12 + 0x4f, 0x8d, 0x24, 0xa4, //0x00003c53 leaq (%r12,%r12,4), %r12 + 0x83, 0xc2, 0xff, //0x00003c57 addl $-1, %edx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00003c5a jne LBB13_53 + //0x00003c60 LBB13_54 + 0x85, 0xc0, //0x00003c60 testl %eax, %eax + 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00003c62 js LBB13_62 + 0x41, 0x8b, 0x4f, 0x10, //0x00003c68 movl $16(%r15), %ecx + 0x39, 0xc1, //0x00003c6c cmpl %eax, %ecx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00003c6e jle LBB13_62 + 0x49, 0x8b, 0x37, //0x00003c74 movq (%r15), %rsi + 0x8a, 0x14, 0x06, //0x00003c77 movb (%rsi,%rax), %dl + 0x80, 0xfa, 0x35, //0x00003c7a cmpb $53, %dl + 0x0f, 0x85, 0xc6, 0x00, 0x00, 0x00, //0x00003c7d jne LBB13_63 + 0x8d, 0x78, 0x01, //0x00003c83 leal $1(%rax), %edi + 0x39, 0xcf, //0x00003c86 cmpl %ecx, %edi + 0x0f, 0x85, 0xbb, 0x00, 0x00, 0x00, //0x00003c88 jne LBB13_63 + 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00003c8e cmpl $0, $28(%r15) + 0x0f, 0x95, 0xc1, //0x00003c93 setne %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00003c96 jne LBB13_64 + 0x85, 0xc0, //0x00003c9c testl %eax, %eax + 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x00003c9e jle LBB13_64 + 0x83, 0xc0, 0xff, //0x00003ca4 addl $-1, %eax + 0x8a, 0x0c, 0x06, //0x00003ca7 movb (%rsi,%rax), %cl + 0x80, 0xe1, 0x01, //0x00003caa andb $1, %cl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00003cad jmp LBB13_64 + //0x00003cb2 LBB13_62 + 0x31, 0xc9, //0x00003cb2 xorl %ecx, %ecx + //0x00003cb4 LBB13_64 + 0x0f, 0xb6, 0xc1, //0x00003cb4 movzbl %cl, %eax + 0x49, 0x01, 0xc4, //0x00003cb7 addq %rax, %r12 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x00003cba movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc4, //0x00003cc4 cmpq %rax, %r12 + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003cc7 jne LBB13_68 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x00003ccd cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003cd4 jle LBB13_67 + //0x00003cda LBB13_66 + 0x45, 0x31, 0xe4, //0x00003cda xorl %r12d, %r12d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00003cdd movabsq $9218868437227405312, %r14 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003ce7 jmp LBB13_69 + //0x00003cec LBB13_67 + 0x41, 0x83, 0xc6, 0x01, //0x00003cec addl $1, %r14d + 0x4d, 0x89, 0xec, //0x00003cf0 movq %r13, %r12 + //0x00003cf3 LBB13_68 + 0x4c, 0x89, 0xe0, //0x00003cf3 movq %r12, %rax + 0x4c, 0x21, 0xe8, //0x00003cf6 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003cf9 addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003d00 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00003d07 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x00003d0b testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x00003d0e cmoveq %rax, %r14 + //0x00003d12 LBB13_69 + 0x49, 0x83, 0xc5, 0xff, //0x00003d12 addq $-1, %r13 + 0x4d, 0x21, 0xe5, //0x00003d16 andq %r12, %r13 + 0x4d, 0x09, 0xf5, //0x00003d19 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00003d1c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00003d26 orq %r13, %rax + 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003d29 cmpl $0, $24(%r15) + 0x49, 0x0f, 0x44, 0xc5, //0x00003d2e cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00003d32 movq %rax, (%rbx) + 0x31, 0xc0, //0x00003d35 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00003d37 addq $8, %rsp + 0x5b, //0x00003d3b popq %rbx + 0x41, 0x5c, //0x00003d3c popq %r12 + 0x41, 0x5d, //0x00003d3e popq %r13 + 0x41, 0x5e, //0x00003d40 popq %r14 + 0x41, 0x5f, //0x00003d42 popq %r15 + 0x5d, //0x00003d44 popq %rbp + 0xc5, 0xf8, 0x77, //0x00003d45 vzeroupper + 0xc3, //0x00003d48 retq + //0x00003d49 LBB13_63 + 0x80, 0xfa, 0x35, //0x00003d49 cmpb $53, %dl + 0x0f, 0x9d, 0xc1, //0x00003d4c setge %cl + 0xe9, 0x60, 0xff, 0xff, 0xff, //0x00003d4f jmp LBB13_64 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003d54 .p2align 4, 0x90 + //0x00003d60 _atof_native + 0x55, //0x00003d60 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003d61 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x00003d64 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x00003d68 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x00003d70 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x00003d74 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x00003d78 testq %rcx, %rcx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x00003d7b je LBB14_5 + 0xc6, 0x02, 0x00, //0x00003d81 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x00003d84 cmpq $1, %rcx + 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x00003d88 je LBB14_5 + 0xc6, 0x42, 0x01, 0x00, //0x00003d8e movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x00003d92 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x00003d97 jb LBB14_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003d9d movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003da2 .p2align 4, 0x90 + //0x00003db0 LBB14_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00003db0 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00003db4 movb $0, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00003db8 addq $1, %rax + 0x48, 0x39, 0x45, 0xe8, //0x00003dbc cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003dc0 ja LBB14_4 + //0x00003dc6 LBB14_5 + 0xc5, 0xf8, 0x57, 0xc0, //0x00003dc6 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x45, 0xf0, //0x00003dca vmovups %xmm0, $-16(%rbp) + 0x31, 0xd2, //0x00003dcf xorl %edx, %edx + 0x80, 0x3f, 0x2d, //0x00003dd1 cmpb $45, (%rdi) + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003dd4 jne LBB14_7 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003dda movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003de1 movl $1, %eax + 0x48, 0x39, 0xf0, //0x00003de6 cmpq %rsi, %rax + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003de9 jl LBB14_8 + 0xe9, 0xab, 0x01, 0x00, 0x00, //0x00003def jmp LBB14_39 + //0x00003df4 LBB14_7 + 0x31, 0xc0, //0x00003df4 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00003df6 cmpq %rsi, %rax + 0x0f, 0x8d, 0xa0, 0x01, 0x00, 0x00, //0x00003df9 jge LBB14_39 + //0x00003dff LBB14_8 + 0x41, 0xb3, 0x01, //0x00003dff movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00003e02 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00003e05 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00003e08 xorl %r8d, %r8d + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x00003e0b jmp LBB14_12 + //0x00003e10 LBB14_20 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x00003e10 movl $1, $-4(%rbp) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e17 .p2align 4, 0x90 + //0x00003e20 LBB14_11 + 0x48, 0x83, 0xc0, 0x01, //0x00003e20 addq $1, %rax + 0x48, 0x39, 0xf0, //0x00003e24 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00003e27 setl %r11b + 0x48, 0x39, 0xc6, //0x00003e2b cmpq %rax, %rsi + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x00003e2e je LBB14_22 + //0x00003e34 LBB14_12 + 0x0f, 0xb6, 0x0c, 0x07, //0x00003e34 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00003e38 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00003e3b cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00003e3e ja LBB14_17 + 0x80, 0xf9, 0x30, //0x00003e44 cmpb $48, %cl + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00003e47 jne LBB14_19 + 0x45, 0x85, 0xd2, //0x00003e4d testl %r10d, %r10d + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e50 je LBB14_21 + 0x4d, 0x63, 0xd9, //0x00003e56 movslq %r9d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x00003e59 cmpq %r11, $-24(%rbp) + 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x00003e5d ja LBB14_9 + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x00003e63 jmp LBB14_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e68 .p2align 4, 0x90 + //0x00003e70 LBB14_17 + 0x80, 0xf9, 0x2e, //0x00003e70 cmpb $46, %cl + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00003e73 jne LBB14_23 + 0x44, 0x89, 0x55, 0xf4, //0x00003e79 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003e7d movl $1, %r8d + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x00003e83 jmp LBB14_11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003e88 .p2align 4, 0x90 + //0x00003e90 LBB14_19 + 0x4d, 0x63, 0xda, //0x00003e90 movslq %r10d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x00003e93 cmpq %r11, $-24(%rbp) + 0x0f, 0x86, 0x73, 0xff, 0xff, 0xff, //0x00003e97 jbe LBB14_20 + //0x00003e9d LBB14_9 + 0x48, 0x8b, 0x55, 0xe0, //0x00003e9d movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x1a, //0x00003ea1 movb %cl, (%rdx,%r11) + 0x44, 0x8b, 0x4d, 0xf0, //0x00003ea5 movl $-16(%rbp), %r9d + 0x41, 0x83, 0xc1, 0x01, //0x00003ea9 addl $1, %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x00003ead movl %r9d, $-16(%rbp) + //0x00003eb1 LBB14_10 + 0x45, 0x89, 0xca, //0x00003eb1 movl %r9d, %r10d + 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003eb4 jmp LBB14_11 + //0x00003eb9 LBB14_21 + 0x83, 0x45, 0xf4, 0xff, //0x00003eb9 addl $-1, $-12(%rbp) + 0x45, 0x31, 0xd2, //0x00003ebd xorl %r10d, %r10d + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003ec0 jmp LBB14_11 + //0x00003ec5 LBB14_22 + 0x48, 0x89, 0xf0, //0x00003ec5 movq %rsi, %rax + //0x00003ec8 LBB14_23 + 0x45, 0x85, 0xc0, //0x00003ec8 testl %r8d, %r8d + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00003ecb je LBB14_25 + 0x41, 0xf6, 0xc3, 0x01, //0x00003ed1 testb $1, %r11b + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003ed5 jne LBB14_26 + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x00003edb jmp LBB14_40 + //0x00003ee0 LBB14_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00003ee0 movl %r9d, $-12(%rbp) + 0x41, 0xf6, 0xc3, 0x01, //0x00003ee4 testb $1, %r11b + 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003ee8 je LBB14_40 + //0x00003eee LBB14_26 + 0x89, 0xc2, //0x00003eee movl %eax, %edx + 0x8a, 0x0c, 0x17, //0x00003ef0 movb (%rdi,%rdx), %cl + 0x80, 0xc9, 0x20, //0x00003ef3 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00003ef6 cmpb $101, %cl + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003ef9 jne LBB14_40 + 0x8a, 0x4c, 0x17, 0x01, //0x00003eff movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00003f03 cmpb $45, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003f06 je LBB14_30 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00003f0c movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00003f12 cmpb $43, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003f15 jne LBB14_32 + 0x83, 0xc0, 0x02, //0x00003f1b addl $2, %eax + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x00003f1e jmp LBB14_31 + //0x00003f23 LBB14_30 + 0x83, 0xc0, 0x02, //0x00003f23 addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003f26 movl $-1, %r8d + //0x00003f2c LBB14_31 + 0x89, 0xc2, //0x00003f2c movl %eax, %edx + 0x48, 0x63, 0xc2, //0x00003f2e movslq %edx, %rax + 0x31, 0xd2, //0x00003f31 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x00003f33 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003f36 jl LBB14_33 + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x00003f3c jmp LBB14_38 + //0x00003f41 LBB14_32 + 0x48, 0x83, 0xc2, 0x01, //0x00003f41 addq $1, %rdx + 0x48, 0x63, 0xc2, //0x00003f45 movslq %edx, %rax + 0x31, 0xd2, //0x00003f48 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x00003f4a cmpq %rsi, %rax + 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x00003f4d jge LBB14_38 + //0x00003f53 LBB14_33 + 0x31, 0xd2, //0x00003f53 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003f55 .p2align 4, 0x90 + //0x00003f60 LBB14_34 + 0x0f, 0xbe, 0x0c, 0x07, //0x00003f60 movsbl (%rdi,%rax), %ecx + 0x83, 0xf9, 0x30, //0x00003f64 cmpl $48, %ecx + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00003f67 jl LBB14_38 + 0x80, 0xf9, 0x39, //0x00003f6d cmpb $57, %cl + 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x00003f70 jg LBB14_38 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x00003f76 cmpl $9999, %edx + 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x00003f7c jg LBB14_38 + 0x8d, 0x14, 0x92, //0x00003f82 leal (%rdx,%rdx,4), %edx + 0x8d, 0x14, 0x51, //0x00003f85 leal (%rcx,%rdx,2), %edx + 0x83, 0xc2, 0xd0, //0x00003f88 addl $-48, %edx + 0x48, 0x83, 0xc0, 0x01, //0x00003f8b addq $1, %rax + 0x48, 0x39, 0xc6, //0x00003f8f cmpq %rax, %rsi + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x00003f92 jne LBB14_34 + //0x00003f98 LBB14_38 + 0x41, 0x0f, 0xaf, 0xd0, //0x00003f98 imull %r8d, %edx + 0x03, 0x55, 0xf4, //0x00003f9c addl $-12(%rbp), %edx + //0x00003f9f LBB14_39 + 0x89, 0x55, 0xf4, //0x00003f9f movl %edx, $-12(%rbp) + //0x00003fa2 LBB14_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x00003fa2 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x00003fa6 leaq $-40(%rbp), %rsi + 0xe8, 0xf1, 0xf7, 0xff, 0xff, //0x00003faa callq _decimal_to_f64 + 0xc5, 0xfb, 0x10, 0x45, 0xd8, //0x00003faf vmovsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x00003fb4 addq $48, %rsp + 0x5d, //0x00003fb8 popq %rbp + 0xc3, //0x00003fb9 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003fba .p2align 4, 0x90 + //0x00003fc0 _value + 0x55, //0x00003fc0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003fc1 movq %rsp, %rbp + 0x41, 0x57, //0x00003fc4 pushq %r15 + 0x41, 0x56, //0x00003fc6 pushq %r14 + 0x41, 0x55, //0x00003fc8 pushq %r13 + 0x41, 0x54, //0x00003fca pushq %r12 + 0x53, //0x00003fcc pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x00003fcd subq $40, %rsp + 0x4d, 0x89, 0xc7, //0x00003fd1 movq %r8, %r15 + 0x49, 0x89, 0xce, //0x00003fd4 movq %rcx, %r14 + 0x48, 0x89, 0xf3, //0x00003fd7 movq %rsi, %rbx + 0x49, 0x89, 0xfc, //0x00003fda movq %rdi, %r12 + 0x48, 0x89, 0x55, 0xd0, //0x00003fdd movq %rdx, $-48(%rbp) + 0x48, 0x89, 0x7d, 0xb0, //0x00003fe1 movq %rdi, $-80(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00003fe5 movq %rsi, $-72(%rbp) + 0x48, 0x8d, 0x55, 0xd0, //0x00003fe9 leaq $-48(%rbp), %rdx + 0xe8, 0xce, 0x05, 0x00, 0x00, //0x00003fed callq _advance_ns + 0x0f, 0xbe, 0xc0, //0x00003ff2 movsbl %al, %eax + 0x83, 0xf8, 0x7d, //0x00003ff5 cmpl $125, %eax + 0x0f, 0x87, 0xbc, 0x00, 0x00, 0x00, //0x00003ff8 ja LBB15_10 + 0x48, 0x8d, 0x0d, 0x9b, 0x03, 0x00, 0x00, //0x00003ffe leaq $923(%rip), %rcx /* LJTI15_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00004005 movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00004009 addq %rcx, %rax + 0xff, 0xe0, //0x0000400c jmpq *%rax + //0x0000400e LBB15_2 + 0x4c, 0x89, 0x75, 0xc8, //0x0000400e movq %r14, $-56(%rbp) + 0x4c, 0x8b, 0x75, 0xd0, //0x00004012 movq $-48(%rbp), %r14 + 0x4d, 0x8d, 0x6e, 0xff, //0x00004016 leaq $-1(%r14), %r13 + 0x4c, 0x89, 0x6d, 0xd0, //0x0000401a movq %r13, $-48(%rbp) + 0x41, 0xf6, 0xc7, 0x02, //0x0000401e testb $2, %r15b + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00004022 jne LBB15_4 + 0x48, 0x8d, 0x7d, 0xb0, //0x00004028 leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x0000402c leaq $-48(%rbp), %rsi + 0x48, 0x8b, 0x55, 0xc8, //0x00004030 movq $-56(%rbp), %rdx + 0xe8, 0xa7, 0x0c, 0x00, 0x00, //0x00004034 callq _vnumber + 0x4c, 0x8b, 0x7d, 0xd0, //0x00004039 movq $-48(%rbp), %r15 + 0xe9, 0x49, 0x03, 0x00, 0x00, //0x0000403d jmp LBB15_55 + //0x00004042 LBB15_4 + 0x4c, 0x29, 0xeb, //0x00004042 subq %r13, %rbx + 0x31, 0xc0, //0x00004045 xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00004047 cmpb $45, (%r12,%r13) + 0x4f, 0x8d, 0x3c, 0x2c, //0x0000404c leaq (%r12,%r13), %r15 + 0x0f, 0x94, 0xc0, //0x00004050 sete %al + 0x49, 0x01, 0xc7, //0x00004053 addq %rax, %r15 + 0x48, 0x29, 0xc3, //0x00004056 subq %rax, %rbx + 0x0f, 0x84, 0x02, 0x03, 0x00, 0x00, //0x00004059 je LBB15_51 + 0x41, 0x8a, 0x07, //0x0000405f movb (%r15), %al + 0x04, 0xd0, //0x00004062 addb $-48, %al + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004064 movq $-2, %rcx + 0x3c, 0x09, //0x0000406b cmpb $9, %al + 0x0f, 0x87, 0x07, 0x03, 0x00, 0x00, //0x0000406d ja LBB15_53 + 0x4c, 0x89, 0xff, //0x00004073 movq %r15, %rdi + 0x48, 0x89, 0xde, //0x00004076 movq %rbx, %rsi + 0xe8, 0xb2, 0x1f, 0x00, 0x00, //0x00004079 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000407e testq %rax, %rax + 0x0f, 0x88, 0xe6, 0x02, 0x00, 0x00, //0x00004081 js LBB15_52 + 0x49, 0x01, 0xc7, //0x00004087 addq %rax, %r15 + 0x4d, 0x29, 0xe7, //0x0000408a subq %r12, %r15 + 0x4d, 0x85, 0xf6, //0x0000408d testq %r14, %r14 + 0x0f, 0x8e, 0xee, 0x02, 0x00, 0x00, //0x00004090 jle LBB15_54 + 0x48, 0x8b, 0x45, 0xc8, //0x00004096 movq $-56(%rbp), %rax + 0x48, 0xc7, 0x00, 0x08, 0x00, 0x00, 0x00, //0x0000409a movq $8, (%rax) + 0x4c, 0x89, 0x68, 0x18, //0x000040a1 movq %r13, $24(%rax) + 0xe9, 0xe1, 0x02, 0x00, 0x00, //0x000040a5 jmp LBB15_55 + //0x000040aa LBB15_9 + 0x49, 0xc7, 0x06, 0x01, 0x00, 0x00, 0x00, //0x000040aa movq $1, (%r14) + 0x4c, 0x8b, 0x7d, 0xd0, //0x000040b1 movq $-48(%rbp), %r15 + 0xe9, 0xd1, 0x02, 0x00, 0x00, //0x000040b5 jmp LBB15_55 + //0x000040ba LBB15_10 + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000040ba movq $-2, (%r14) + 0x4c, 0x8b, 0x7d, 0xd0, //0x000040c1 movq $-48(%rbp), %r15 + 0x49, 0x83, 0xc7, 0xff, //0x000040c5 addq $-1, %r15 + 0xe9, 0xbd, 0x02, 0x00, 0x00, //0x000040c9 jmp LBB15_55 + //0x000040ce LBB15_11 + 0x48, 0xc7, 0x45, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000040ce movq $-1, $-64(%rbp) + 0x4c, 0x8b, 0x65, 0xd0, //0x000040d6 movq $-48(%rbp), %r12 + 0x48, 0x8d, 0x7d, 0xb0, //0x000040da leaq $-80(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x000040de leaq $-64(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000040e2 movq %r12, %rsi + 0x4c, 0x89, 0xf9, //0x000040e5 movq %r15, %rcx + 0xe8, 0xb3, 0x07, 0x00, 0x00, //0x000040e8 callq _advance_string + 0x49, 0x89, 0xc7, //0x000040ed movq %rax, %r15 + 0x48, 0x85, 0xc0, //0x000040f0 testq %rax, %rax + 0x0f, 0x88, 0x6e, 0x01, 0x00, 0x00, //0x000040f3 js LBB15_33 + 0x4c, 0x89, 0x7d, 0xd0, //0x000040f9 movq %r15, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x000040fd movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc0, //0x00004101 movq $-64(%rbp), %rax + 0x4c, 0x39, 0xf8, //0x00004105 cmpq %r15, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004108 movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x0000410f cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x00004113 movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004117 movl $7, %eax + 0x49, 0x89, 0x06, //0x0000411c movq %rax, (%r14) + 0xe9, 0x67, 0x02, 0x00, 0x00, //0x0000411f jmp LBB15_55 + //0x00004124 LBB15_13 + 0x45, 0x85, 0xff, //0x00004124 testl %r15d, %r15d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004127 movq $-2, %rax + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x0000412e movl $11, %ecx + 0xe9, 0x15, 0x01, 0x00, 0x00, //0x00004133 jmp LBB15_32 + //0x00004138 LBB15_14 + 0x45, 0x85, 0xff, //0x00004138 testl %r15d, %r15d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000413b movq $-2, %rax + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x00004142 movl $10, %ecx + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x00004147 jmp LBB15_32 + //0x0000414c LBB15_15 + 0x49, 0xc7, 0x06, 0x05, 0x00, 0x00, 0x00, //0x0000414c movq $5, (%r14) + 0x4c, 0x8b, 0x7d, 0xd0, //0x00004153 movq $-48(%rbp), %r15 + 0xe9, 0x2f, 0x02, 0x00, 0x00, //0x00004157 jmp LBB15_55 + //0x0000415c LBB15_16 + 0x45, 0x85, 0xff, //0x0000415c testl %r15d, %r15d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000415f movq $-2, %rax + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x00004166 movl $12, %ecx + 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x0000416b jmp LBB15_32 + //0x00004170 LBB15_17 + 0x4c, 0x8b, 0x7d, 0xd0, //0x00004170 movq $-48(%rbp), %r15 + 0x48, 0x8d, 0x4b, 0xfc, //0x00004174 leaq $-4(%rbx), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004178 movq $-1, %rax + 0x49, 0x39, 0xcf, //0x0000417f cmpq %rcx, %r15 + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00004182 ja LBB15_20 + 0x43, 0x8b, 0x0c, 0x3c, //0x00004188 movl (%r12,%r15), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000418c cmpl $1702063201, %ecx + 0x0f, 0x85, 0xde, 0x00, 0x00, 0x00, //0x00004192 jne LBB15_34 + 0x49, 0x83, 0xc7, 0x04, //0x00004198 addq $4, %r15 + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000419c movl $4, %eax + 0x4c, 0x89, 0xfb, //0x000041a1 movq %r15, %rbx + //0x000041a4 LBB15_20 + 0x48, 0x89, 0x5d, 0xd0, //0x000041a4 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0xdf, //0x000041a8 movq %rbx, %r15 + //0x000041ab LBB15_21 + 0x49, 0x89, 0x06, //0x000041ab movq %rax, (%r14) + 0xe9, 0xd8, 0x01, 0x00, 0x00, //0x000041ae jmp LBB15_55 + //0x000041b3 LBB15_22 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000041b3 movq $-48(%rbp), %r15 + 0x48, 0x8d, 0x4b, 0xfd, //0x000041b7 leaq $-3(%rbx), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000041bb movq $-1, %rax + 0x49, 0x39, 0xcf, //0x000041c2 cmpq %rcx, %r15 + 0x0f, 0x87, 0x54, 0x00, 0x00, 0x00, //0x000041c5 ja LBB15_26 + 0x43, 0x8b, 0x4c, 0x3c, 0xff, //0x000041cb movl $-1(%r12,%r15), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x000041d0 cmpl $1819047278, %ecx + 0x0f, 0x85, 0xe0, 0x00, 0x00, 0x00, //0x000041d6 jne LBB15_38 + 0x49, 0x83, 0xc7, 0x03, //0x000041dc addq $3, %r15 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000041e0 movl $2, %eax + 0xe9, 0x32, 0x00, 0x00, 0x00, //0x000041e5 jmp LBB15_25 + //0x000041ea LBB15_27 + 0x4c, 0x8b, 0x7d, 0xd0, //0x000041ea movq $-48(%rbp), %r15 + 0x48, 0x8d, 0x4b, 0xfd, //0x000041ee leaq $-3(%rbx), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000041f2 movq $-1, %rax + 0x49, 0x39, 0xcf, //0x000041f9 cmpq %rcx, %r15 + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000041fc ja LBB15_26 + 0x43, 0x8b, 0x4c, 0x3c, 0xff, //0x00004202 movl $-1(%r12,%r15), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x00004207 cmpl $1702195828, %ecx + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x0000420d jne LBB15_42 + 0x49, 0x83, 0xc7, 0x03, //0x00004213 addq $3, %r15 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00004217 movl $3, %eax + //0x0000421c LBB15_25 + 0x4c, 0x89, 0xfb, //0x0000421c movq %r15, %rbx + //0x0000421f LBB15_26 + 0x48, 0x89, 0x5d, 0xd0, //0x0000421f movq %rbx, $-48(%rbp) + 0x49, 0x89, 0xdf, //0x00004223 movq %rbx, %r15 + 0x49, 0x89, 0x06, //0x00004226 movq %rax, (%r14) + 0xe9, 0x5d, 0x01, 0x00, 0x00, //0x00004229 jmp LBB15_55 + //0x0000422e LBB15_30 + 0x49, 0xc7, 0x06, 0x06, 0x00, 0x00, 0x00, //0x0000422e movq $6, (%r14) + 0x4c, 0x8b, 0x7d, 0xd0, //0x00004235 movq $-48(%rbp), %r15 + 0xe9, 0x4d, 0x01, 0x00, 0x00, //0x00004239 jmp LBB15_55 + //0x0000423e LBB15_31 + 0x45, 0x85, 0xff, //0x0000423e testl %r15d, %r15d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004241 movq $-2, %rax + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x00004248 movl $13, %ecx + //0x0000424d LBB15_32 + 0x48, 0x0f, 0x49, 0xc8, //0x0000424d cmovnsq %rax, %rcx + 0x49, 0x89, 0x0e, //0x00004251 movq %rcx, (%r14) + 0x41, 0xc1, 0xff, 0x1f, //0x00004254 sarl $31, %r15d + 0x41, 0xf7, 0xd7, //0x00004258 notl %r15d + 0x4d, 0x63, 0xff, //0x0000425b movslq %r15d, %r15 + 0x4c, 0x03, 0x7d, 0xd0, //0x0000425e addq $-48(%rbp), %r15 + 0xe9, 0x24, 0x01, 0x00, 0x00, //0x00004262 jmp LBB15_55 + //0x00004267 LBB15_33 + 0x48, 0x89, 0x5d, 0xd0, //0x00004267 movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x3e, //0x0000426b movq %r15, (%r14) + 0x49, 0x89, 0xdf, //0x0000426e movq %rbx, %r15 + 0xe9, 0x15, 0x01, 0x00, 0x00, //0x00004271 jmp LBB15_55 + //0x00004276 LBB15_34 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004276 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x0000427d cmpb $97, %cl + 0x0f, 0x85, 0x25, 0xff, 0xff, 0xff, //0x00004280 jne LBB15_21 + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x6c, //0x00004286 cmpb $108, $1(%r12,%r15) + 0x0f, 0x85, 0xaf, 0x00, 0x00, 0x00, //0x0000428c jne LBB15_48 + 0x43, 0x80, 0x7c, 0x3c, 0x02, 0x73, //0x00004292 cmpb $115, $2(%r12,%r15) + 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x00004298 jne LBB15_50 + 0x31, 0xc9, //0x0000429e xorl %ecx, %ecx + 0x43, 0x80, 0x7c, 0x27, 0x03, 0x65, //0x000042a0 cmpb $101, $3(%r15,%r12) + 0x0f, 0x94, 0xc1, //0x000042a6 sete %cl + 0x49, 0x01, 0xcf, //0x000042a9 addq %rcx, %r15 + 0x49, 0x83, 0xc7, 0x03, //0x000042ac addq $3, %r15 + 0x4c, 0x89, 0x7d, 0xd0, //0x000042b0 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x06, //0x000042b4 movq %rax, (%r14) + 0xe9, 0xcf, 0x00, 0x00, 0x00, //0x000042b7 jmp LBB15_55 + //0x000042bc LBB15_38 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000042bc movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x000042c3 cmpb $110, %cl + 0x0f, 0x85, 0x69, 0x00, 0x00, 0x00, //0x000042c6 jne LBB15_47 + 0x43, 0x80, 0x3c, 0x3c, 0x75, //0x000042cc cmpb $117, (%r12,%r15) + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x000042d1 jne LBB15_49 + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x6c, //0x000042d7 cmpb $108, $1(%r12,%r15) + 0x0f, 0x85, 0x5e, 0x00, 0x00, 0x00, //0x000042dd jne LBB15_48 + 0x31, 0xc9, //0x000042e3 xorl %ecx, %ecx + 0x43, 0x80, 0x7c, 0x27, 0x02, 0x6c, //0x000042e5 cmpb $108, $2(%r15,%r12) + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x000042eb jmp LBB15_46 + //0x000042f0 LBB15_42 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000042f0 movq $-2, %rax + 0x80, 0xf9, 0x74, //0x000042f7 cmpb $116, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000042fa jne LBB15_47 + 0x43, 0x80, 0x3c, 0x3c, 0x72, //0x00004300 cmpb $114, (%r12,%r15) + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x00004305 jne LBB15_49 + 0x43, 0x80, 0x7c, 0x3c, 0x01, 0x75, //0x0000430b cmpb $117, $1(%r12,%r15) + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00004311 jne LBB15_48 + 0x31, 0xc9, //0x00004317 xorl %ecx, %ecx + 0x43, 0x80, 0x7c, 0x27, 0x02, 0x65, //0x00004319 cmpb $101, $2(%r15,%r12) + //0x0000431f LBB15_46 + 0x0f, 0x94, 0xc1, //0x0000431f sete %cl + 0x49, 0x01, 0xcf, //0x00004322 addq %rcx, %r15 + 0x49, 0x83, 0xc7, 0x02, //0x00004325 addq $2, %r15 + 0x4c, 0x89, 0x7d, 0xd0, //0x00004329 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x06, //0x0000432d movq %rax, (%r14) + 0xe9, 0x56, 0x00, 0x00, 0x00, //0x00004330 jmp LBB15_55 + //0x00004335 LBB15_47 + 0x49, 0x83, 0xc7, 0xff, //0x00004335 addq $-1, %r15 + 0x49, 0x89, 0x06, //0x00004339 movq %rax, (%r14) + 0xe9, 0x4a, 0x00, 0x00, 0x00, //0x0000433c jmp LBB15_55 + //0x00004341 LBB15_48 + 0x49, 0x83, 0xc7, 0x01, //0x00004341 addq $1, %r15 + //0x00004345 LBB15_49 + 0x4c, 0x89, 0x7d, 0xd0, //0x00004345 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x06, //0x00004349 movq %rax, (%r14) + 0xe9, 0x3a, 0x00, 0x00, 0x00, //0x0000434c jmp LBB15_55 + //0x00004351 LBB15_50 + 0x49, 0x83, 0xc7, 0x02, //0x00004351 addq $2, %r15 + 0x4c, 0x89, 0x7d, 0xd0, //0x00004355 movq %r15, $-48(%rbp) + 0x49, 0x89, 0x06, //0x00004359 movq %rax, (%r14) + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x0000435c jmp LBB15_55 + //0x00004361 LBB15_51 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00004361 movq $-1, %rcx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004368 jmp LBB15_53 + //0x0000436d LBB15_52 + 0x48, 0xf7, 0xd0, //0x0000436d notq %rax + 0x49, 0x01, 0xc7, //0x00004370 addq %rax, %r15 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00004373 movq $-2, %rcx + //0x0000437a LBB15_53 + 0x4d, 0x29, 0xe7, //0x0000437a subq %r12, %r15 + 0x4c, 0x89, 0x7d, 0xd0, //0x0000437d movq %r15, $-48(%rbp) + 0x49, 0x89, 0xcd, //0x00004381 movq %rcx, %r13 + //0x00004384 LBB15_54 + 0x48, 0x8b, 0x45, 0xc8, //0x00004384 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00004388 movq %r13, (%rax) + //0x0000438b LBB15_55 + 0x4c, 0x89, 0xf8, //0x0000438b movq %r15, %rax + 0x48, 0x83, 0xc4, 0x28, //0x0000438e addq $40, %rsp + 0x5b, //0x00004392 popq %rbx + 0x41, 0x5c, //0x00004393 popq %r12 + 0x41, 0x5d, //0x00004395 popq %r13 + 0x41, 0x5e, //0x00004397 popq %r14 + 0x41, 0x5f, //0x00004399 popq %r15 + 0x5d, //0x0000439b popq %rbp + 0xc3, //0x0000439c retq + 0x90, 0x90, 0x90, //0x0000439d .p2align 2, 0x90 + // // .set L15_0_set_9, LBB15_9-LJTI15_0 + // // .set L15_0_set_10, LBB15_10-LJTI15_0 + // // .set L15_0_set_11, LBB15_11-LJTI15_0 + // // .set L15_0_set_13, LBB15_13-LJTI15_0 + // // .set L15_0_set_2, LBB15_2-LJTI15_0 + // // .set L15_0_set_14, LBB15_14-LJTI15_0 + // // .set L15_0_set_15, LBB15_15-LJTI15_0 + // // .set L15_0_set_16, LBB15_16-LJTI15_0 + // // .set L15_0_set_17, LBB15_17-LJTI15_0 + // // .set L15_0_set_22, LBB15_22-LJTI15_0 + // // .set L15_0_set_27, LBB15_27-LJTI15_0 + // // .set L15_0_set_30, LBB15_30-LJTI15_0 + // // .set L15_0_set_31, LBB15_31-LJTI15_0 + //0x000043a0 LJTI15_0 + 0x0a, 0xfd, 0xff, 0xff, //0x000043a0 .long L15_0_set_9 + 0x1a, 0xfd, 0xff, 0xff, //0x000043a4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043a8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043ac .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043b0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043b4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043b8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043bc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043c0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043c4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043c8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043cc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043d0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043d4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043d8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043dc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043e0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043e4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043e8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043ec .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043f0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043f4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043f8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000043fc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004400 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004404 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004408 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000440c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004410 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004414 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004418 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000441c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004420 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004424 .long L15_0_set_10 + 0x2e, 0xfd, 0xff, 0xff, //0x00004428 .long L15_0_set_11 + 0x1a, 0xfd, 0xff, 0xff, //0x0000442c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004430 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004434 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004438 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000443c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004440 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004444 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004448 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000444c .long L15_0_set_10 + 0x84, 0xfd, 0xff, 0xff, //0x00004450 .long L15_0_set_13 + 0x6e, 0xfc, 0xff, 0xff, //0x00004454 .long L15_0_set_2 + 0x1a, 0xfd, 0xff, 0xff, //0x00004458 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000445c .long L15_0_set_10 + 0x6e, 0xfc, 0xff, 0xff, //0x00004460 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004464 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004468 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x0000446c .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004470 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004474 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004478 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x0000447c .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004480 .long L15_0_set_2 + 0x6e, 0xfc, 0xff, 0xff, //0x00004484 .long L15_0_set_2 + 0x98, 0xfd, 0xff, 0xff, //0x00004488 .long L15_0_set_14 + 0x1a, 0xfd, 0xff, 0xff, //0x0000448c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004490 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004494 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004498 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000449c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044a0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044a4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044a8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044ac .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044b0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044b4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044b8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044bc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044c0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044c4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044c8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044cc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044d0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044d4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044d8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044dc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044e0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044e4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044e8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044ec .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044f0 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044f4 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044f8 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x000044fc .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004500 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004504 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004508 .long L15_0_set_10 + 0xac, 0xfd, 0xff, 0xff, //0x0000450c .long L15_0_set_15 + 0x1a, 0xfd, 0xff, 0xff, //0x00004510 .long L15_0_set_10 + 0xbc, 0xfd, 0xff, 0xff, //0x00004514 .long L15_0_set_16 + 0x1a, 0xfd, 0xff, 0xff, //0x00004518 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000451c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004520 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004524 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004528 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000452c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004530 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004534 .long L15_0_set_10 + 0xd0, 0xfd, 0xff, 0xff, //0x00004538 .long L15_0_set_17 + 0x1a, 0xfd, 0xff, 0xff, //0x0000453c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004540 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004544 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004548 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000454c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004550 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004554 .long L15_0_set_10 + 0x13, 0xfe, 0xff, 0xff, //0x00004558 .long L15_0_set_22 + 0x1a, 0xfd, 0xff, 0xff, //0x0000455c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004560 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004564 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004568 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000456c .long L15_0_set_10 + 0x4a, 0xfe, 0xff, 0xff, //0x00004570 .long L15_0_set_27 + 0x1a, 0xfd, 0xff, 0xff, //0x00004574 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004578 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x0000457c .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004580 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004584 .long L15_0_set_10 + 0x1a, 0xfd, 0xff, 0xff, //0x00004588 .long L15_0_set_10 + 0x8e, 0xfe, 0xff, 0xff, //0x0000458c .long L15_0_set_30 + 0x1a, 0xfd, 0xff, 0xff, //0x00004590 .long L15_0_set_10 + 0x9e, 0xfe, 0xff, 0xff, //0x00004594 .long L15_0_set_31 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004598 .p2align 5, 0x00 + //0x000045a0 LCPI16_0 + 0x20, //0x000045a0 .byte 32 + 0x00, //0x000045a1 .byte 0 + 0x00, //0x000045a2 .byte 0 + 0x00, //0x000045a3 .byte 0 + 0x00, //0x000045a4 .byte 0 + 0x00, //0x000045a5 .byte 0 + 0x00, //0x000045a6 .byte 0 + 0x00, //0x000045a7 .byte 0 + 0x00, //0x000045a8 .byte 0 + 0x09, //0x000045a9 .byte 9 + 0x0a, //0x000045aa .byte 10 + 0x00, //0x000045ab .byte 0 + 0x00, //0x000045ac .byte 0 + 0x0d, //0x000045ad .byte 13 + 0x00, //0x000045ae .byte 0 + 0x00, //0x000045af .byte 0 + 0x20, //0x000045b0 .byte 32 + 0x00, //0x000045b1 .byte 0 + 0x00, //0x000045b2 .byte 0 + 0x00, //0x000045b3 .byte 0 + 0x00, //0x000045b4 .byte 0 + 0x00, //0x000045b5 .byte 0 + 0x00, //0x000045b6 .byte 0 + 0x00, //0x000045b7 .byte 0 + 0x00, //0x000045b8 .byte 0 + 0x09, //0x000045b9 .byte 9 + 0x0a, //0x000045ba .byte 10 + 0x00, //0x000045bb .byte 0 + 0x00, //0x000045bc .byte 0 + 0x0d, //0x000045bd .byte 13 + 0x00, //0x000045be .byte 0 + 0x00, //0x000045bf .byte 0 + //0x000045c0 .p2align 4, 0x90 + //0x000045c0 _advance_ns + 0x55, //0x000045c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000045c1 movq %rsp, %rbp + 0x4c, 0x8b, 0x02, //0x000045c4 movq (%rdx), %r8 + 0x49, 0x39, 0xf0, //0x000045c7 cmpq %rsi, %r8 + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x000045ca jae LBB16_6 + 0x42, 0x8a, 0x04, 0x07, //0x000045d0 movb (%rdi,%r8), %al + 0x3c, 0x0d, //0x000045d4 cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x000045d6 je LBB16_6 + 0x3c, 0x20, //0x000045dc cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000045de je LBB16_6 + 0x04, 0xf7, //0x000045e4 addb $-9, %al + 0x3c, 0x01, //0x000045e6 cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000045e8 jbe LBB16_6 + 0x4d, 0x89, 0xc3, //0x000045ee movq %r8, %r11 + 0xe9, 0x76, 0x01, 0x00, 0x00, //0x000045f1 jmp LBB16_5 + //0x000045f6 LBB16_6 + 0x4d, 0x8d, 0x58, 0x01, //0x000045f6 leaq $1(%r8), %r11 + 0x49, 0x39, 0xf3, //0x000045fa cmpq %rsi, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x000045fd jae LBB16_10 + 0x42, 0x8a, 0x0c, 0x1f, //0x00004603 movb (%rdi,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00004607 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x0000460a je LBB16_10 + 0x80, 0xf9, 0x20, //0x00004610 cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004613 je LBB16_10 + 0x80, 0xc1, 0xf7, //0x00004619 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000461c cmpb $1, %cl + 0x0f, 0x87, 0x47, 0x01, 0x00, 0x00, //0x0000461f ja LBB16_5 + //0x00004625 LBB16_10 + 0x4d, 0x8d, 0x58, 0x02, //0x00004625 leaq $2(%r8), %r11 + 0x49, 0x39, 0xf3, //0x00004629 cmpq %rsi, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000462c jae LBB16_14 + 0x42, 0x8a, 0x0c, 0x1f, //0x00004632 movb (%rdi,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00004636 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004639 je LBB16_14 + 0x80, 0xf9, 0x20, //0x0000463f cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004642 je LBB16_14 + 0x80, 0xc1, 0xf7, //0x00004648 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000464b cmpb $1, %cl + 0x0f, 0x87, 0x18, 0x01, 0x00, 0x00, //0x0000464e ja LBB16_5 + //0x00004654 LBB16_14 + 0x4d, 0x8d, 0x58, 0x03, //0x00004654 leaq $3(%r8), %r11 + 0x49, 0x39, 0xf3, //0x00004658 cmpq %rsi, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x0000465b jae LBB16_18 + 0x42, 0x8a, 0x0c, 0x1f, //0x00004661 movb (%rdi,%r11), %cl + 0x80, 0xf9, 0x0d, //0x00004665 cmpb $13, %cl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00004668 je LBB16_18 + 0x80, 0xf9, 0x20, //0x0000466e cmpb $32, %cl + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00004671 je LBB16_18 + 0x80, 0xc1, 0xf7, //0x00004677 addb $-9, %cl + 0x80, 0xf9, 0x01, //0x0000467a cmpb $1, %cl + 0x0f, 0x87, 0xe9, 0x00, 0x00, 0x00, //0x0000467d ja LBB16_5 + //0x00004683 LBB16_18 + 0x4d, 0x8d, 0x58, 0x04, //0x00004683 leaq $4(%r8), %r11 + 0x49, 0x39, 0xf3, //0x00004687 cmpq %rsi, %r11 + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x0000468a jae LBB16_19 + 0x48, 0x89, 0xf1, //0x00004690 movq %rsi, %rcx + 0x4c, 0x29, 0xd9, //0x00004693 subq %r11, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x00004696 cmpq $32, %rcx + 0x0f, 0x82, 0xf8, 0x00, 0x00, 0x00, //0x0000469a jb LBB16_21 + 0x48, 0xc7, 0xc1, 0xfc, 0xff, 0xff, 0xff, //0x000046a0 movq $-4, %rcx + 0x4c, 0x29, 0xc1, //0x000046a7 subq %r8, %rcx + 0xc5, 0xfd, 0x6f, 0x05, 0xee, 0xfe, 0xff, 0xff, //0x000046aa vmovdqa $-274(%rip), %ymm0 /* LCPI16_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000046b2 .p2align 4, 0x90 + //0x000046c0 LBB16_30 + 0xc4, 0xa1, 0x7e, 0x6f, 0x0c, 0x1f, //0x000046c0 vmovdqu (%rdi,%r11), %ymm1 + 0xc4, 0xe2, 0x7d, 0x00, 0xd1, //0x000046c6 vpshufb %ymm1, %ymm0, %ymm2 + 0xc5, 0xf5, 0x74, 0xca, //0x000046cb vpcmpeqb %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xd7, 0xc1, //0x000046cf vpmovmskb %ymm1, %eax + 0x83, 0xf8, 0xff, //0x000046d3 cmpl $-1, %eax + 0x0f, 0x85, 0x7e, 0x00, 0x00, 0x00, //0x000046d6 jne LBB16_31 + 0x49, 0x83, 0xc3, 0x20, //0x000046dc addq $32, %r11 + 0x48, 0x8d, 0x04, 0x0e, //0x000046e0 leaq (%rsi,%rcx), %rax + 0x48, 0x83, 0xc0, 0xe0, //0x000046e4 addq $-32, %rax + 0x48, 0x83, 0xc1, 0xe0, //0x000046e8 addq $-32, %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x000046ec cmpq $31, %rax + 0x0f, 0x87, 0xca, 0xff, 0xff, 0xff, //0x000046f0 ja LBB16_30 + 0x49, 0x89, 0xfb, //0x000046f6 movq %rdi, %r11 + 0x49, 0x29, 0xcb, //0x000046f9 subq %rcx, %r11 + 0x48, 0x01, 0xf1, //0x000046fc addq %rsi, %rcx + 0x48, 0x85, 0xc9, //0x000046ff testq %rcx, %rcx + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x00004702 je LBB16_34 + //0x00004708 LBB16_25 + 0x4d, 0x8d, 0x0c, 0x0b, //0x00004708 leaq (%r11,%rcx), %r9 + 0x45, 0x31, 0xc0, //0x0000470c xorl %r8d, %r8d + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000470f movabsq $4294977024, %r10 + //0x00004719 LBB16_26 + 0x43, 0x0f, 0xbe, 0x04, 0x03, //0x00004719 movsbl (%r11,%r8), %eax + 0x83, 0xf8, 0x20, //0x0000471e cmpl $32, %eax + 0x0f, 0x87, 0x58, 0x00, 0x00, 0x00, //0x00004721 ja LBB16_28 + 0x49, 0x0f, 0xa3, 0xc2, //0x00004727 btq %rax, %r10 + 0x0f, 0x83, 0x4e, 0x00, 0x00, 0x00, //0x0000472b jae LBB16_28 + 0x49, 0x83, 0xc0, 0x01, //0x00004731 addq $1, %r8 + 0x4c, 0x39, 0xc1, //0x00004735 cmpq %r8, %rcx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00004738 jne LBB16_26 + 0x4d, 0x89, 0xcb, //0x0000473e movq %r9, %r11 + //0x00004741 LBB16_34 + 0x49, 0x29, 0xfb, //0x00004741 subq %rdi, %r11 + 0x49, 0x39, 0xf3, //0x00004744 cmpq %rsi, %r11 + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00004747 jb LBB16_5 + 0xe9, 0x3c, 0x00, 0x00, 0x00, //0x0000474d jmp LBB16_36 + //0x00004752 LBB16_19 + 0x4c, 0x89, 0x1a, //0x00004752 movq %r11, (%rdx) + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00004755 jmp LBB16_36 + //0x0000475a LBB16_31 + 0xf7, 0xd0, //0x0000475a notl %eax + 0x44, 0x0f, 0xbc, 0xd8, //0x0000475c bsfl %eax, %r11d + 0x49, 0x29, 0xcb, //0x00004760 subq %rcx, %r11 + 0x49, 0x39, 0xf3, //0x00004763 cmpq %rsi, %r11 + 0x0f, 0x83, 0x22, 0x00, 0x00, 0x00, //0x00004766 jae LBB16_36 + //0x0000476c LBB16_5 + 0x49, 0x8d, 0x43, 0x01, //0x0000476c leaq $1(%r11), %rax + 0x48, 0x89, 0x02, //0x00004770 movq %rax, (%rdx) + 0x42, 0x8a, 0x04, 0x1f, //0x00004773 movb (%rdi,%r11), %al + 0x0f, 0xbe, 0xc0, //0x00004777 movsbl %al, %eax + 0x5d, //0x0000477a popq %rbp + 0xc5, 0xf8, 0x77, //0x0000477b vzeroupper + 0xc3, //0x0000477e retq + //0x0000477f LBB16_28 + 0x49, 0x29, 0xfb, //0x0000477f subq %rdi, %r11 + 0x4d, 0x01, 0xc3, //0x00004782 addq %r8, %r11 + 0x49, 0x39, 0xf3, //0x00004785 cmpq %rsi, %r11 + 0x0f, 0x82, 0xde, 0xff, 0xff, 0xff, //0x00004788 jb LBB16_5 + //0x0000478e LBB16_36 + 0x31, 0xc0, //0x0000478e xorl %eax, %eax + 0x0f, 0xbe, 0xc0, //0x00004790 movsbl %al, %eax + 0x5d, //0x00004793 popq %rbp + 0xc5, 0xf8, 0x77, //0x00004794 vzeroupper + 0xc3, //0x00004797 retq + //0x00004798 LBB16_21 + 0x49, 0x01, 0xfb, //0x00004798 addq %rdi, %r11 + 0x48, 0x85, 0xc9, //0x0000479b testq %rcx, %rcx + 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x0000479e jne LBB16_25 + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000047a4 jmp LBB16_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047a9 .p2align 4, 0x90 + //0x000047b0 _vstring + 0x55, //0x000047b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000047b1 movq %rsp, %rbp + 0x41, 0x57, //0x000047b4 pushq %r15 + 0x41, 0x56, //0x000047b6 pushq %r14 + 0x41, 0x54, //0x000047b8 pushq %r12 + 0x53, //0x000047ba pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x000047bb subq $16, %rsp + 0x49, 0x89, 0xd6, //0x000047bf movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x000047c2 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x000047c5 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x000047c8 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x000047d0 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x000047d3 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x000047d7 movq %r12, %rsi + 0xe8, 0xc1, 0x00, 0x00, 0x00, //0x000047da callq _advance_string + 0x48, 0x85, 0xc0, //0x000047df testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x000047e2 js LBB17_1 + 0x48, 0x89, 0x03, //0x000047e8 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x000047eb movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x000047ef movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x000047f3 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000047f6 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x000047fd cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00004801 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00004805 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x0000480a jmp LBB17_3 + //0x0000480f LBB17_1 + 0x49, 0x8b, 0x4f, 0x08, //0x0000480f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x00004813 movq %rcx, (%rbx) + //0x00004816 LBB17_3 + 0x49, 0x89, 0x06, //0x00004816 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00004819 addq $16, %rsp + 0x5b, //0x0000481d popq %rbx + 0x41, 0x5c, //0x0000481e popq %r12 + 0x41, 0x5e, //0x00004820 popq %r14 + 0x41, 0x5f, //0x00004822 popq %r15 + 0x5d, //0x00004824 popq %rbp + 0xc3, //0x00004825 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, //0x00004826 .p2align 5, 0x00 + //0x00004840 LCPI18_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00004840 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00004850 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00004860 LCPI18_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00004860 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00004870 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00004880 LCPI18_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00004880 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00004890 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000048a0 .p2align 4, 0x90 + //0x000048a0 _advance_string + 0xf6, 0xc1, 0x20, //0x000048a0 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x000048a3 jne LBB18_2 + 0xe9, 0x92, 0x57, 0x00, 0x00, //0x000048a9 jmp _advance_string_default + //0x000048ae LBB18_2 + 0x55, //0x000048ae pushq %rbp + 0x48, 0x89, 0xe5, //0x000048af movq %rsp, %rbp + 0x41, 0x57, //0x000048b2 pushq %r15 + 0x41, 0x56, //0x000048b4 pushq %r14 + 0x41, 0x55, //0x000048b6 pushq %r13 + 0x41, 0x54, //0x000048b8 pushq %r12 + 0x53, //0x000048ba pushq %rbx + 0x4c, 0x8b, 0x7f, 0x08, //0x000048bb movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x000048bf subq %rsi, %r15 + 0x0f, 0x84, 0xc1, 0x03, 0x00, 0x00, //0x000048c2 je LBB18_27 + 0x4c, 0x8b, 0x1f, //0x000048c8 movq (%rdi), %r11 + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000048cb movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x000048d2 cmpq $64, %r15 + 0x0f, 0x82, 0x09, 0x02, 0x00, 0x00, //0x000048d6 jb LBB18_28 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000048dc movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x000048e3 xorl %r14d, %r14d + 0xc5, 0xfd, 0x6f, 0x05, 0x52, 0xff, 0xff, 0xff, //0x000048e6 vmovdqa $-174(%rip), %ymm0 /* LCPI18_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x6a, 0xff, 0xff, 0xff, //0x000048ee vmovdqa $-150(%rip), %ymm1 /* LCPI18_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x82, 0xff, 0xff, 0xff, //0x000048f6 vmovdqa $-126(%rip), %ymm2 /* LCPI18_2+0(%rip) */ + 0xc5, 0xe5, 0x76, 0xdb, //0x000048fe vpcmpeqd %ymm3, %ymm3, %ymm3 + 0x49, 0xb9, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004902 movabsq $-6148914691236517206, %r9 + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000490c movabsq $6148914691236517205, %r10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004916 .p2align 4, 0x90 + //0x00004920 LBB18_5 + 0xc4, 0xc1, 0x7e, 0x6f, 0x24, 0x33, //0x00004920 vmovdqu (%r11,%rsi), %ymm4 + 0xc4, 0xc1, 0x7e, 0x6f, 0x6c, 0x33, 0x20, //0x00004926 vmovdqu $32(%r11,%rsi), %ymm5 + 0xc5, 0xdd, 0x74, 0xf0, //0x0000492d vpcmpeqb %ymm0, %ymm4, %ymm6 + 0xc5, 0x7d, 0xd7, 0xe6, //0x00004931 vpmovmskb %ymm6, %r12d + 0xc5, 0xd5, 0x74, 0xf0, //0x00004935 vpcmpeqb %ymm0, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xce, //0x00004939 vpmovmskb %ymm6, %ecx + 0xc5, 0xdd, 0x74, 0xf1, //0x0000493d vpcmpeqb %ymm1, %ymm4, %ymm6 + 0xc5, 0xfd, 0xd7, 0xc6, //0x00004941 vpmovmskb %ymm6, %eax + 0xc5, 0xd5, 0x74, 0xf1, //0x00004945 vpcmpeqb %ymm1, %ymm5, %ymm6 + 0xc5, 0xfd, 0xd7, 0xde, //0x00004949 vpmovmskb %ymm6, %ebx + 0xc5, 0xed, 0x64, 0xf5, //0x0000494d vpcmpgtb %ymm5, %ymm2, %ymm6 + 0xc5, 0xd5, 0x64, 0xeb, //0x00004951 vpcmpgtb %ymm3, %ymm5, %ymm5 + 0xc5, 0xcd, 0xdb, 0xed, //0x00004955 vpand %ymm5, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00004959 vpmovmskb %ymm5, %edi + 0x48, 0xc1, 0xe1, 0x20, //0x0000495d shlq $32, %rcx + 0x49, 0x09, 0xcc, //0x00004961 orq %rcx, %r12 + 0x48, 0xc1, 0xe3, 0x20, //0x00004964 shlq $32, %rbx + 0x48, 0xc1, 0xe7, 0x20, //0x00004968 shlq $32, %rdi + 0x48, 0x09, 0xd8, //0x0000496c orq %rbx, %rax + 0x0f, 0x85, 0x48, 0x00, 0x00, 0x00, //0x0000496f jne LBB18_11 + 0x4d, 0x85, 0xf6, //0x00004975 testq %r14, %r14 + 0x0f, 0x85, 0x53, 0x00, 0x00, 0x00, //0x00004978 jne LBB18_13 + 0x45, 0x31, 0xf6, //0x0000497e xorl %r14d, %r14d + //0x00004981 LBB18_8 + 0xc5, 0xed, 0x64, 0xec, //0x00004981 vpcmpgtb %ymm4, %ymm2, %ymm5 + 0xc5, 0xdd, 0x64, 0xe3, //0x00004985 vpcmpgtb %ymm3, %ymm4, %ymm4 + 0xc5, 0xd5, 0xdb, 0xe4, //0x00004989 vpand %ymm4, %ymm5, %ymm4 + 0xc5, 0xfd, 0xd7, 0xc4, //0x0000498d vpmovmskb %ymm4, %eax + 0x48, 0x09, 0xc7, //0x00004991 orq %rax, %rdi + 0x4d, 0x85, 0xe4, //0x00004994 testq %r12, %r12 + 0x0f, 0x85, 0x6e, 0x00, 0x00, 0x00, //0x00004997 jne LBB18_14 + 0x48, 0x85, 0xff, //0x0000499d testq %rdi, %rdi + 0x0f, 0x85, 0xb4, 0x00, 0x00, 0x00, //0x000049a0 jne LBB18_20 + 0x49, 0x83, 0xc7, 0xc0, //0x000049a6 addq $-64, %r15 + 0x48, 0x83, 0xc6, 0x40, //0x000049aa addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x000049ae cmpq $63, %r15 + 0x0f, 0x87, 0x68, 0xff, 0xff, 0xff, //0x000049b2 ja LBB18_5 + 0xe9, 0xbd, 0x00, 0x00, 0x00, //0x000049b8 jmp LBB18_22 + //0x000049bd LBB18_11 + 0x49, 0x83, 0xf8, 0xff, //0x000049bd cmpq $-1, %r8 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x000049c1 jne LBB18_13 + 0x4c, 0x0f, 0xbc, 0xc0, //0x000049c7 bsfq %rax, %r8 + 0x49, 0x01, 0xf0, //0x000049cb addq %rsi, %r8 + 0x4c, 0x89, 0x02, //0x000049ce movq %r8, (%rdx) + //0x000049d1 LBB18_13 + 0x4c, 0x89, 0xf1, //0x000049d1 movq %r14, %rcx + 0x48, 0xf7, 0xd1, //0x000049d4 notq %rcx + 0x48, 0x21, 0xc1, //0x000049d7 andq %rax, %rcx + 0x4c, 0x8d, 0x2c, 0x09, //0x000049da leaq (%rcx,%rcx), %r13 + 0x4d, 0x09, 0xf5, //0x000049de orq %r14, %r13 + 0x4c, 0x89, 0xeb, //0x000049e1 movq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x000049e4 notq %rbx + 0x48, 0x21, 0xc3, //0x000049e7 andq %rax, %rbx + 0x4c, 0x21, 0xcb, //0x000049ea andq %r9, %rbx + 0x45, 0x31, 0xf6, //0x000049ed xorl %r14d, %r14d + 0x48, 0x01, 0xcb, //0x000049f0 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc6, //0x000049f3 setb %r14b + 0x48, 0x01, 0xdb, //0x000049f7 addq %rbx, %rbx + 0x4c, 0x31, 0xd3, //0x000049fa xorq %r10, %rbx + 0x4c, 0x21, 0xeb, //0x000049fd andq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x00004a00 notq %rbx + 0x49, 0x21, 0xdc, //0x00004a03 andq %rbx, %r12 + 0xe9, 0x76, 0xff, 0xff, 0xff, //0x00004a06 jmp LBB18_8 + //0x00004a0b LBB18_14 + 0x49, 0x0f, 0xbc, 0xc4, //0x00004a0b bsfq %r12, %rax + 0x48, 0x85, 0xff, //0x00004a0f testq %rdi, %rdi + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00004a12 je LBB18_18 + 0x48, 0x0f, 0xbc, 0xcf, //0x00004a18 bsfq %rdi, %rcx + 0x48, 0x39, 0xc1, //0x00004a1c cmpq %rax, %rcx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00004a1f jb LBB18_19 + //0x00004a25 LBB18_16 + 0x48, 0x01, 0xf0, //0x00004a25 addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x00004a28 addq $1, %rax + //0x00004a2c LBB18_17 + 0x5b, //0x00004a2c popq %rbx + 0x41, 0x5c, //0x00004a2d popq %r12 + 0x41, 0x5d, //0x00004a2f popq %r13 + 0x41, 0x5e, //0x00004a31 popq %r14 + 0x41, 0x5f, //0x00004a33 popq %r15 + 0x5d, //0x00004a35 popq %rbp + 0xc5, 0xf8, 0x77, //0x00004a36 vzeroupper + 0xc3, //0x00004a39 retq + //0x00004a3a LBB18_18 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00004a3a movl $64, %ecx + 0x48, 0x39, 0xc1, //0x00004a3f cmpq %rax, %rcx + 0x0f, 0x83, 0xdd, 0xff, 0xff, 0xff, //0x00004a42 jae LBB18_16 + //0x00004a48 LBB18_19 + 0x48, 0x01, 0xf1, //0x00004a48 addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00004a4b movq %rcx, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004a4e movq $-2, %rax + 0xe9, 0xd2, 0xff, 0xff, 0xff, //0x00004a55 jmp LBB18_17 + //0x00004a5a LBB18_20 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004a5a movq $-2, %rax + 0x49, 0x83, 0xf8, 0xff, //0x00004a61 cmpq $-1, %r8 + 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00004a65 jne LBB18_17 + 0x48, 0x0f, 0xbc, 0xcf, //0x00004a6b bsfq %rdi, %rcx + 0x48, 0x01, 0xf1, //0x00004a6f addq %rsi, %rcx + 0x48, 0x89, 0x0a, //0x00004a72 movq %rcx, (%rdx) + 0xe9, 0xb2, 0xff, 0xff, 0xff, //0x00004a75 jmp LBB18_17 + //0x00004a7a LBB18_22 + 0x4c, 0x01, 0xde, //0x00004a7a addq %r11, %rsi + 0x49, 0x83, 0xff, 0x20, //0x00004a7d cmpq $32, %r15 + 0x0f, 0x82, 0x16, 0x01, 0x00, 0x00, //0x00004a81 jb LBB18_38 + //0x00004a87 LBB18_23 + 0xc5, 0xfe, 0x6f, 0x06, //0x00004a87 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0xad, 0xfd, 0xff, 0xff, //0x00004a8b vpcmpeqb $-595(%rip), %ymm0, %ymm1 /* LCPI18_0+0(%rip) */ + 0xc5, 0xfd, 0x74, 0x15, 0xc5, 0xfd, 0xff, 0xff, //0x00004a93 vpcmpeqb $-571(%rip), %ymm0, %ymm2 /* LCPI18_1+0(%rip) */ + 0xc5, 0x7d, 0xd7, 0xc9, //0x00004a9b vpmovmskb %ymm1, %r9d + 0xc5, 0xfd, 0xd7, 0xc2, //0x00004a9f vpmovmskb %ymm2, %eax + 0xc5, 0xfd, 0x6f, 0x0d, 0xd5, 0xfd, 0xff, 0xff, //0x00004aa3 vmovdqa $-555(%rip), %ymm1 /* LCPI18_2+0(%rip) */ + 0xc5, 0xf5, 0x64, 0xc8, //0x00004aab vpcmpgtb %ymm0, %ymm1, %ymm1 + 0xc5, 0xed, 0x76, 0xd2, //0x00004aaf vpcmpeqd %ymm2, %ymm2, %ymm2 + 0xc5, 0xfd, 0x64, 0xc2, //0x00004ab3 vpcmpgtb %ymm2, %ymm0, %ymm0 + 0xc5, 0xf5, 0xdb, 0xc0, //0x00004ab7 vpand %ymm0, %ymm1, %ymm0 + 0x85, 0xc0, //0x00004abb testl %eax, %eax + 0x0f, 0x85, 0x3e, 0x00, 0x00, 0x00, //0x00004abd jne LBB18_29 + 0x4d, 0x85, 0xf6, //0x00004ac3 testq %r14, %r14 + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x00004ac6 jne LBB18_31 + 0x45, 0x31, 0xf6, //0x00004acc xorl %r14d, %r14d + 0xc5, 0xfd, 0xd7, 0xd8, //0x00004acf vpmovmskb %ymm0, %ebx + 0x4d, 0x85, 0xc9, //0x00004ad3 testq %r9, %r9 + 0x0f, 0x84, 0x7c, 0x00, 0x00, 0x00, //0x00004ad6 je LBB18_32 + //0x00004adc LBB18_26 + 0x4d, 0x0f, 0xbc, 0xd1, //0x00004adc bsfq %r9, %r10 + 0xe9, 0x79, 0x00, 0x00, 0x00, //0x00004ae0 jmp LBB18_33 + //0x00004ae5 LBB18_28 + 0x4c, 0x01, 0xde, //0x00004ae5 addq %r11, %rsi + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004ae8 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x00004aef xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x00004af2 cmpq $32, %r15 + 0x0f, 0x83, 0x8b, 0xff, 0xff, 0xff, //0x00004af6 jae LBB18_23 + 0xe9, 0x9c, 0x00, 0x00, 0x00, //0x00004afc jmp LBB18_38 + //0x00004b01 LBB18_29 + 0x49, 0x83, 0xf8, 0xff, //0x00004b01 cmpq $-1, %r8 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00004b05 jne LBB18_31 + 0x48, 0x89, 0xf1, //0x00004b0b movq %rsi, %rcx + 0x4c, 0x29, 0xd9, //0x00004b0e subq %r11, %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x00004b11 bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x00004b15 addq %rcx, %r8 + 0x4c, 0x89, 0x02, //0x00004b18 movq %r8, (%rdx) + //0x00004b1b LBB18_31 + 0x44, 0x89, 0xf1, //0x00004b1b movl %r14d, %ecx + 0xf7, 0xd1, //0x00004b1e notl %ecx + 0x21, 0xc1, //0x00004b20 andl %eax, %ecx + 0x8d, 0x3c, 0x09, //0x00004b22 leal (%rcx,%rcx), %edi + 0x41, 0x8d, 0x1c, 0x4e, //0x00004b25 leal (%r14,%rcx,2), %ebx + 0xf7, 0xd7, //0x00004b29 notl %edi + 0x21, 0xc7, //0x00004b2b andl %eax, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00004b2d andl $-1431655766, %edi + 0x45, 0x31, 0xf6, //0x00004b33 xorl %r14d, %r14d + 0x01, 0xcf, //0x00004b36 addl %ecx, %edi + 0x41, 0x0f, 0x92, 0xc6, //0x00004b38 setb %r14b + 0x01, 0xff, //0x00004b3c addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00004b3e xorl $1431655765, %edi + 0x21, 0xdf, //0x00004b44 andl %ebx, %edi + 0xf7, 0xd7, //0x00004b46 notl %edi + 0x41, 0x21, 0xf9, //0x00004b48 andl %edi, %r9d + 0xc5, 0xfd, 0xd7, 0xd8, //0x00004b4b vpmovmskb %ymm0, %ebx + 0x4d, 0x85, 0xc9, //0x00004b4f testq %r9, %r9 + 0x0f, 0x85, 0x84, 0xff, 0xff, 0xff, //0x00004b52 jne LBB18_26 + //0x00004b58 LBB18_32 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00004b58 movl $64, %r10d + //0x00004b5e LBB18_33 + 0x0f, 0xbc, 0xfb, //0x00004b5e bsfl %ebx, %edi + 0x85, 0xdb, //0x00004b61 testl %ebx, %ebx + 0xb8, 0x40, 0x00, 0x00, 0x00, //0x00004b63 movl $64, %eax + 0x0f, 0x45, 0xc7, //0x00004b68 cmovnel %edi, %eax + 0x4d, 0x85, 0xc9, //0x00004b6b testq %r9, %r9 + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x00004b6e je LBB18_36 + 0x4c, 0x29, 0xde, //0x00004b74 subq %r11, %rsi + 0x49, 0x39, 0xc2, //0x00004b77 cmpq %rax, %r10 + 0x0f, 0x87, 0xae, 0x00, 0x00, 0x00, //0x00004b7a ja LBB18_49 + 0x4a, 0x8d, 0x04, 0x16, //0x00004b80 leaq (%rsi,%r10), %rax + 0x48, 0x83, 0xc0, 0x01, //0x00004b84 addq $1, %rax + 0xe9, 0x9f, 0xfe, 0xff, 0xff, //0x00004b88 jmp LBB18_17 + //0x00004b8d LBB18_36 + 0x85, 0xdb, //0x00004b8d testl %ebx, %ebx + 0x0f, 0x85, 0xa1, 0x00, 0x00, 0x00, //0x00004b8f jne LBB18_50 + 0x48, 0x83, 0xc6, 0x20, //0x00004b95 addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00004b99 addq $-32, %r15 + //0x00004b9d LBB18_38 + 0x4d, 0x85, 0xf6, //0x00004b9d testq %r14, %r14 + 0x0f, 0x85, 0xa7, 0x00, 0x00, 0x00, //0x00004ba0 jne LBB18_51 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004ba6 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00004bad testq %r15, %r15 + 0x0f, 0x84, 0x76, 0xfe, 0xff, 0xff, //0x00004bb0 je LBB18_17 + //0x00004bb6 LBB18_40 + 0x0f, 0xb6, 0x1e, //0x00004bb6 movzbl (%rsi), %ebx + 0x80, 0xfb, 0x22, //0x00004bb9 cmpb $34, %bl + 0x0f, 0x84, 0x5d, 0x00, 0x00, 0x00, //0x00004bbc je LBB18_48 + 0x80, 0xfb, 0x5c, //0x00004bc2 cmpb $92, %bl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00004bc5 je LBB18_45 + 0x80, 0xfb, 0x1f, //0x00004bcb cmpb $31, %bl + 0x0f, 0x86, 0xc1, 0x00, 0x00, 0x00, //0x00004bce jbe LBB18_55 + 0x48, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004bd4 movq $-1, %rdi + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004bdb movl $1, %ebx + //0x00004be0 LBB18_44 + 0x48, 0x01, 0xde, //0x00004be0 addq %rbx, %rsi + 0x49, 0x01, 0xff, //0x00004be3 addq %rdi, %r15 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00004be6 jne LBB18_40 + 0xe9, 0x3b, 0xfe, 0xff, 0xff, //0x00004bec jmp LBB18_17 + //0x00004bf1 LBB18_45 + 0x49, 0x83, 0xff, 0x01, //0x00004bf1 cmpq $1, %r15 + 0x0f, 0x84, 0x31, 0xfe, 0xff, 0xff, //0x00004bf5 je LBB18_17 + 0x48, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004bfb movq $-2, %rdi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00004c02 movl $2, %ebx + 0x49, 0x83, 0xf8, 0xff, //0x00004c07 cmpq $-1, %r8 + 0x0f, 0x85, 0xcf, 0xff, 0xff, 0xff, //0x00004c0b jne LBB18_44 + 0x49, 0x89, 0xf0, //0x00004c11 movq %rsi, %r8 + 0x4d, 0x29, 0xd8, //0x00004c14 subq %r11, %r8 + 0x4c, 0x89, 0x02, //0x00004c17 movq %r8, (%rdx) + 0xe9, 0xc1, 0xff, 0xff, 0xff, //0x00004c1a jmp LBB18_44 + //0x00004c1f LBB18_48 + 0x4c, 0x29, 0xde, //0x00004c1f subq %r11, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00004c22 addq $1, %rsi + 0x48, 0x89, 0xf0, //0x00004c26 movq %rsi, %rax + 0xe9, 0xfe, 0xfd, 0xff, 0xff, //0x00004c29 jmp LBB18_17 + //0x00004c2e LBB18_49 + 0x48, 0x01, 0xc6, //0x00004c2e addq %rax, %rsi + 0xe9, 0x62, 0x00, 0x00, 0x00, //0x00004c31 jmp LBB18_56 + //0x00004c36 LBB18_50 + 0x4c, 0x29, 0xde, //0x00004c36 subq %r11, %rsi + 0x89, 0xf8, //0x00004c39 movl %edi, %eax + 0x48, 0x01, 0xf0, //0x00004c3b addq %rsi, %rax + 0x48, 0x89, 0x02, //0x00004c3e movq %rax, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c41 movq $-2, %rax + 0xe9, 0xdf, 0xfd, 0xff, 0xff, //0x00004c48 jmp LBB18_17 + //0x00004c4d LBB18_51 + 0x4d, 0x85, 0xff, //0x00004c4d testq %r15, %r15 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00004c50 je LBB18_27 + 0x49, 0x83, 0xf8, 0xff, //0x00004c56 cmpq $-1, %r8 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00004c5a jne LBB18_54 + 0x4d, 0x89, 0xd8, //0x00004c60 movq %r11, %r8 + 0x49, 0xf7, 0xd0, //0x00004c63 notq %r8 + 0x49, 0x01, 0xf0, //0x00004c66 addq %rsi, %r8 + 0x4c, 0x89, 0x02, //0x00004c69 movq %r8, (%rdx) + //0x00004c6c LBB18_54 + 0x48, 0x83, 0xc6, 0x01, //0x00004c6c addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x00004c70 addq $-1, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004c74 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00004c7b testq %r15, %r15 + 0x0f, 0x85, 0x32, 0xff, 0xff, 0xff, //0x00004c7e jne LBB18_40 + 0xe9, 0xa3, 0xfd, 0xff, 0xff, //0x00004c84 jmp LBB18_17 + //0x00004c89 LBB18_27 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00004c89 movq $-1, %rax + 0xe9, 0x97, 0xfd, 0xff, 0xff, //0x00004c90 jmp LBB18_17 + //0x00004c95 LBB18_55 + 0x4c, 0x29, 0xde, //0x00004c95 subq %r11, %rsi + //0x00004c98 LBB18_56 + 0x48, 0x89, 0x32, //0x00004c98 movq %rsi, (%rdx) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004c9b movq $-2, %rax + 0xe9, 0x85, 0xfd, 0xff, 0xff, //0x00004ca2 jmp LBB18_17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004ca7 .p2align 4, 0x00 + //0x00004cb0 LCPI19_0 + 0x00, 0x00, 0x30, 0x43, //0x00004cb0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00004cb4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00004cb8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00004cbc .long 0 + //0x00004cc0 LCPI19_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00004cc0 .quad 0x4330000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00004cc8 .quad 0x4530000000000000 + //0x00004cd0 .p2align 3, 0x00 + //0x00004cd0 LCPI19_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004cd0 .quad 0x430c6bf526340000 + //0x00004cd8 LCPI19_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004cd8 .quad 0xc30c6bf526340000 + //0x00004ce0 .p2align 4, 0x90 + //0x00004ce0 _vnumber + 0x55, //0x00004ce0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004ce1 movq %rsp, %rbp + 0x41, 0x57, //0x00004ce4 pushq %r15 + 0x41, 0x56, //0x00004ce6 pushq %r14 + 0x41, 0x55, //0x00004ce8 pushq %r13 + 0x41, 0x54, //0x00004cea pushq %r12 + 0x53, //0x00004cec pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x00004ced subq $72, %rsp + 0x49, 0x89, 0xd6, //0x00004cf1 movq %rdx, %r14 + 0x48, 0x8b, 0x06, //0x00004cf4 movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00004cf7 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x00004cfa movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x5a, 0x20, //0x00004cfe movq $32(%rdx), %r11 + 0x48, 0x8b, 0x5a, 0x28, //0x00004d02 movq $40(%rdx), %rbx + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004d06 movq $9, (%rdx) + 0xc5, 0xf9, 0x57, 0xc0, //0x00004d0d vxorpd %xmm0, %xmm0, %xmm0 + 0xc5, 0xf9, 0x11, 0x42, 0x08, //0x00004d11 vmovupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00004d16 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004d19 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x00004d1d cmpq %r13, %rax + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004d20 jae LBB19_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004d26 movb (%r15,%rax), %dil + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x00004d2a movl $1, %r10d + 0x40, 0x80, 0xff, 0x2d, //0x00004d30 cmpb $45, %dil + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004d34 jne LBB19_4 + 0x48, 0x83, 0xc0, 0x01, //0x00004d3a addq $1, %rax + 0x4c, 0x39, 0xe8, //0x00004d3e cmpq %r13, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004d41 jae LBB19_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004d47 movb (%r15,%rax), %dil + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x00004d4b movl $-1, %r10d + //0x00004d51 LBB19_4 + 0x8d, 0x4f, 0xd0, //0x00004d51 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00004d54 cmpb $10, %cl + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004d57 jb LBB19_9 + 0x48, 0x89, 0x06, //0x00004d5d movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004d60 movq $-2, (%r14) + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004d67 jmp LBB19_8 + //0x00004d6c LBB19_6 + 0x4c, 0x89, 0x2e, //0x00004d6c movq %r13, (%rsi) + //0x00004d6f LBB19_7 + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x00004d6f movq $-1, (%r14) + //0x00004d76 LBB19_8 + 0x48, 0x83, 0xc4, 0x48, //0x00004d76 addq $72, %rsp + 0x5b, //0x00004d7a popq %rbx + 0x41, 0x5c, //0x00004d7b popq %r12 + 0x41, 0x5d, //0x00004d7d popq %r13 + 0x41, 0x5e, //0x00004d7f popq %r14 + 0x41, 0x5f, //0x00004d81 popq %r15 + 0x5d, //0x00004d83 popq %rbp + 0xc3, //0x00004d84 retq + //0x00004d85 LBB19_9 + 0x40, 0x80, 0xff, 0x30, //0x00004d85 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004d89 jne LBB19_13 + 0x4c, 0x8d, 0x48, 0x01, //0x00004d8f leaq $1(%rax), %r9 + 0x4c, 0x39, 0xe8, //0x00004d93 cmpq %r13, %rax + 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x00004d96 jae LBB19_22 + 0x43, 0x8a, 0x14, 0x0f, //0x00004d9c movb (%r15,%r9), %dl + 0x80, 0xc2, 0xd2, //0x00004da0 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x00004da3 cmpb $55, %dl + 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x00004da6 ja LBB19_22 + 0x44, 0x0f, 0xb6, 0xc2, //0x00004dac movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004db0 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x00004dba btq %r8, %rdx + 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x00004dbe jae LBB19_22 + //0x00004dc4 LBB19_13 + 0x4c, 0x39, 0xe8, //0x00004dc4 cmpq %r13, %rax + 0x4c, 0x89, 0x5d, 0x98, //0x00004dc7 movq %r11, $-104(%rbp) + 0x48, 0x89, 0x5d, 0xa0, //0x00004dcb movq %rbx, $-96(%rbp) + 0x48, 0x89, 0x75, 0xc8, //0x00004dcf movq %rsi, $-56(%rbp) + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x00004dd3 jae LBB19_21 + 0x80, 0xf9, 0x09, //0x00004dd9 cmpb $9, %cl + 0x44, 0x89, 0x55, 0xbc, //0x00004ddc movl %r10d, $-68(%rbp) + 0xb1, 0x01, //0x00004de0 movb $1, %cl + 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x00004de2 ja LBB19_23 + 0x89, 0x4d, 0xd4, //0x00004de8 movl %ecx, $-44(%rbp) + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004deb movl $4294967248, %r9d + 0x4d, 0x8d, 0x55, 0xff, //0x00004df1 leaq $-1(%r13), %r10 + 0x31, 0xc9, //0x00004df5 xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x00004df7 xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x00004dfa xorl %r12d, %r12d + 0x90, 0x90, 0x90, //0x00004dfd .p2align 4, 0x90 + //0x00004e00 LBB19_16 + 0x41, 0x83, 0xf8, 0x12, //0x00004e00 cmpl $18, %r8d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004e04 jg LBB19_18 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004e0a leaq (%r12,%r12,4), %rdx + 0x40, 0x0f, 0xbe, 0xff, //0x00004e0e movsbl %dil, %edi + 0x44, 0x01, 0xcf, //0x00004e12 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004e15 leaq (%rdi,%rdx,2), %r12 + 0x41, 0x83, 0xc0, 0x01, //0x00004e19 addl $1, %r8d + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00004e1d jmp LBB19_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004e22 .p2align 4, 0x90 + //0x00004e30 LBB19_18 + 0x83, 0xc1, 0x01, //0x00004e30 addl $1, %ecx + //0x00004e33 LBB19_19 + 0x49, 0x39, 0xc2, //0x00004e33 cmpq %rax, %r10 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004e36 je LBB19_28 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x00004e3c movzbl $1(%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004e42 leal $-48(%rdi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00004e45 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x00004e49 cmpb $10, %dl + 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x00004e4c jb LBB19_16 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004e52 jmp LBB19_24 + //0x00004e57 LBB19_21 + 0xb1, 0x01, //0x00004e57 movb $1, %cl + 0x89, 0x4d, 0xd4, //0x00004e59 movl %ecx, $-44(%rbp) + 0x31, 0xc9, //0x00004e5c xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x00004e5e xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x00004e61 xorl %r12d, %r12d + 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004e64 jmp LBB19_30 + //0x00004e69 LBB19_22 + 0x4c, 0x89, 0x0e, //0x00004e69 movq %r9, (%rsi) + 0xe9, 0x05, 0xff, 0xff, 0xff, //0x00004e6c jmp LBB19_8 + //0x00004e71 LBB19_23 + 0x89, 0x4d, 0xd4, //0x00004e71 movl %ecx, $-44(%rbp) + 0x45, 0x31, 0xe4, //0x00004e74 xorl %r12d, %r12d + 0x45, 0x31, 0xc0, //0x00004e77 xorl %r8d, %r8d + 0x31, 0xc9, //0x00004e7a xorl %ecx, %ecx + //0x00004e7c LBB19_24 + 0x40, 0x80, 0xff, 0x2e, //0x00004e7c cmpb $46, %dil + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00004e80 jne LBB19_29 + 0x48, 0x83, 0xc0, 0x01, //0x00004e86 addq $1, %rax + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004e8a movq $8, (%r14) + 0x4c, 0x39, 0xe8, //0x00004e91 cmpq %r13, %rax + 0x0f, 0x83, 0x70, 0x02, 0x00, 0x00, //0x00004e94 jae LBB19_68 + 0x41, 0x8a, 0x14, 0x07, //0x00004e9a movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x00004e9e addb $-48, %dl + 0x80, 0xfa, 0x0a, //0x00004ea1 cmpb $10, %dl + 0x0f, 0x83, 0x17, 0x04, 0x00, 0x00, //0x00004ea4 jae LBB19_92 + 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x00004eaa movl $0, $-44(%rbp) + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00004eb1 jmp LBB19_29 + //0x00004eb6 LBB19_28 + 0x4c, 0x89, 0xe8, //0x00004eb6 movq %r13, %rax + //0x00004eb9 LBB19_29 + 0x44, 0x8b, 0x55, 0xbc, //0x00004eb9 movl $-68(%rbp), %r10d + //0x00004ebd LBB19_30 + 0x45, 0x31, 0xdb, //0x00004ebd xorl %r11d, %r11d + 0x85, 0xc9, //0x00004ec0 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc3, //0x00004ec2 setg %r11b + 0x4d, 0x85, 0xe4, //0x00004ec6 testq %r12, %r12 + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x00004ec9 jne LBB19_39 + 0x85, 0xc9, //0x00004ecf testl %ecx, %ecx + 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x00004ed1 jne LBB19_39 + 0x4c, 0x39, 0xe8, //0x00004ed7 cmpq %r13, %rax + 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x00004eda jae LBB19_37 + 0x89, 0xc6, //0x00004ee0 movl %eax, %esi + 0x44, 0x29, 0xee, //0x00004ee2 subl %r13d, %esi + 0x45, 0x31, 0xc0, //0x00004ee5 xorl %r8d, %r8d + 0x31, 0xc9, //0x00004ee8 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004eea .p2align 4, 0x90 + //0x00004ef0 LBB19_34 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004ef0 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004ef5 jne LBB19_38 + 0x48, 0x83, 0xc0, 0x01, //0x00004efb addq $1, %rax + 0x83, 0xc1, 0xff, //0x00004eff addl $-1, %ecx + 0x49, 0x39, 0xc5, //0x00004f02 cmpq %rax, %r13 + 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004f05 jne LBB19_34 + 0x45, 0x31, 0xe4, //0x00004f0b xorl %r12d, %r12d + 0x80, 0x7d, 0xd4, 0x00, //0x00004f0e cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004f12 jne LBB19_58 + 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004f18 jmp LBB19_62 + //0x00004f1d LBB19_37 + 0x31, 0xc9, //0x00004f1d xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x00004f1f xorl %r8d, %r8d + //0x00004f22 LBB19_38 + 0x45, 0x31, 0xe4, //0x00004f22 xorl %r12d, %r12d + //0x00004f25 LBB19_39 + 0x4c, 0x39, 0xe8, //0x00004f25 cmpq %r13, %rax + 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004f28 jae LBB19_45 + 0x41, 0x83, 0xf8, 0x12, //0x00004f2e cmpl $18, %r8d + 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004f32 jg LBB19_45 + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004f38 movl $4294967248, %r9d + 0x90, 0x90, //0x00004f3e .p2align 4, 0x90 + //0x00004f40 LBB19_42 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004f40 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004f45 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004f48 cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x00004f4b ja LBB19_45 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004f51 leaq (%r12,%r12,4), %rdx + 0x44, 0x01, 0xcf, //0x00004f55 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004f58 leaq (%rdi,%rdx,2), %r12 + 0x83, 0xc1, 0xff, //0x00004f5c addl $-1, %ecx + 0x48, 0x83, 0xc0, 0x01, //0x00004f5f addq $1, %rax + 0x4c, 0x39, 0xe8, //0x00004f63 cmpq %r13, %rax + 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004f66 jae LBB19_45 + 0x41, 0x8d, 0x50, 0x01, //0x00004f6c leal $1(%r8), %edx + 0x41, 0x83, 0xf8, 0x12, //0x00004f70 cmpl $18, %r8d + 0x41, 0x89, 0xd0, //0x00004f74 movl %edx, %r8d + 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x00004f77 jl LBB19_42 + //0x00004f7d LBB19_45 + 0x4c, 0x39, 0xe8, //0x00004f7d cmpq %r13, %rax + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x00004f80 jae LBB19_57 + 0x41, 0x8a, 0x14, 0x07, //0x00004f86 movb (%r15,%rax), %dl + 0x8d, 0x72, 0xd0, //0x00004f8a leal $-48(%rdx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x00004f8d cmpb $9, %sil + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004f91 ja LBB19_51 + 0x49, 0x8d, 0x75, 0xff, //0x00004f97 leaq $-1(%r13), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004f9b .p2align 4, 0x90 + //0x00004fa0 LBB19_48 + 0x48, 0x39, 0xc6, //0x00004fa0 cmpq %rax, %rsi + 0x0f, 0x84, 0x6d, 0x01, 0x00, 0x00, //0x00004fa3 je LBB19_69 + 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x00004fa9 movzbl $1(%r15,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x00004faf leal $-48(%rdx), %edi + 0x48, 0x83, 0xc0, 0x01, //0x00004fb2 addq $1, %rax + 0x40, 0x80, 0xff, 0x09, //0x00004fb6 cmpb $9, %dil + 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x00004fba jbe LBB19_48 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004fc0 movl $1, %r11d + //0x00004fc6 LBB19_51 + 0x80, 0xca, 0x20, //0x00004fc6 orb $32, %dl + 0x80, 0xfa, 0x65, //0x00004fc9 cmpb $101, %dl + 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004fcc jne LBB19_57 + 0x48, 0x8d, 0x50, 0x01, //0x00004fd2 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004fd6 movq $8, (%r14) + 0x4c, 0x39, 0xea, //0x00004fdd cmpq %r13, %rdx + 0x0f, 0x83, 0x24, 0x01, 0x00, 0x00, //0x00004fe0 jae LBB19_68 + 0x44, 0x89, 0x5d, 0xd4, //0x00004fe6 movl %r11d, $-44(%rbp) + 0x41, 0x8a, 0x34, 0x17, //0x00004fea movb (%r15,%rdx), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x00004fee cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004ff2 je LBB19_55 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004ff8 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x00004ffe cmpb $43, %sil + 0x0f, 0x85, 0xa9, 0x02, 0x00, 0x00, //0x00005002 jne LBB19_90 + //0x00005008 LBB19_55 + 0x48, 0x83, 0xc0, 0x02, //0x00005008 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x0000500c cmpq %r13, %rax + 0x0f, 0x83, 0xf5, 0x00, 0x00, 0x00, //0x0000500f jae LBB19_68 + 0x31, 0xd2, //0x00005015 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00005017 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x0000501b sete %dl + 0x44, 0x8d, 0x04, 0x12, //0x0000501e leal (%rdx,%rdx), %r8d + 0x41, 0x83, 0xc0, 0xff, //0x00005022 addl $-1, %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00005026 movb (%r15,%rax), %sil + 0xe9, 0x85, 0x02, 0x00, 0x00, //0x0000502a jmp LBB19_91 + //0x0000502f LBB19_57 + 0x89, 0xce, //0x0000502f movl %ecx, %esi + 0x49, 0x89, 0xc5, //0x00005031 movq %rax, %r13 + 0x80, 0x7d, 0xd4, 0x00, //0x00005034 cmpb $0, $-44(%rbp) + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00005038 je LBB19_62 + //0x0000503e LBB19_58 + 0x85, 0xf6, //0x0000503e testl %esi, %esi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00005040 jne LBB19_61 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00005046 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xca, //0x00005050 movslq %r10d, %rcx + 0x4d, 0x85, 0xe4, //0x00005053 testq %r12, %r12 + 0x0f, 0x89, 0xed, 0x00, 0x00, 0x00, //0x00005056 jns LBB19_72 + 0x4c, 0x89, 0xe2, //0x0000505c movq %r12, %rdx + 0x48, 0x21, 0xca, //0x0000505f andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00005062 cmpq %rax, %rdx + 0x0f, 0x84, 0xde, 0x00, 0x00, 0x00, //0x00005065 je LBB19_72 + //0x0000506b LBB19_61 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000506b movq $8, (%r14) + //0x00005072 LBB19_62 + 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x00005072 movq $0, $-80(%rbp) + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x0000507a vmovq %r12, %xmm0 + 0xc5, 0xf9, 0x62, 0x05, 0x29, 0xfc, 0xff, 0xff, //0x0000507f vpunpckldq $-983(%rip), %xmm0, %xmm0 /* LCPI19_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x31, 0xfc, 0xff, 0xff, //0x00005087 vsubpd $-975(%rip), %xmm0, %xmm0 /* LCPI19_1+0(%rip) */ + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x0000508f vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x00005095 vaddsd %xmm0, %xmm1, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x00005099 vmovsd %xmm0, $-64(%rbp) + 0x4c, 0x89, 0xe0, //0x0000509e movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000050a1 shrq $52, %rax + 0x0f, 0x85, 0x23, 0x01, 0x00, 0x00, //0x000050a5 jne LBB19_78 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x000050ab vmovq %xmm0, %rcx + 0x44, 0x89, 0xd0, //0x000050b0 movl %r10d, %eax + 0xc1, 0xe8, 0x1f, //0x000050b3 shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x000050b6 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x000050ba orq %rcx, %rax + 0x48, 0x89, 0x45, 0xc0, //0x000050bd movq %rax, $-64(%rbp) + 0x85, 0xf6, //0x000050c1 testl %esi, %esi + 0x0f, 0x84, 0xa6, 0x01, 0x00, 0x00, //0x000050c3 je LBB19_85 + 0x4d, 0x85, 0xe4, //0x000050c9 testq %r12, %r12 + 0x0f, 0x84, 0x9d, 0x01, 0x00, 0x00, //0x000050cc je LBB19_85 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x000050d2 vmovq %rax, %xmm0 + 0x8d, 0x46, 0xff, //0x000050d7 leal $-1(%rsi), %eax + 0x83, 0xf8, 0x24, //0x000050da cmpl $36, %eax + 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x000050dd ja LBB19_70 + 0x83, 0xfe, 0x17, //0x000050e3 cmpl $23, %esi + 0x0f, 0x8c, 0x9f, 0x00, 0x00, 0x00, //0x000050e6 jl LBB19_73 + 0x8d, 0x46, 0xea, //0x000050ec leal $-22(%rsi), %eax + 0x48, 0x8d, 0x0d, 0xaa, 0xf3, 0x00, 0x00, //0x000050ef leaq $62378(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000050f6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000050fb vmovsd %xmm0, $-64(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00005100 movl $22, %eax + 0xe9, 0x83, 0x00, 0x00, 0x00, //0x00005105 jmp LBB19_74 + //0x0000510a LBB19_68 + 0x48, 0x8b, 0x45, 0xc8, //0x0000510a movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x0000510e movq %r13, (%rax) + 0xe9, 0x59, 0xfc, 0xff, 0xff, //0x00005111 jmp LBB19_7 + //0x00005116 LBB19_69 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00005116 movl $1, %r11d + 0x89, 0xce, //0x0000511c movl %ecx, %esi + 0x80, 0x7d, 0xd4, 0x00, //0x0000511e cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x16, 0xff, 0xff, 0xff, //0x00005122 jne LBB19_58 + 0xe9, 0x45, 0xff, 0xff, 0xff, //0x00005128 jmp LBB19_62 + //0x0000512d LBB19_70 + 0x83, 0xfe, 0xea, //0x0000512d cmpl $-22, %esi + 0x0f, 0x82, 0x98, 0x00, 0x00, 0x00, //0x00005130 jb LBB19_78 + 0xf7, 0xde, //0x00005136 negl %esi + 0x48, 0x8d, 0x05, 0x61, 0xf3, 0x00, 0x00, //0x00005138 leaq $62305(%rip), %rax /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x5e, 0x04, 0xf0, //0x0000513f vdivsd (%rax,%rsi,8), %xmm0, %xmm0 + 0xe9, 0x72, 0x00, 0x00, 0x00, //0x00005144 jmp LBB19_77 + //0x00005149 LBB19_72 + 0xc4, 0xc1, 0xf9, 0x6e, 0xc4, //0x00005149 vmovq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x0000514e imulq %rcx, %r12 + 0xc5, 0xf9, 0x62, 0x05, 0x56, 0xfb, 0xff, 0xff, //0x00005152 vpunpckldq $-1194(%rip), %xmm0, %xmm0 /* LCPI19_0+0(%rip) */ + 0xc5, 0xf9, 0x5c, 0x05, 0x5e, 0xfb, 0xff, 0xff, //0x0000515a vsubpd $-1186(%rip), %xmm0, %xmm0 /* LCPI19_1+0(%rip) */ + 0x4d, 0x89, 0x66, 0x10, //0x00005162 movq %r12, $16(%r14) + 0xc4, 0xe3, 0x79, 0x05, 0xc8, 0x01, //0x00005166 vpermilpd $1, %xmm0, %xmm1 + 0xc5, 0xf3, 0x58, 0xc0, //0x0000516c vaddsd %xmm0, %xmm1, %xmm0 + 0x48, 0x21, 0xc8, //0x00005170 andq %rcx, %rax + 0xc4, 0xe1, 0xf9, 0x7e, 0xc1, //0x00005173 vmovq %xmm0, %rcx + 0x48, 0x09, 0xc1, //0x00005178 orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x0000517b movq %rcx, $8(%r14) + 0x48, 0x8b, 0x45, 0xc8, //0x0000517f movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00005183 movq %r13, (%rax) + 0xe9, 0xeb, 0xfb, 0xff, 0xff, //0x00005186 jmp LBB19_8 + //0x0000518b LBB19_73 + 0x89, 0xf0, //0x0000518b movl %esi, %eax + //0x0000518d LBB19_74 + 0xc5, 0xf9, 0x2e, 0x05, 0x3b, 0xfb, 0xff, 0xff, //0x0000518d vucomisd $-1221(%rip), %xmm0 /* LCPI19_2+0(%rip) */ + 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x00005195 ja LBB19_78 + 0xc5, 0xfb, 0x10, 0x0d, 0x35, 0xfb, 0xff, 0xff, //0x0000519b vmovsd $-1227(%rip), %xmm1 /* LCPI19_3+0(%rip) */ + 0xc5, 0xf9, 0x2e, 0xc8, //0x000051a3 vucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000051a7 ja LBB19_78 + 0x89, 0xc0, //0x000051ad movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xea, 0xf2, 0x00, 0x00, //0x000051af leaq $62186(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xc5, 0xfb, 0x59, 0x04, 0xc1, //0x000051b6 vmulsd (%rcx,%rax,8), %xmm0, %xmm0 + //0x000051bb LBB19_77 + 0x48, 0x8b, 0x5d, 0xc8, //0x000051bb movq $-56(%rbp), %rbx + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x000051bf vmovsd %xmm0, $-64(%rbp) + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x000051c4 vmovq %xmm0, %rax + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000051c9 jmp LBB19_86 + //0x000051ce LBB19_78 + 0x44, 0x89, 0x5d, 0xd4, //0x000051ce movl %r11d, $-44(%rbp) + 0x48, 0x8d, 0x4d, 0xc0, //0x000051d2 leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x000051d6 movq %r12, %rdi + 0x44, 0x89, 0xd2, //0x000051d9 movl %r10d, %edx + 0x44, 0x89, 0xd3, //0x000051dc movl %r10d, %ebx + 0x48, 0x89, 0x75, 0xa8, //0x000051df movq %rsi, $-88(%rbp) + 0xe8, 0xd8, 0xe3, 0xff, 0xff, //0x000051e3 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x000051e8 testb %al, %al + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x000051ea je LBB19_83 + 0x48, 0x8b, 0x75, 0xa8, //0x000051f0 movq $-88(%rbp), %rsi + 0x83, 0x7d, 0xd4, 0x00, //0x000051f4 cmpl $0, $-44(%rbp) + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x000051f8 je LBB19_84 + 0x89, 0xda, //0x000051fe movl %ebx, %edx + 0x49, 0x83, 0xc4, 0x01, //0x00005200 addq $1, %r12 + 0x48, 0x8d, 0x4d, 0xb0, //0x00005204 leaq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x00005208 movq %r12, %rdi + 0xe8, 0xb0, 0xe3, 0xff, 0xff, //0x0000520b callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00005210 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00005212 je LBB19_83 + 0xc5, 0xfb, 0x10, 0x4d, 0xb0, //0x00005218 vmovsd $-80(%rbp), %xmm1 + 0xc5, 0xfb, 0x10, 0x45, 0xc0, //0x0000521d vmovsd $-64(%rbp), %xmm0 + 0xc5, 0xf9, 0x2e, 0xc8, //0x00005222 vucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00005226 jne LBB19_83 + 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x0000522c jp LBB19_83 + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00005232 vmovq %xmm0, %rax + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00005237 jmp LBB19_85 + //0x0000523c LBB19_83 + 0x48, 0x8b, 0x5d, 0xc8, //0x0000523c movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x03, //0x00005240 movq (%rbx), %rax + 0x49, 0x01, 0xc7, //0x00005243 addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x00005246 movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x00005249 subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x0000524c movq %r15, %rdi + 0x48, 0x8b, 0x55, 0x98, //0x0000524f movq $-104(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa0, //0x00005253 movq $-96(%rbp), %rcx + 0xe8, 0x04, 0xeb, 0xff, 0xff, //0x00005257 callq _atof_native + 0xc5, 0xfb, 0x11, 0x45, 0xc0, //0x0000525c vmovsd %xmm0, $-64(%rbp) + 0xc4, 0xe1, 0xf9, 0x7e, 0xc0, //0x00005261 vmovq %xmm0, %rax + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005266 jmp LBB19_87 + //0x0000526b LBB19_84 + 0x48, 0x8b, 0x45, 0xc0, //0x0000526b movq $-64(%rbp), %rax + //0x0000526f LBB19_85 + 0x48, 0x8b, 0x5d, 0xc8, //0x0000526f movq $-56(%rbp), %rbx + //0x00005273 LBB19_86 + 0xc4, 0xe1, 0xf9, 0x6e, 0xc0, //0x00005273 vmovq %rax, %xmm0 + //0x00005278 LBB19_87 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00005278 movabsq $-9223372036854775808, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x00005282 addq $-1, %rcx + 0x48, 0x21, 0xc1, //0x00005286 andq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00005289 movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc1, //0x00005293 cmpq %rax, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00005296 jne LBB19_89 + 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x0000529c movq $-8, (%r14) + //0x000052a3 LBB19_89 + 0xc4, 0xc1, 0x7b, 0x11, 0x46, 0x08, //0x000052a3 vmovsd %xmm0, $8(%r14) + 0x4c, 0x89, 0x2b, //0x000052a9 movq %r13, (%rbx) + 0xe9, 0xc5, 0xfa, 0xff, 0xff, //0x000052ac jmp LBB19_8 + //0x000052b1 LBB19_90 + 0x48, 0x89, 0xd0, //0x000052b1 movq %rdx, %rax + //0x000052b4 LBB19_91 + 0x8d, 0x7e, 0xd0, //0x000052b4 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x000052b7 cmpb $9, %dil + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000052bb jbe LBB19_93 + //0x000052c1 LBB19_92 + 0x48, 0x8b, 0x4d, 0xc8, //0x000052c1 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000052c5 movq %rax, (%rcx) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000052c8 movq $-2, (%r14) + 0xe9, 0xa2, 0xfa, 0xff, 0xff, //0x000052cf jmp LBB19_8 + //0x000052d4 LBB19_93 + 0x4c, 0x39, 0xe8, //0x000052d4 cmpq %r13, %rax + 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x000052d7 jae LBB19_99 + 0x40, 0x80, 0xff, 0x09, //0x000052dd cmpb $9, %dil + 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x000052e1 ja LBB19_99 + 0x4d, 0x8d, 0x4d, 0xff, //0x000052e7 leaq $-1(%r13), %r9 + 0x31, 0xff, //0x000052eb xorl %edi, %edi + //0x000052ed LBB19_96 + 0x89, 0xfa, //0x000052ed movl %edi, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x000052ef movzbl %sil, %esi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000052f3 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x000052f9 leal (%rdx,%rdx,4), %edi + 0x8d, 0x7c, 0x7e, 0xd0, //0x000052fc leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x00005300 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00005303 cmpq %rax, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x00005306 je LBB19_100 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x0000530c movzbl $1(%r15,%rax), %esi + 0x8d, 0x56, 0xd0, //0x00005312 leal $-48(%rsi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00005315 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x00005319 cmpb $10, %dl + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x0000531c jb LBB19_96 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00005322 jmp LBB19_101 + //0x00005327 LBB19_99 + 0x31, 0xff, //0x00005327 xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00005329 jmp LBB19_101 + //0x0000532e LBB19_100 + 0x4c, 0x89, 0xe8, //0x0000532e movq %r13, %rax + //0x00005331 LBB19_101 + 0x48, 0x89, 0xfe, //0x00005331 movq %rdi, %rsi + 0x41, 0x0f, 0xaf, 0xf0, //0x00005334 imull %r8d, %esi + 0x01, 0xce, //0x00005338 addl %ecx, %esi + 0x49, 0x89, 0xc5, //0x0000533a movq %rax, %r13 + 0x44, 0x8b, 0x5d, 0xd4, //0x0000533d movl $-44(%rbp), %r11d + 0xe9, 0x2c, 0xfd, 0xff, 0xff, //0x00005341 jmp LBB19_62 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005346 .p2align 4, 0x90 + //0x00005350 _vsigned + 0x55, //0x00005350 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005351 movq %rsp, %rbp + 0x53, //0x00005354 pushq %rbx + 0x48, 0x8b, 0x06, //0x00005355 movq (%rsi), %rax + 0x4c, 0x8b, 0x0f, //0x00005358 movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000535b movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000535f movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x00005366 vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x0000536a vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000536f movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00005372 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x00005376 cmpq %r11, %rax + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x00005379 jae LBB20_1 + 0x41, 0x8a, 0x0c, 0x01, //0x0000537f movb (%r9,%rax), %cl + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00005383 movl $1, %r8d + 0x80, 0xf9, 0x2d, //0x00005389 cmpb $45, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x0000538c jne LBB20_5 + 0x48, 0x83, 0xc0, 0x01, //0x00005392 addq $1, %rax + 0x4c, 0x39, 0xd8, //0x00005396 cmpq %r11, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00005399 jae LBB20_1 + 0x41, 0x8a, 0x0c, 0x01, //0x0000539f movb (%r9,%rax), %cl + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000053a3 movq $-1, %r8 + //0x000053aa LBB20_5 + 0x8d, 0x79, 0xd0, //0x000053aa leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000053ad cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000053b1 jb LBB20_7 + 0x48, 0x89, 0x06, //0x000053b7 movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000053ba movq $-2, (%rdx) + 0x5b, //0x000053c1 popq %rbx + 0x5d, //0x000053c2 popq %rbp + 0xc3, //0x000053c3 retq + //0x000053c4 LBB20_1 + 0x4c, 0x89, 0x1e, //0x000053c4 movq %r11, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000053c7 movq $-1, (%rdx) + 0x5b, //0x000053ce popq %rbx + 0x5d, //0x000053cf popq %rbp + 0xc3, //0x000053d0 retq + //0x000053d1 LBB20_7 + 0x80, 0xf9, 0x30, //0x000053d1 cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000053d4 jne LBB20_12 + 0x48, 0x8d, 0x78, 0x01, //0x000053da leaq $1(%rax), %rdi + 0x4c, 0x39, 0xd8, //0x000053de cmpq %r11, %rax + 0x0f, 0x83, 0x82, 0x00, 0x00, 0x00, //0x000053e1 jae LBB20_11 + 0x41, 0x8a, 0x0c, 0x39, //0x000053e7 movb (%r9,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000053eb addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000053ee cmpb $55, %cl + 0x0f, 0x87, 0x72, 0x00, 0x00, 0x00, //0x000053f1 ja LBB20_11 + 0x44, 0x0f, 0xb6, 0xd1, //0x000053f7 movzbl %cl, %r10d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053fb movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd1, //0x00005405 btq %r10, %rcx + 0x0f, 0x83, 0x5a, 0x00, 0x00, 0x00, //0x00005409 jae LBB20_11 + //0x0000540f LBB20_12 + 0x4c, 0x39, 0xd8, //0x0000540f cmpq %r11, %rax + 0x4d, 0x89, 0xda, //0x00005412 movq %r11, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00005415 cmovaq %rax, %r10 + 0x31, 0xc9, //0x00005419 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000541b .p2align 4, 0x90 + //0x00005420 LBB20_13 + 0x49, 0x39, 0xc2, //0x00005420 cmpq %rax, %r10 + 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00005423 je LBB20_23 + 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00005429 movsbq (%r9,%rax), %rdi + 0x8d, 0x5f, 0xd0, //0x0000542e leal $-48(%rdi), %ebx + 0x80, 0xfb, 0x09, //0x00005431 cmpb $9, %bl + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00005434 ja LBB20_18 + 0x48, 0x6b, 0xc9, 0x0a, //0x0000543a imulq $10, %rcx, %rcx + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000543e jo LBB20_17 + 0x48, 0x83, 0xc0, 0x01, //0x00005444 addq $1, %rax + 0x83, 0xc7, 0xd0, //0x00005448 addl $-48, %edi + 0x49, 0x0f, 0xaf, 0xf8, //0x0000544b imulq %r8, %rdi + 0x48, 0x01, 0xf9, //0x0000544f addq %rdi, %rcx + 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00005452 jno LBB20_13 + //0x00005458 LBB20_17 + 0x48, 0x83, 0xc0, 0xff, //0x00005458 addq $-1, %rax + 0x48, 0x89, 0x06, //0x0000545c movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000545f movq $-5, (%rdx) + 0x5b, //0x00005466 popq %rbx + 0x5d, //0x00005467 popq %rbp + 0xc3, //0x00005468 retq + //0x00005469 LBB20_11 + 0x48, 0x89, 0x3e, //0x00005469 movq %rdi, (%rsi) + 0x5b, //0x0000546c popq %rbx + 0x5d, //0x0000546d popq %rbp + 0xc3, //0x0000546e retq + //0x0000546f LBB20_18 + 0x4c, 0x39, 0xd8, //0x0000546f cmpq %r11, %rax + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x00005472 jae LBB20_22 + 0x41, 0x8a, 0x3c, 0x01, //0x00005478 movb (%r9,%rax), %dil + 0x40, 0x80, 0xff, 0x2e, //0x0000547c cmpb $46, %dil + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005480 je LBB20_25 + 0x40, 0x80, 0xff, 0x45, //0x00005486 cmpb $69, %dil + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x0000548a je LBB20_25 + 0x40, 0x80, 0xff, 0x65, //0x00005490 cmpb $101, %dil + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x00005494 jne LBB20_22 + //0x0000549a LBB20_25 + 0x48, 0x89, 0x06, //0x0000549a movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x0000549d movq $-6, (%rdx) + 0x5b, //0x000054a4 popq %rbx + 0x5d, //0x000054a5 popq %rbp + 0xc3, //0x000054a6 retq + //0x000054a7 LBB20_22 + 0x49, 0x89, 0xc2, //0x000054a7 movq %rax, %r10 + //0x000054aa LBB20_23 + 0x4c, 0x89, 0x16, //0x000054aa movq %r10, (%rsi) + 0x48, 0x89, 0x4a, 0x10, //0x000054ad movq %rcx, $16(%rdx) + 0x5b, //0x000054b1 popq %rbx + 0x5d, //0x000054b2 popq %rbp + 0xc3, //0x000054b3 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000054b4 .p2align 4, 0x90 + //0x000054c0 _vunsigned + 0x55, //0x000054c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000054c1 movq %rsp, %rbp + 0x41, 0x56, //0x000054c4 pushq %r14 + 0x53, //0x000054c6 pushq %rbx + 0x49, 0x89, 0xd0, //0x000054c7 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000054ca movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000054cd movq (%rdi), %r9 + 0x4c, 0x8b, 0x77, 0x08, //0x000054d0 movq $8(%rdi), %r14 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x000054d4 movq $9, (%rdx) + 0xc5, 0xf8, 0x57, 0xc0, //0x000054db vxorps %xmm0, %xmm0, %xmm0 + 0xc5, 0xf8, 0x11, 0x42, 0x08, //0x000054df vmovups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x000054e4 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x000054e7 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xf1, //0x000054eb cmpq %r14, %rcx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x000054ee jae LBB21_1 + 0x41, 0x8a, 0x04, 0x09, //0x000054f4 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x000054f8 cmpb $45, %al + 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x000054fa jne LBB21_4 + //0x00005500 LBB21_3 + 0x48, 0x89, 0x0e, //0x00005500 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00005503 movq $-6, (%r8) + 0x5b, //0x0000550a popq %rbx + 0x41, 0x5e, //0x0000550b popq %r14 + 0x5d, //0x0000550d popq %rbp + 0xc3, //0x0000550e retq + //0x0000550f LBB21_1 + 0x4c, 0x89, 0x36, //0x0000550f movq %r14, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00005512 movq $-1, (%r8) + 0x5b, //0x00005519 popq %rbx + 0x41, 0x5e, //0x0000551a popq %r14 + 0x5d, //0x0000551c popq %rbp + 0xc3, //0x0000551d retq + //0x0000551e LBB21_4 + 0x8d, 0x50, 0xd0, //0x0000551e leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x00005521 cmpb $10, %dl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00005524 jb LBB21_6 + 0x48, 0x89, 0x0e, //0x0000552a movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000552d movq $-2, (%r8) + 0x5b, //0x00005534 popq %rbx + 0x41, 0x5e, //0x00005535 popq %r14 + 0x5d, //0x00005537 popq %rbp + 0xc3, //0x00005538 retq + //0x00005539 LBB21_6 + 0x3c, 0x30, //0x00005539 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x0000553b jne LBB21_10 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x00005541 movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00005546 addb $-46, %al + 0x3c, 0x37, //0x00005548 cmpb $55, %al + 0x0f, 0x87, 0xc5, 0x00, 0x00, 0x00, //0x0000554a ja LBB21_9 + 0x0f, 0xb6, 0xc0, //0x00005550 movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00005553 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x0000555d btq %rax, %rdx + 0x0f, 0x83, 0xae, 0x00, 0x00, 0x00, //0x00005561 jae LBB21_9 + //0x00005567 LBB21_10 + 0x49, 0x39, 0xce, //0x00005567 cmpq %rcx, %r14 + 0x49, 0x89, 0xca, //0x0000556a movq %rcx, %r10 + 0x4d, 0x0f, 0x47, 0xd6, //0x0000556d cmovaq %r14, %r10 + 0x31, 0xc0, //0x00005571 xorl %eax, %eax + 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x00005573 movl $10, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005579 .p2align 4, 0x90 + //0x00005580 LBB21_11 + 0x49, 0x39, 0xca, //0x00005580 cmpq %rcx, %r10 + 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x00005583 je LBB21_22 + 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x00005589 movsbl (%r9,%rcx), %ebx + 0x8d, 0x53, 0xd0, //0x0000558e leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x00005591 cmpb $9, %dl + 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x00005594 ja LBB21_17 + 0x49, 0xf7, 0xe3, //0x0000559a mulq %r11 + 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x0000559d jo LBB21_16 + 0x48, 0x83, 0xc1, 0x01, //0x000055a3 addq $1, %rcx + 0x83, 0xc3, 0xd0, //0x000055a7 addl $-48, %ebx + 0x31, 0xff, //0x000055aa xorl %edi, %edi + 0x48, 0x01, 0xd8, //0x000055ac addq %rbx, %rax + 0x40, 0x0f, 0x92, 0xc7, //0x000055af setb %dil + 0x48, 0x89, 0xfa, //0x000055b3 movq %rdi, %rdx + 0x48, 0xf7, 0xda, //0x000055b6 negq %rdx + 0x48, 0x31, 0xd7, //0x000055b9 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000055bc jne LBB21_16 + 0x48, 0x85, 0xd2, //0x000055c2 testq %rdx, %rdx + 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000055c5 jns LBB21_11 + //0x000055cb LBB21_16 + 0x48, 0x83, 0xc1, 0xff, //0x000055cb addq $-1, %rcx + 0x48, 0x89, 0x0e, //0x000055cf movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x000055d2 movq $-5, (%r8) + 0x5b, //0x000055d9 popq %rbx + 0x41, 0x5e, //0x000055da popq %r14 + 0x5d, //0x000055dc popq %rbp + 0xc3, //0x000055dd retq + //0x000055de LBB21_17 + 0x4c, 0x39, 0xf1, //0x000055de cmpq %r14, %rcx + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x000055e1 jae LBB21_21 + 0x41, 0x8a, 0x14, 0x09, //0x000055e7 movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x2e, //0x000055eb cmpb $46, %dl + 0x0f, 0x84, 0x0c, 0xff, 0xff, 0xff, //0x000055ee je LBB21_3 + 0x80, 0xfa, 0x45, //0x000055f4 cmpb $69, %dl + 0x0f, 0x84, 0x03, 0xff, 0xff, 0xff, //0x000055f7 je LBB21_3 + 0x80, 0xfa, 0x65, //0x000055fd cmpb $101, %dl + 0x0f, 0x84, 0xfa, 0xfe, 0xff, 0xff, //0x00005600 je LBB21_3 + //0x00005606 LBB21_21 + 0x49, 0x89, 0xca, //0x00005606 movq %rcx, %r10 + //0x00005609 LBB21_22 + 0x4c, 0x89, 0x16, //0x00005609 movq %r10, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x0000560c movq %rax, $16(%r8) + 0x5b, //0x00005610 popq %rbx + 0x41, 0x5e, //0x00005611 popq %r14 + 0x5d, //0x00005613 popq %rbp + 0xc3, //0x00005614 retq + //0x00005615 LBB21_9 + 0x48, 0x83, 0xc1, 0x01, //0x00005615 addq $1, %rcx + 0x48, 0x89, 0x0e, //0x00005619 movq %rcx, (%rsi) + 0x5b, //0x0000561c popq %rbx + 0x41, 0x5e, //0x0000561d popq %r14 + 0x5d, //0x0000561f popq %rbp + 0xc3, //0x00005620 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005621 .p2align 4, 0x00 + //0x00005630 LCPI22_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005630 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005638 .quad 5 + //0x00005640 .p2align 4, 0x90 + //0x00005640 _skip_array + 0x55, //0x00005640 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005641 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005644 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005647 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000564a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000564d vmovaps $-37(%rip), %xmm0 /* LCPI22_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005655 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005659 movq %rax, %rdi + 0x5d, //0x0000565c popq %rbp + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x0000565d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005662 .p2align 4, 0x90 + //0x00005670 _fsm_exec + 0x55, //0x00005670 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005671 movq %rsp, %rbp + 0x41, 0x57, //0x00005674 pushq %r15 + 0x41, 0x56, //0x00005676 pushq %r14 + 0x41, 0x55, //0x00005678 pushq %r13 + 0x41, 0x54, //0x0000567a pushq %r12 + 0x53, //0x0000567c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000567d subq $40, %rsp + 0x48, 0x89, 0x4d, 0xb8, //0x00005681 movq %rcx, $-72(%rbp) + 0x48, 0x83, 0x3f, 0x00, //0x00005685 cmpq $0, (%rdi) + 0x0f, 0x84, 0xd0, 0x03, 0x00, 0x00, //0x00005689 je LBB23_63 + 0x49, 0x89, 0xd0, //0x0000568f movq %rdx, %r8 + 0x49, 0x89, 0xfd, //0x00005692 movq %rdi, %r13 + 0x48, 0x89, 0x75, 0xc8, //0x00005695 movq %rsi, $-56(%rbp) + 0x48, 0x8d, 0x46, 0x08, //0x00005699 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xc0, //0x0000569d movq %rax, $-64(%rbp) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000056a1 movq $-1, %r12 + 0xe9, 0x23, 0x00, 0x00, 0x00, //0x000056a8 jmp LBB23_5 + //0x000056ad LBB23_2 + 0x48, 0x8d, 0x48, 0x03, //0x000056ad leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x000056b1 movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000056b4 testq %rax, %rax + 0x0f, 0x8e, 0xa9, 0x03, 0x00, 0x00, //0x000056b7 jle LBB23_75 + 0x90, 0x90, 0x90, //0x000056bd .p2align 4, 0x90 + //0x000056c0 LBB23_3 + 0x49, 0x8b, 0x4d, 0x00, //0x000056c0 movq (%r13), %rcx + 0x4d, 0x89, 0xe6, //0x000056c4 movq %r12, %r14 + 0x48, 0x85, 0xc9, //0x000056c7 testq %rcx, %rcx + 0x0f, 0x84, 0x96, 0x03, 0x00, 0x00, //0x000056ca je LBB23_75 + //0x000056d0 LBB23_5 + 0x4c, 0x8b, 0x75, 0xc8, //0x000056d0 movq $-56(%rbp), %r14 + 0x49, 0x8b, 0x3e, //0x000056d4 movq (%r14), %rdi + 0x49, 0x8b, 0x76, 0x08, //0x000056d7 movq $8(%r14), %rsi + 0x4c, 0x89, 0xc3, //0x000056db movq %r8, %rbx + 0x4c, 0x89, 0xc2, //0x000056de movq %r8, %rdx + 0xe8, 0xda, 0xee, 0xff, 0xff, //0x000056e1 callq _advance_ns + 0x84, 0xc0, //0x000056e6 testb %al, %al + 0x0f, 0x84, 0x71, 0x03, 0x00, 0x00, //0x000056e8 je LBB23_63 + 0x49, 0x83, 0xfc, 0xff, //0x000056ee cmpq $-1, %r12 + 0x49, 0x89, 0xd8, //0x000056f2 movq %rbx, %r8 + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000056f5 jne LBB23_8 + 0x4d, 0x8b, 0x20, //0x000056fb movq (%r8), %r12 + 0x49, 0x83, 0xc4, 0xff, //0x000056fe addq $-1, %r12 + //0x00005702 LBB23_8 + 0x0f, 0xbe, 0xf0, //0x00005702 movsbl %al, %esi + 0x49, 0x8b, 0x55, 0x00, //0x00005705 movq (%r13), %rdx + 0x48, 0x8d, 0x4a, 0xff, //0x00005709 leaq $-1(%rdx), %rcx + 0x41, 0x8b, 0x7c, 0xd5, 0x00, //0x0000570d movl (%r13,%rdx,8), %edi + 0x83, 0xc7, 0xff, //0x00005712 addl $-1, %edi + 0x83, 0xff, 0x05, //0x00005715 cmpl $5, %edi + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00005718 ja LBB23_13 + 0x48, 0x8d, 0x1d, 0xaf, 0x04, 0x00, 0x00, //0x0000571e leaq $1199(%rip), %rbx /* LJTI23_0+0(%rip) */ + 0x48, 0x63, 0x3c, 0xbb, //0x00005725 movslq (%rbx,%rdi,4), %rdi + 0x48, 0x01, 0xdf, //0x00005729 addq %rbx, %rdi + 0xff, 0xe7, //0x0000572c jmpq *%rdi + //0x0000572e LBB23_10 + 0x83, 0xfe, 0x2c, //0x0000572e cmpl $44, %esi + 0x0f, 0x84, 0x55, 0x01, 0x00, 0x00, //0x00005731 je LBB23_30 + 0x83, 0xfe, 0x5d, //0x00005737 cmpl $93, %esi + 0x0f, 0x84, 0x37, 0x01, 0x00, 0x00, //0x0000573a je LBB23_12 + 0xe9, 0x70, 0x03, 0x00, 0x00, //0x00005740 jmp LBB23_68 + //0x00005745 LBB23_13 + 0x49, 0x89, 0x4d, 0x00, //0x00005745 movq %rcx, (%r13) + 0x83, 0xfe, 0x7b, //0x00005749 cmpl $123, %esi + 0x0f, 0x86, 0xb3, 0x00, 0x00, 0x00, //0x0000574c jbe LBB23_25 + 0xe9, 0x5e, 0x03, 0x00, 0x00, //0x00005752 jmp LBB23_68 + //0x00005757 LBB23_14 + 0x83, 0xfe, 0x2c, //0x00005757 cmpl $44, %esi + 0x0f, 0x85, 0x0e, 0x01, 0x00, 0x00, //0x0000575a jne LBB23_15 + 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x00005760 cmpq $4095, %rdx + 0x0f, 0x8f, 0x0b, 0x03, 0x00, 0x00, //0x00005767 jg LBB23_69 + 0x48, 0x8d, 0x42, 0x01, //0x0000576d leaq $1(%rdx), %rax + 0x49, 0x89, 0x45, 0x00, //0x00005771 movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xd5, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00005775 movq $3, $8(%r13,%rdx,8) + 0xe9, 0x3d, 0xff, 0xff, 0xff, //0x0000577e jmp LBB23_3 + //0x00005783 LBB23_16 + 0x3c, 0x22, //0x00005783 cmpb $34, %al + 0x0f, 0x85, 0x2a, 0x03, 0x00, 0x00, //0x00005785 jne LBB23_68 + 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x04, 0x00, 0x00, 0x00, //0x0000578b movq $4, (%r13,%rdx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x00005794 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x0000579c movq (%r8), %r15 + 0x4c, 0x89, 0xf7, //0x0000579f movq %r14, %rdi + //0x000057a2 LBB23_18 + 0x4c, 0x89, 0xfe, //0x000057a2 movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x000057a5 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x000057a9 movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x000057ad movq %r8, %rbx + 0xe8, 0xeb, 0xf0, 0xff, 0xff, //0x000057b0 callq _advance_string + 0x49, 0x89, 0xc6, //0x000057b5 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x000057b8 testq %rax, %rax + 0x0f, 0x88, 0xc3, 0x02, 0x00, 0x00, //0x000057bb js LBB23_64 + 0x4c, 0x89, 0x33, //0x000057c1 movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x000057c4 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x000057c7 movq %rbx, %r8 + 0x0f, 0x8f, 0xf0, 0xfe, 0xff, 0xff, //0x000057ca jg LBB23_3 + 0xe9, 0xc7, 0x02, 0x00, 0x00, //0x000057d0 jmp LBB23_20 + //0x000057d5 LBB23_21 + 0x3c, 0x3a, //0x000057d5 cmpb $58, %al + 0x0f, 0x85, 0xd8, 0x02, 0x00, 0x00, //0x000057d7 jne LBB23_68 + 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000057dd movq $0, (%r13,%rdx,8) + 0xe9, 0xd5, 0xfe, 0xff, 0xff, //0x000057e6 jmp LBB23_3 + //0x000057eb LBB23_23 + 0x3c, 0x5d, //0x000057eb cmpb $93, %al + 0x0f, 0x84, 0x84, 0x00, 0x00, 0x00, //0x000057ed je LBB23_12 + 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000057f3 movq $1, (%r13,%rdx,8) + 0x83, 0xfe, 0x7b, //0x000057fc cmpl $123, %esi + 0x0f, 0x87, 0xb0, 0x02, 0x00, 0x00, //0x000057ff ja LBB23_68 + //0x00005805 LBB23_25 + 0x89, 0xf0, //0x00005805 movl %esi, %eax + 0x48, 0x8d, 0x0d, 0xde, 0x03, 0x00, 0x00, //0x00005807 leaq $990(%rip), %rcx /* LJTI23_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x0000580e movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00005812 addq %rcx, %rax + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005815 movq $-1, %r14 + 0xff, 0xe0, //0x0000581c jmpq *%rax + //0x0000581e LBB23_28 + 0x4c, 0x89, 0xc3, //0x0000581e movq %r8, %rbx + 0x4d, 0x8b, 0x38, //0x00005821 movq (%r8), %r15 + 0x4d, 0x8d, 0x77, 0xff, //0x00005824 leaq $-1(%r15), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00005828 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x0000582c movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x0000582f addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x00005832 movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x00005836 subq %r14, %rsi + 0xe8, 0xf2, 0x07, 0x00, 0x00, //0x00005839 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000583e testq %rax, %rax + 0x0f, 0x88, 0x61, 0x02, 0x00, 0x00, //0x00005841 js LBB23_65 + 0x48, 0x8b, 0x0b, //0x00005847 movq (%rbx), %rcx + 0x48, 0x01, 0xc8, //0x0000584a addq %rcx, %rax + 0x48, 0x83, 0xc0, 0xff, //0x0000584d addq $-1, %rax + 0x48, 0x89, 0x03, //0x00005851 movq %rax, (%rbx) + 0x4d, 0x85, 0xff, //0x00005854 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x00005857 movq %rbx, %r8 + 0x0f, 0x8f, 0x60, 0xfe, 0xff, 0xff, //0x0000585a jg LBB23_3 + 0xe9, 0x01, 0x02, 0x00, 0x00, //0x00005860 jmp LBB23_75 + //0x00005865 LBB23_26 + 0x83, 0xfe, 0x22, //0x00005865 cmpl $34, %esi + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00005868 je LBB23_34 + //0x0000586e LBB23_15 + 0x83, 0xfe, 0x7d, //0x0000586e cmpl $125, %esi + 0x0f, 0x85, 0x3e, 0x02, 0x00, 0x00, //0x00005871 jne LBB23_68 + //0x00005877 LBB23_12 + 0x49, 0x89, 0x4d, 0x00, //0x00005877 movq %rcx, (%r13) + 0x4d, 0x89, 0xe6, //0x0000587b movq %r12, %r14 + 0x48, 0x85, 0xc9, //0x0000587e testq %rcx, %rcx + 0x0f, 0x85, 0x49, 0xfe, 0xff, 0xff, //0x00005881 jne LBB23_5 + 0xe9, 0xda, 0x01, 0x00, 0x00, //0x00005887 jmp LBB23_75 + //0x0000588c LBB23_30 + 0x48, 0x81, 0xfa, 0xff, 0x0f, 0x00, 0x00, //0x0000588c cmpq $4095, %rdx + 0x0f, 0x8f, 0xdf, 0x01, 0x00, 0x00, //0x00005893 jg LBB23_69 + 0x48, 0x8d, 0x42, 0x01, //0x00005899 leaq $1(%rdx), %rax + 0x49, 0x89, 0x45, 0x00, //0x0000589d movq %rax, (%r13) + 0x49, 0xc7, 0x44, 0xd5, 0x08, 0x00, 0x00, 0x00, 0x00, //0x000058a1 movq $0, $8(%r13,%rdx,8) + 0xe9, 0x11, 0xfe, 0xff, 0xff, //0x000058aa jmp LBB23_3 + //0x000058af LBB23_34 + 0x49, 0xc7, 0x44, 0xd5, 0x00, 0x02, 0x00, 0x00, 0x00, //0x000058af movq $2, (%r13,%rdx,8) + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000058b8 movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x000058c0 movq (%r8), %r15 + 0x4c, 0x89, 0xf7, //0x000058c3 movq %r14, %rdi + 0x4c, 0x89, 0xfe, //0x000058c6 movq %r15, %rsi + 0x48, 0x8d, 0x55, 0xd0, //0x000058c9 leaq $-48(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb8, //0x000058cd movq $-72(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x000058d1 movq %r8, %rbx + 0xe8, 0xc7, 0xef, 0xff, 0xff, //0x000058d4 callq _advance_string + 0x49, 0x89, 0xc6, //0x000058d9 movq %rax, %r14 + 0x48, 0x85, 0xc0, //0x000058dc testq %rax, %rax + 0x0f, 0x88, 0x9f, 0x01, 0x00, 0x00, //0x000058df js LBB23_64 + 0x4c, 0x89, 0x33, //0x000058e5 movq %r14, (%rbx) + 0x4d, 0x85, 0xff, //0x000058e8 testq %r15, %r15 + 0x0f, 0x8e, 0xab, 0x01, 0x00, 0x00, //0x000058eb jle LBB23_20 + 0x49, 0x8b, 0x45, 0x00, //0x000058f1 movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x000058f5 cmpq $4095, %rax + 0x0f, 0x8f, 0x77, 0x01, 0x00, 0x00, //0x000058fb jg LBB23_69 + 0x49, 0x89, 0xd8, //0x00005901 movq %rbx, %r8 + 0x48, 0x8d, 0x48, 0x01, //0x00005904 leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005908 movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x04, 0x00, 0x00, 0x00, //0x0000590c movq $4, $8(%r13,%rax,8) + 0xe9, 0xa6, 0xfd, 0xff, 0xff, //0x00005915 jmp LBB23_3 + //0x0000591a LBB23_38 + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x0000591a movq $-1, $-48(%rbp) + 0x4d, 0x8b, 0x38, //0x00005922 movq (%r8), %r15 + 0x48, 0x8b, 0x7d, 0xc8, //0x00005925 movq $-56(%rbp), %rdi + 0xe9, 0x74, 0xfe, 0xff, 0xff, //0x00005929 jmp LBB23_18 + //0x0000592e LBB23_39 + 0x4d, 0x8b, 0x30, //0x0000592e movq (%r8), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00005931 movq $-56(%rbp), %rax + 0x48, 0x8b, 0x38, //0x00005935 movq (%rax), %rdi + 0x4c, 0x01, 0xf7, //0x00005938 addq %r14, %rdi + 0x48, 0x8b, 0x70, 0x08, //0x0000593b movq $8(%rax), %rsi + 0x4c, 0x29, 0xf6, //0x0000593f subq %r14, %rsi + 0x4c, 0x89, 0xc3, //0x00005942 movq %r8, %rbx + 0xe8, 0xe6, 0x06, 0x00, 0x00, //0x00005945 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x0000594a testq %rax, %rax + 0x0f, 0x88, 0x7d, 0x01, 0x00, 0x00, //0x0000594d js LBB23_67 + 0x48, 0x01, 0x03, //0x00005953 addq %rax, (%rbx) + 0x4d, 0x85, 0xf6, //0x00005956 testq %r14, %r14 + 0x49, 0x89, 0xd8, //0x00005959 movq %rbx, %r8 + 0x0f, 0x8f, 0x5e, 0xfd, 0xff, 0xff, //0x0000595c jg LBB23_3 + 0xe9, 0x74, 0x01, 0x00, 0x00, //0x00005962 jmp LBB23_41 + //0x00005967 LBB23_42 + 0x49, 0x8b, 0x45, 0x00, //0x00005967 movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x0000596b cmpq $4095, %rax + 0x0f, 0x8f, 0x01, 0x01, 0x00, 0x00, //0x00005971 jg LBB23_69 + 0x48, 0x8d, 0x48, 0x01, //0x00005977 leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x0000597b movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x05, 0x00, 0x00, 0x00, //0x0000597f movq $5, $8(%r13,%rax,8) + 0xe9, 0x33, 0xfd, 0xff, 0xff, //0x00005988 jmp LBB23_3 + //0x0000598d LBB23_44 + 0x49, 0x8b, 0x00, //0x0000598d movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00005990 movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005994 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00005997 leaq $-4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x0000599b cmpq %rdx, %rax + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x0000599e ja LBB23_66 + 0x48, 0x8b, 0x4d, 0xc8, //0x000059a4 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000059a8 movq (%rcx), %rcx + 0x8b, 0x14, 0x01, //0x000059ab movl (%rcx,%rax), %edx + 0x81, 0xfa, 0x61, 0x6c, 0x73, 0x65, //0x000059ae cmpl $1702063201, %edx + 0x0f, 0x85, 0x2a, 0x01, 0x00, 0x00, //0x000059b4 jne LBB23_70 + 0x48, 0x8d, 0x48, 0x04, //0x000059ba leaq $4(%rax), %rcx + 0x49, 0x89, 0x08, //0x000059be movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000059c1 testq %rax, %rax + 0x0f, 0x8f, 0xf6, 0xfc, 0xff, 0xff, //0x000059c4 jg LBB23_3 + 0xe9, 0xf6, 0x01, 0x00, 0x00, //0x000059ca jmp LBB23_47 + //0x000059cf LBB23_48 + 0x49, 0x8b, 0x00, //0x000059cf movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x000059d2 movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000059d6 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x000059d9 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x000059dd cmpq %rdx, %rax + 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x000059e0 ja LBB23_66 + 0x48, 0x8b, 0x4d, 0xc8, //0x000059e6 movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x000059ea movq (%rcx), %rcx + 0x4c, 0x8d, 0x70, 0xff, //0x000059ed leaq $-1(%rax), %r14 + 0x81, 0x7c, 0x01, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x000059f1 cmpl $1819047278, $-1(%rcx,%rax) + 0x0f, 0x84, 0xae, 0xfc, 0xff, 0xff, //0x000059f9 je LBB23_2 + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x000059ff jmp LBB23_50 + //0x00005a04 LBB23_54 + 0x49, 0x8b, 0x00, //0x00005a04 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xc0, //0x00005a07 movq $-64(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005a0b movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00005a0e leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00005a12 cmpq %rdx, %rax + 0x0f, 0x87, 0xa6, 0x00, 0x00, 0x00, //0x00005a15 ja LBB23_66 + 0x48, 0x8b, 0x4d, 0xc8, //0x00005a1b movq $-56(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00005a1f movq (%rcx), %rcx + 0x4c, 0x8d, 0x70, 0xff, //0x00005a22 leaq $-1(%rax), %r14 + 0x81, 0x7c, 0x01, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00005a26 cmpl $1702195828, $-1(%rcx,%rax) + 0x0f, 0x84, 0x79, 0xfc, 0xff, 0xff, //0x00005a2e je LBB23_2 + 0xe9, 0x41, 0x01, 0x00, 0x00, //0x00005a34 jmp LBB23_56 + //0x00005a39 LBB23_61 + 0x49, 0x8b, 0x45, 0x00, //0x00005a39 movq (%r13), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00005a3d cmpq $4095, %rax + 0x0f, 0x8f, 0x2f, 0x00, 0x00, 0x00, //0x00005a43 jg LBB23_69 + 0x48, 0x8d, 0x48, 0x01, //0x00005a49 leaq $1(%rax), %rcx + 0x49, 0x89, 0x4d, 0x00, //0x00005a4d movq %rcx, (%r13) + 0x49, 0xc7, 0x44, 0xc5, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00005a51 movq $6, $8(%r13,%rax,8) + 0xe9, 0x61, 0xfc, 0xff, 0xff, //0x00005a5a jmp LBB23_3 + //0x00005a5f LBB23_63 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005a5f movq $-1, %r14 + //0x00005a66 LBB23_75 + 0x4c, 0x89, 0xf0, //0x00005a66 movq %r14, %rax + 0x48, 0x83, 0xc4, 0x28, //0x00005a69 addq $40, %rsp + 0x5b, //0x00005a6d popq %rbx + 0x41, 0x5c, //0x00005a6e popq %r12 + 0x41, 0x5d, //0x00005a70 popq %r13 + 0x41, 0x5e, //0x00005a72 popq %r14 + 0x41, 0x5f, //0x00005a74 popq %r15 + 0x5d, //0x00005a76 popq %rbp + 0xc3, //0x00005a77 retq + //0x00005a78 LBB23_69 + 0x49, 0xc7, 0xc6, 0xf9, 0xff, 0xff, 0xff, //0x00005a78 movq $-7, %r14 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00005a7f jmp LBB23_75 + //0x00005a84 LBB23_64 + 0x49, 0x83, 0xfe, 0xff, //0x00005a84 cmpq $-1, %r14 + 0x48, 0x8d, 0x45, 0xd0, //0x00005a88 leaq $-48(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xc0, //0x00005a8c cmoveq $-64(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00005a91 movq (%rax), %rax + 0x48, 0x89, 0x03, //0x00005a94 movq %rax, (%rbx) + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00005a97 jmp LBB23_75 + //0x00005a9c LBB23_20 + 0x49, 0x83, 0xc7, 0xff, //0x00005a9c addq $-1, %r15 + 0x4d, 0x89, 0xfe, //0x00005aa0 movq %r15, %r14 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00005aa3 jmp LBB23_75 + //0x00005aa8 LBB23_65 + 0x48, 0x8b, 0x0b, //0x00005aa8 movq (%rbx), %rcx + 0x48, 0x29, 0xc1, //0x00005aab subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x00005aae addq $-2, %rcx + 0x48, 0x89, 0x0b, //0x00005ab2 movq %rcx, (%rbx) + //0x00005ab5 LBB23_68 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005ab5 movq $-2, %r14 + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00005abc jmp LBB23_75 + //0x00005ac1 LBB23_66 + 0x49, 0x89, 0x08, //0x00005ac1 movq %rcx, (%r8) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005ac4 movq $-1, %r14 + 0xe9, 0x96, 0xff, 0xff, 0xff, //0x00005acb jmp LBB23_75 + //0x00005ad0 LBB23_67 + 0x48, 0xf7, 0xd0, //0x00005ad0 notq %rax + 0x48, 0x01, 0x03, //0x00005ad3 addq %rax, (%rbx) + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00005ad6 jmp LBB23_68 + //0x00005adb LBB23_41 + 0x49, 0x83, 0xc6, 0xff, //0x00005adb addq $-1, %r14 + 0xe9, 0x82, 0xff, 0xff, 0xff, //0x00005adf jmp LBB23_75 + //0x00005ae4 LBB23_70 + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005ae4 movq $-2, %r14 + 0x80, 0xfa, 0x61, //0x00005aeb cmpb $97, %dl + 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00005aee jne LBB23_75 + 0x48, 0x8d, 0x50, 0x01, //0x00005af4 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005af8 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005afb cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0x60, 0xff, 0xff, 0xff, //0x00005b00 jne LBB23_75 + 0x48, 0x8d, 0x50, 0x02, //0x00005b06 leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005b0a movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x73, //0x00005b0d cmpb $115, $2(%rcx,%rax) + 0x0f, 0x85, 0x4e, 0xff, 0xff, 0xff, //0x00005b12 jne LBB23_75 + 0x48, 0x8d, 0x50, 0x03, //0x00005b18 leaq $3(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005b1c movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x03, 0x65, //0x00005b1f cmpb $101, $3(%rcx,%rax) + 0x0f, 0x85, 0x3c, 0xff, 0xff, 0xff, //0x00005b24 jne LBB23_75 + 0x48, 0x83, 0xc0, 0x04, //0x00005b2a addq $4, %rax + 0x49, 0x89, 0x00, //0x00005b2e movq %rax, (%r8) + 0xe9, 0x30, 0xff, 0xff, 0xff, //0x00005b31 jmp LBB23_75 + //0x00005b36 LBB23_50 + 0x4d, 0x89, 0x30, //0x00005b36 movq %r14, (%r8) + 0x42, 0x80, 0x3c, 0x31, 0x6e, //0x00005b39 cmpb $110, (%rcx,%r14) + 0x0f, 0x85, 0x71, 0xff, 0xff, 0xff, //0x00005b3e jne LBB23_68 + 0x49, 0x89, 0x00, //0x00005b44 movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x75, //0x00005b47 cmpb $117, (%rcx,%rax) + 0x0f, 0x85, 0x64, 0xff, 0xff, 0xff, //0x00005b4b jne LBB23_68 + 0x48, 0x8d, 0x50, 0x01, //0x00005b51 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005b55 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x6c, //0x00005b58 cmpb $108, $1(%rcx,%rax) + 0x0f, 0x85, 0x52, 0xff, 0xff, 0xff, //0x00005b5d jne LBB23_68 + 0x48, 0x8d, 0x50, 0x02, //0x00005b63 leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005b67 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x6c, //0x00005b6a cmpb $108, $2(%rcx,%rax) + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00005b6f je LBB23_60 + 0xe9, 0x3b, 0xff, 0xff, 0xff, //0x00005b75 jmp LBB23_68 + //0x00005b7a LBB23_56 + 0x4d, 0x89, 0x30, //0x00005b7a movq %r14, (%r8) + 0x42, 0x80, 0x3c, 0x31, 0x74, //0x00005b7d cmpb $116, (%rcx,%r14) + 0x0f, 0x85, 0x2d, 0xff, 0xff, 0xff, //0x00005b82 jne LBB23_68 + 0x49, 0x89, 0x00, //0x00005b88 movq %rax, (%r8) + 0x80, 0x3c, 0x01, 0x72, //0x00005b8b cmpb $114, (%rcx,%rax) + 0x0f, 0x85, 0x20, 0xff, 0xff, 0xff, //0x00005b8f jne LBB23_68 + 0x48, 0x8d, 0x50, 0x01, //0x00005b95 leaq $1(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005b99 movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x01, 0x75, //0x00005b9c cmpb $117, $1(%rcx,%rax) + 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x00005ba1 jne LBB23_68 + 0x48, 0x8d, 0x50, 0x02, //0x00005ba7 leaq $2(%rax), %rdx + 0x49, 0x89, 0x10, //0x00005bab movq %rdx, (%r8) + 0x80, 0x7c, 0x01, 0x02, 0x65, //0x00005bae cmpb $101, $2(%rcx,%rax) + 0x0f, 0x85, 0xfc, 0xfe, 0xff, 0xff, //0x00005bb3 jne LBB23_68 + //0x00005bb9 LBB23_60 + 0x48, 0x83, 0xc0, 0x03, //0x00005bb9 addq $3, %rax + 0x49, 0x89, 0x00, //0x00005bbd movq %rax, (%r8) + 0xe9, 0xf0, 0xfe, 0xff, 0xff, //0x00005bc0 jmp LBB23_68 + //0x00005bc5 LBB23_47 + 0x48, 0x83, 0xc0, 0xff, //0x00005bc5 addq $-1, %rax + 0x49, 0x89, 0xc6, //0x00005bc9 movq %rax, %r14 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00005bcc jmp LBB23_75 + 0x90, 0x90, 0x90, //0x00005bd1 .p2align 2, 0x90 + // // .set L23_0_set_10, LBB23_10-LJTI23_0 + // // .set L23_0_set_14, LBB23_14-LJTI23_0 + // // .set L23_0_set_16, LBB23_16-LJTI23_0 + // // .set L23_0_set_21, LBB23_21-LJTI23_0 + // // .set L23_0_set_23, LBB23_23-LJTI23_0 + // // .set L23_0_set_26, LBB23_26-LJTI23_0 + //0x00005bd4 LJTI23_0 + 0x5a, 0xfb, 0xff, 0xff, //0x00005bd4 .long L23_0_set_10 + 0x83, 0xfb, 0xff, 0xff, //0x00005bd8 .long L23_0_set_14 + 0xaf, 0xfb, 0xff, 0xff, //0x00005bdc .long L23_0_set_16 + 0x01, 0xfc, 0xff, 0xff, //0x00005be0 .long L23_0_set_21 + 0x17, 0xfc, 0xff, 0xff, //0x00005be4 .long L23_0_set_23 + 0x91, 0xfc, 0xff, 0xff, //0x00005be8 .long L23_0_set_26 + // // .set L23_1_set_75, LBB23_75-LJTI23_1 + // // .set L23_1_set_68, LBB23_68-LJTI23_1 + // // .set L23_1_set_38, LBB23_38-LJTI23_1 + // // .set L23_1_set_39, LBB23_39-LJTI23_1 + // // .set L23_1_set_28, LBB23_28-LJTI23_1 + // // .set L23_1_set_42, LBB23_42-LJTI23_1 + // // .set L23_1_set_44, LBB23_44-LJTI23_1 + // // .set L23_1_set_48, LBB23_48-LJTI23_1 + // // .set L23_1_set_54, LBB23_54-LJTI23_1 + // // .set L23_1_set_61, LBB23_61-LJTI23_1 + //0x00005bec LJTI23_1 + 0x7a, 0xfe, 0xff, 0xff, //0x00005bec .long L23_1_set_75 + 0xc9, 0xfe, 0xff, 0xff, //0x00005bf0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005bf4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005bf8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005bfc .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c00 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c04 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c08 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c0c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c10 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c14 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c18 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c1c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c20 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c24 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c28 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c2c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c30 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c34 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c38 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c3c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c40 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c44 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c48 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c4c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c50 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c54 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c58 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c5c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c60 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c64 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c68 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c6c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c70 .long L23_1_set_68 + 0x2e, 0xfd, 0xff, 0xff, //0x00005c74 .long L23_1_set_38 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c78 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c7c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c80 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c84 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c88 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c8c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c90 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c94 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c98 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005c9c .long L23_1_set_68 + 0x42, 0xfd, 0xff, 0xff, //0x00005ca0 .long L23_1_set_39 + 0xc9, 0xfe, 0xff, 0xff, //0x00005ca4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005ca8 .long L23_1_set_68 + 0x32, 0xfc, 0xff, 0xff, //0x00005cac .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cb0 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cb4 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cb8 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cbc .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cc0 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cc4 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cc8 .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005ccc .long L23_1_set_28 + 0x32, 0xfc, 0xff, 0xff, //0x00005cd0 .long L23_1_set_28 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cd4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cd8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cdc .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005ce0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005ce4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005ce8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cec .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cf0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cf4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cf8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005cfc .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d00 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d04 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d08 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d0c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d10 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d14 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d18 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d1c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d20 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d24 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d28 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d2c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d30 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d34 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d38 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d3c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d40 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d44 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d48 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d4c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d50 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d54 .long L23_1_set_68 + 0x7b, 0xfd, 0xff, 0xff, //0x00005d58 .long L23_1_set_42 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d5c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d60 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d64 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d68 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d6c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d70 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d74 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d78 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d7c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d80 .long L23_1_set_68 + 0xa1, 0xfd, 0xff, 0xff, //0x00005d84 .long L23_1_set_44 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d88 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d8c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d90 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d94 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d98 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005d9c .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005da0 .long L23_1_set_68 + 0xe3, 0xfd, 0xff, 0xff, //0x00005da4 .long L23_1_set_48 + 0xc9, 0xfe, 0xff, 0xff, //0x00005da8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dac .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005db0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005db4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005db8 .long L23_1_set_68 + 0x18, 0xfe, 0xff, 0xff, //0x00005dbc .long L23_1_set_54 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dc0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dc4 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dc8 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dcc .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dd0 .long L23_1_set_68 + 0xc9, 0xfe, 0xff, 0xff, //0x00005dd4 .long L23_1_set_68 + 0x4d, 0xfe, 0xff, 0xff, //0x00005dd8 .long L23_1_set_61 + 0x00, 0x00, 0x00, 0x00, //0x00005ddc .p2align 4, 0x00 + //0x00005de0 LCPI24_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005de0 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005de8 .quad 6 + //0x00005df0 .p2align 4, 0x90 + //0x00005df0 _skip_object + 0x55, //0x00005df0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005df1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005df4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005df7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x00005dfa movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x00005dfd vmovaps $-37(%rip), %xmm0 /* LCPI24_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00005e05 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005e09 movq %rax, %rdi + 0x5d, //0x00005e0c popq %rbp + 0xe9, 0x5e, 0xf8, 0xff, 0xff, //0x00005e0d jmp _fsm_exec + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005e12 .p2align 4, 0x90 + //0x00005e20 _skip_string + 0x55, //0x00005e20 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005e21 movq %rsp, %rbp + 0x41, 0x57, //0x00005e24 pushq %r15 + 0x41, 0x56, //0x00005e26 pushq %r14 + 0x41, 0x54, //0x00005e28 pushq %r12 + 0x53, //0x00005e2a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00005e2b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x00005e2f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00005e32 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00005e35 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005e38 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00005e40 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00005e43 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00005e47 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x00005e4a movq %r12, %rdx + 0xe8, 0x4e, 0xea, 0xff, 0xff, //0x00005e4d callq _advance_string + 0x48, 0x85, 0xc0, //0x00005e52 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005e55 js LBB25_1 + 0x48, 0x83, 0xc3, 0xff, //0x00005e5b addq $-1, %rbx + 0x48, 0x89, 0xc1, //0x00005e5f movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00005e62 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005e65 jmp LBB25_3 + //0x00005e6a LBB25_1 + 0x49, 0x83, 0xc7, 0x08, //0x00005e6a addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x00005e6e cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00005e72 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00005e76 movq (%r12), %rcx + //0x00005e7a LBB25_3 + 0x49, 0x89, 0x0e, //0x00005e7a movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00005e7d addq $16, %rsp + 0x5b, //0x00005e81 popq %rbx + 0x41, 0x5c, //0x00005e82 popq %r12 + 0x41, 0x5e, //0x00005e84 popq %r14 + 0x41, 0x5f, //0x00005e86 popq %r15 + 0x5d, //0x00005e88 popq %rbp + 0xc3, //0x00005e89 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005e8a .p2align 4, 0x90 + //0x00005e90 _skip_negative + 0x55, //0x00005e90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005e91 movq %rsp, %rbp + 0x41, 0x56, //0x00005e94 pushq %r14 + 0x53, //0x00005e96 pushq %rbx + 0x49, 0x89, 0xf6, //0x00005e97 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x00005e9a movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x00005e9d movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005ea0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x00005ea3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x00005ea7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x00005eaa movq %rax, %rdi + 0xe8, 0x7e, 0x01, 0x00, 0x00, //0x00005ead callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00005eb2 testq %rax, %rax + 0x0f, 0x88, 0x0c, 0x00, 0x00, 0x00, //0x00005eb5 js LBB26_1 + 0x49, 0x01, 0x06, //0x00005ebb addq %rax, (%r14) + 0x48, 0x83, 0xc3, 0xff, //0x00005ebe addq $-1, %rbx + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005ec2 jmp LBB26_3 + //0x00005ec7 LBB26_1 + 0x48, 0xf7, 0xd0, //0x00005ec7 notq %rax + 0x49, 0x01, 0x06, //0x00005eca addq %rax, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x00005ecd movq $-2, %rbx + //0x00005ed4 LBB26_3 + 0x48, 0x89, 0xd8, //0x00005ed4 movq %rbx, %rax + 0x5b, //0x00005ed7 popq %rbx + 0x41, 0x5e, //0x00005ed8 popq %r14 + 0x5d, //0x00005eda popq %rbp + 0xc3, //0x00005edb retq + 0x00, 0x00, 0x00, 0x00, //0x00005edc .p2align 5, 0x00 + //0x00005ee0 LCPI27_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005ee0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005ef0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005f00 LCPI27_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005f00 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005f10 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005f20 LCPI27_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005f20 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005f30 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005f40 LCPI27_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005f40 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005f50 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005f60 LCPI27_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005f60 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, //0x00005f70 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00005f80 LCPI27_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005f80 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005f90 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005fa0 LCPI27_6 + 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005fa0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' + 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005fb0 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' + //0x00005fc0 .p2align 4, 0x00 + //0x00005fc0 LCPI27_7 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005fc0 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005fd0 LCPI27_8 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005fd0 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005fe0 LCPI27_9 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005fe0 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005ff0 LCPI27_10 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005ff0 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00006000 LCPI27_11 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006000 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00006010 LCPI27_12 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00006010 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00006020 LCPI27_13 + 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00006020 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' + //0x00006030 .p2align 4, 0x90 + //0x00006030 _do_skip_number + 0x55, //0x00006030 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006031 movq %rsp, %rbp + 0x41, 0x57, //0x00006034 pushq %r15 + 0x41, 0x56, //0x00006036 pushq %r14 + 0x41, 0x54, //0x00006038 pushq %r12 + 0x53, //0x0000603a pushq %rbx + 0x48, 0x85, 0xf6, //0x0000603b testq %rsi, %rsi + 0x0f, 0x84, 0xa5, 0x03, 0x00, 0x00, //0x0000603e je LBB27_1 + 0x80, 0x3f, 0x30, //0x00006044 cmpb $48, (%rdi) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00006047 jne LBB27_6 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000604d movl $1, %eax + 0x48, 0x83, 0xfe, 0x01, //0x00006052 cmpq $1, %rsi + 0x0f, 0x84, 0xb9, 0x04, 0x00, 0x00, //0x00006056 je LBB27_81 + 0x8a, 0x4f, 0x01, //0x0000605c movb $1(%rdi), %cl + 0x80, 0xc1, 0xd2, //0x0000605f addb $-46, %cl + 0x80, 0xf9, 0x37, //0x00006062 cmpb $55, %cl + 0x0f, 0x87, 0xaa, 0x04, 0x00, 0x00, //0x00006065 ja LBB27_81 + 0x0f, 0xb6, 0xc9, //0x0000606b movzbl %cl, %ecx + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x0000606e movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x00006078 btq %rcx, %rdx + 0x0f, 0x83, 0x93, 0x04, 0x00, 0x00, //0x0000607c jae LBB27_81 + //0x00006082 LBB27_6 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006082 movq $-1, %r9 + 0x48, 0x83, 0xfe, 0x20, //0x00006089 cmpq $32, %rsi + 0x0f, 0x82, 0x8e, 0x04, 0x00, 0x00, //0x0000608d jb LBB27_7 + 0x31, 0xc0, //0x00006093 xorl %eax, %eax + 0xc5, 0xfd, 0x6f, 0x05, 0x43, 0xfe, 0xff, 0xff, //0x00006095 vmovdqa $-445(%rip), %ymm0 /* LCPI27_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x5b, 0xfe, 0xff, 0xff, //0x0000609d vmovdqa $-421(%rip), %ymm1 /* LCPI27_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x73, 0xfe, 0xff, 0xff, //0x000060a5 vmovdqa $-397(%rip), %ymm2 /* LCPI27_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x1d, 0x8b, 0xfe, 0xff, 0xff, //0x000060ad vmovdqa $-373(%rip), %ymm3 /* LCPI27_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xa3, 0xfe, 0xff, 0xff, //0x000060b5 vmovdqa $-349(%rip), %ymm4 /* LCPI27_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0xbb, 0xfe, 0xff, 0xff, //0x000060bd vmovdqa $-325(%rip), %ymm5 /* LCPI27_5+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xd3, 0xfe, 0xff, 0xff, //0x000060c5 vmovdqa $-301(%rip), %ymm6 /* LCPI27_6+0(%rip) */ + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000060cd movq $-1, %r8 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000060d4 movq $-1, %r10 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000060db .p2align 4, 0x90 + //0x000060e0 LBB27_9 + 0xc5, 0xfe, 0x6f, 0x3c, 0x07, //0x000060e0 vmovdqu (%rdi,%rax), %ymm7 + 0xc5, 0x45, 0x64, 0xc0, //0x000060e5 vpcmpgtb %ymm0, %ymm7, %ymm8 + 0xc5, 0x75, 0x64, 0xcf, //0x000060e9 vpcmpgtb %ymm7, %ymm1, %ymm9 + 0xc4, 0x41, 0x35, 0xdb, 0xc0, //0x000060ed vpand %ymm8, %ymm9, %ymm8 + 0xc5, 0x45, 0x74, 0xca, //0x000060f2 vpcmpeqb %ymm2, %ymm7, %ymm9 + 0xc5, 0x45, 0x74, 0xd3, //0x000060f6 vpcmpeqb %ymm3, %ymm7, %ymm10 + 0xc4, 0x41, 0x2d, 0xeb, 0xc9, //0x000060fa vpor %ymm9, %ymm10, %ymm9 + 0xc5, 0x45, 0xdb, 0xd4, //0x000060ff vpand %ymm4, %ymm7, %ymm10 + 0xc5, 0x2d, 0x74, 0xd6, //0x00006103 vpcmpeqb %ymm6, %ymm10, %ymm10 + 0xc5, 0xc5, 0x74, 0xfd, //0x00006107 vpcmpeqb %ymm5, %ymm7, %ymm7 + 0xc5, 0xfd, 0xd7, 0xd7, //0x0000610b vpmovmskb %ymm7, %edx + 0xc4, 0x41, 0x7d, 0xd7, 0xfa, //0x0000610f vpmovmskb %ymm10, %r15d + 0xc4, 0x41, 0x7d, 0xd7, 0xd9, //0x00006114 vpmovmskb %ymm9, %r11d + 0xc5, 0xbd, 0xeb, 0xff, //0x00006119 vpor %ymm7, %ymm8, %ymm7 + 0xc4, 0x41, 0x2d, 0xeb, 0xc1, //0x0000611d vpor %ymm9, %ymm10, %ymm8 + 0xc5, 0xbd, 0xeb, 0xff, //0x00006122 vpor %ymm7, %ymm8, %ymm7 + 0xc5, 0xfd, 0xd7, 0xcf, //0x00006126 vpmovmskb %ymm7, %ecx + 0x48, 0xf7, 0xd1, //0x0000612a notq %rcx + 0x4c, 0x0f, 0xbc, 0xf1, //0x0000612d bsfq %rcx, %r14 + 0x41, 0x83, 0xfe, 0x20, //0x00006131 cmpl $32, %r14d + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006135 je LBB27_11 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x0000613b movl $-1, %ebx + 0x44, 0x89, 0xf1, //0x00006140 movl %r14d, %ecx + 0xd3, 0xe3, //0x00006143 shll %cl, %ebx + 0xf7, 0xd3, //0x00006145 notl %ebx + 0x21, 0xda, //0x00006147 andl %ebx, %edx + 0x41, 0x21, 0xdf, //0x00006149 andl %ebx, %r15d + 0x44, 0x21, 0xdb, //0x0000614c andl %r11d, %ebx + 0x41, 0x89, 0xdb, //0x0000614f movl %ebx, %r11d + //0x00006152 LBB27_11 + 0x8d, 0x4a, 0xff, //0x00006152 leal $-1(%rdx), %ecx + 0x21, 0xd1, //0x00006155 andl %edx, %ecx + 0x0f, 0x85, 0x85, 0x03, 0x00, 0x00, //0x00006157 jne LBB27_12 + 0x41, 0x8d, 0x4f, 0xff, //0x0000615d leal $-1(%r15), %ecx + 0x44, 0x21, 0xf9, //0x00006161 andl %r15d, %ecx + 0x0f, 0x85, 0x78, 0x03, 0x00, 0x00, //0x00006164 jne LBB27_12 + 0x41, 0x8d, 0x4b, 0xff, //0x0000616a leal $-1(%r11), %ecx + 0x44, 0x21, 0xd9, //0x0000616e andl %r11d, %ecx + 0x0f, 0x85, 0x6b, 0x03, 0x00, 0x00, //0x00006171 jne LBB27_12 + 0x85, 0xd2, //0x00006177 testl %edx, %edx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x00006179 je LBB27_19 + 0x0f, 0xbc, 0xca, //0x0000617f bsfl %edx, %ecx + 0x49, 0x83, 0xfa, 0xff, //0x00006182 cmpq $-1, %r10 + 0x0f, 0x85, 0x5e, 0x03, 0x00, 0x00, //0x00006186 jne LBB27_82 + 0x48, 0x01, 0xc1, //0x0000618c addq %rax, %rcx + 0x49, 0x89, 0xca, //0x0000618f movq %rcx, %r10 + //0x00006192 LBB27_19 + 0x45, 0x85, 0xff, //0x00006192 testl %r15d, %r15d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00006195 je LBB27_22 + 0x41, 0x0f, 0xbc, 0xcf, //0x0000619b bsfl %r15d, %ecx + 0x49, 0x83, 0xf8, 0xff, //0x0000619f cmpq $-1, %r8 + 0x0f, 0x85, 0x41, 0x03, 0x00, 0x00, //0x000061a3 jne LBB27_82 + 0x48, 0x01, 0xc1, //0x000061a9 addq %rax, %rcx + 0x49, 0x89, 0xc8, //0x000061ac movq %rcx, %r8 + //0x000061af LBB27_22 + 0x45, 0x85, 0xdb, //0x000061af testl %r11d, %r11d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000061b2 je LBB27_25 + 0x41, 0x0f, 0xbc, 0xcb, //0x000061b8 bsfl %r11d, %ecx + 0x49, 0x83, 0xf9, 0xff, //0x000061bc cmpq $-1, %r9 + 0x0f, 0x85, 0x24, 0x03, 0x00, 0x00, //0x000061c0 jne LBB27_82 + 0x48, 0x01, 0xc1, //0x000061c6 addq %rax, %rcx + 0x49, 0x89, 0xc9, //0x000061c9 movq %rcx, %r9 + //0x000061cc LBB27_25 + 0x41, 0x83, 0xfe, 0x20, //0x000061cc cmpl $32, %r14d + 0x0f, 0x85, 0x1f, 0x02, 0x00, 0x00, //0x000061d0 jne LBB27_83 + 0x48, 0x83, 0xc6, 0xe0, //0x000061d6 addq $-32, %rsi + 0x48, 0x83, 0xc0, 0x20, //0x000061da addq $32, %rax + 0x48, 0x83, 0xfe, 0x1f, //0x000061de cmpq $31, %rsi + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x000061e2 ja LBB27_9 + 0xc5, 0xf8, 0x77, //0x000061e8 vzeroupper + 0x48, 0x01, 0xf8, //0x000061eb addq %rdi, %rax + 0x49, 0x89, 0xc6, //0x000061ee movq %rax, %r14 + 0x48, 0x83, 0xfe, 0x10, //0x000061f1 cmpq $16, %rsi + 0x0f, 0x82, 0x50, 0x01, 0x00, 0x00, //0x000061f5 jb LBB27_49 + //0x000061fb LBB27_29 + 0x4d, 0x89, 0xf3, //0x000061fb movq %r14, %r11 + 0x49, 0x29, 0xfb, //0x000061fe subq %rdi, %r11 + 0x31, 0xc0, //0x00006201 xorl %eax, %eax + 0xc5, 0x79, 0x6f, 0x05, 0xb5, 0xfd, 0xff, 0xff, //0x00006203 vmovdqa $-587(%rip), %xmm8 /* LCPI27_7+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x0d, 0xbd, 0xfd, 0xff, 0xff, //0x0000620b vmovdqa $-579(%rip), %xmm9 /* LCPI27_8+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x15, 0xc5, 0xfd, 0xff, 0xff, //0x00006213 vmovdqa $-571(%rip), %xmm10 /* LCPI27_9+0(%rip) */ + 0xc5, 0x79, 0x6f, 0x1d, 0xcd, 0xfd, 0xff, 0xff, //0x0000621b vmovdqa $-563(%rip), %xmm11 /* LCPI27_10+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x25, 0xd5, 0xfd, 0xff, 0xff, //0x00006223 vmovdqa $-555(%rip), %xmm4 /* LCPI27_11+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x2d, 0xdd, 0xfd, 0xff, 0xff, //0x0000622b vmovdqa $-547(%rip), %xmm5 /* LCPI27_12+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x35, 0xe5, 0xfd, 0xff, 0xff, //0x00006233 vmovdqa $-539(%rip), %xmm6 /* LCPI27_13+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000623b .p2align 4, 0x90 + //0x00006240 LBB27_30 + 0xc4, 0xc1, 0x7a, 0x6f, 0x3c, 0x06, //0x00006240 vmovdqu (%r14,%rax), %xmm7 + 0xc4, 0xc1, 0x41, 0x64, 0xc0, //0x00006246 vpcmpgtb %xmm8, %xmm7, %xmm0 + 0xc5, 0xb1, 0x64, 0xcf, //0x0000624b vpcmpgtb %xmm7, %xmm9, %xmm1 + 0xc5, 0xf9, 0xdb, 0xc1, //0x0000624f vpand %xmm1, %xmm0, %xmm0 + 0xc5, 0xa9, 0x74, 0xcf, //0x00006253 vpcmpeqb %xmm7, %xmm10, %xmm1 + 0xc5, 0xa1, 0x74, 0xd7, //0x00006257 vpcmpeqb %xmm7, %xmm11, %xmm2 + 0xc5, 0xe9, 0xeb, 0xc9, //0x0000625b vpor %xmm1, %xmm2, %xmm1 + 0xc5, 0xc1, 0xdb, 0xd4, //0x0000625f vpand %xmm4, %xmm7, %xmm2 + 0xc5, 0xe9, 0x74, 0xd6, //0x00006263 vpcmpeqb %xmm6, %xmm2, %xmm2 + 0xc5, 0xc1, 0x74, 0xfd, //0x00006267 vpcmpeqb %xmm5, %xmm7, %xmm7 + 0xc5, 0xe9, 0xeb, 0xdf, //0x0000626b vpor %xmm7, %xmm2, %xmm3 + 0xc5, 0xf1, 0xeb, 0xc0, //0x0000626f vpor %xmm0, %xmm1, %xmm0 + 0xc5, 0xe1, 0xeb, 0xc0, //0x00006273 vpor %xmm0, %xmm3, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd7, //0x00006277 vpmovmskb %xmm7, %edx + 0xc5, 0x79, 0xd7, 0xe2, //0x0000627b vpmovmskb %xmm2, %r12d + 0xc5, 0x79, 0xd7, 0xf9, //0x0000627f vpmovmskb %xmm1, %r15d + 0xc5, 0xf9, 0xd7, 0xc8, //0x00006283 vpmovmskb %xmm0, %ecx + 0xf7, 0xd1, //0x00006287 notl %ecx + 0x0f, 0xbc, 0xc9, //0x00006289 bsfl %ecx, %ecx + 0x83, 0xf9, 0x10, //0x0000628c cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000628f je LBB27_32 + 0xbb, 0xff, 0xff, 0xff, 0xff, //0x00006295 movl $-1, %ebx + 0xd3, 0xe3, //0x0000629a shll %cl, %ebx + 0xf7, 0xd3, //0x0000629c notl %ebx + 0x21, 0xda, //0x0000629e andl %ebx, %edx + 0x41, 0x21, 0xdc, //0x000062a0 andl %ebx, %r12d + 0x44, 0x21, 0xfb, //0x000062a3 andl %r15d, %ebx + 0x41, 0x89, 0xdf, //0x000062a6 movl %ebx, %r15d + //0x000062a9 LBB27_32 + 0x8d, 0x5a, 0xff, //0x000062a9 leal $-1(%rdx), %ebx + 0x21, 0xd3, //0x000062ac andl %edx, %ebx + 0x0f, 0x85, 0x43, 0x02, 0x00, 0x00, //0x000062ae jne LBB27_33 + 0x41, 0x8d, 0x5c, 0x24, 0xff, //0x000062b4 leal $-1(%r12), %ebx + 0x44, 0x21, 0xe3, //0x000062b9 andl %r12d, %ebx + 0x0f, 0x85, 0x35, 0x02, 0x00, 0x00, //0x000062bc jne LBB27_33 + 0x41, 0x8d, 0x5f, 0xff, //0x000062c2 leal $-1(%r15), %ebx + 0x44, 0x21, 0xfb, //0x000062c6 andl %r15d, %ebx + 0x0f, 0x85, 0x28, 0x02, 0x00, 0x00, //0x000062c9 jne LBB27_33 + 0x85, 0xd2, //0x000062cf testl %edx, %edx + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x000062d1 je LBB27_40 + 0x0f, 0xbc, 0xd2, //0x000062d7 bsfl %edx, %edx + 0x49, 0x83, 0xfa, 0xff, //0x000062da cmpq $-1, %r10 + 0x0f, 0x85, 0x23, 0x02, 0x00, 0x00, //0x000062de jne LBB27_84 + 0x4c, 0x01, 0xda, //0x000062e4 addq %r11, %rdx + 0x48, 0x01, 0xc2, //0x000062e7 addq %rax, %rdx + 0x49, 0x89, 0xd2, //0x000062ea movq %rdx, %r10 + //0x000062ed LBB27_40 + 0x45, 0x85, 0xe4, //0x000062ed testl %r12d, %r12d + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000062f0 je LBB27_43 + 0x41, 0x0f, 0xbc, 0xd4, //0x000062f6 bsfl %r12d, %edx + 0x49, 0x83, 0xf8, 0xff, //0x000062fa cmpq $-1, %r8 + 0x0f, 0x85, 0x03, 0x02, 0x00, 0x00, //0x000062fe jne LBB27_84 + 0x4c, 0x01, 0xda, //0x00006304 addq %r11, %rdx + 0x48, 0x01, 0xc2, //0x00006307 addq %rax, %rdx + 0x49, 0x89, 0xd0, //0x0000630a movq %rdx, %r8 + //0x0000630d LBB27_43 + 0x45, 0x85, 0xff, //0x0000630d testl %r15d, %r15d + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006310 je LBB27_46 + 0x41, 0x0f, 0xbc, 0xd7, //0x00006316 bsfl %r15d, %edx + 0x49, 0x83, 0xf9, 0xff, //0x0000631a cmpq $-1, %r9 + 0x0f, 0x85, 0xe3, 0x01, 0x00, 0x00, //0x0000631e jne LBB27_84 + 0x4c, 0x01, 0xda, //0x00006324 addq %r11, %rdx + 0x48, 0x01, 0xc2, //0x00006327 addq %rax, %rdx + 0x49, 0x89, 0xd1, //0x0000632a movq %rdx, %r9 + //0x0000632d LBB27_46 + 0x83, 0xf9, 0x10, //0x0000632d cmpl $16, %ecx + 0x0f, 0x85, 0xdd, 0x00, 0x00, 0x00, //0x00006330 jne LBB27_65 + 0x48, 0x83, 0xc6, 0xf0, //0x00006336 addq $-16, %rsi + 0x48, 0x83, 0xc0, 0x10, //0x0000633a addq $16, %rax + 0x48, 0x83, 0xfe, 0x0f, //0x0000633e cmpq $15, %rsi + 0x0f, 0x87, 0xf8, 0xfe, 0xff, 0xff, //0x00006342 ja LBB27_30 + 0x49, 0x01, 0xc6, //0x00006348 addq %rax, %r14 + //0x0000634b LBB27_49 + 0x48, 0x85, 0xf6, //0x0000634b testq %rsi, %rsi + 0x0f, 0x84, 0xc7, 0x00, 0x00, 0x00, //0x0000634e je LBB27_67 + 0x4d, 0x8d, 0x1c, 0x36, //0x00006354 leaq (%r14,%rsi), %r11 + 0x4c, 0x89, 0xf2, //0x00006358 movq %r14, %rdx + 0x48, 0x29, 0xfa, //0x0000635b subq %rdi, %rdx + 0x31, 0xc0, //0x0000635e xorl %eax, %eax + 0x4c, 0x8d, 0x3d, 0xdd, 0x01, 0x00, 0x00, //0x00006360 leaq $477(%rip), %r15 /* LJTI27_0+0(%rip) */ + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00006367 jmp LBB27_51 + //0x0000636c LBB27_53 + 0x83, 0xf9, 0x65, //0x0000636c cmpl $101, %ecx + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x0000636f jne LBB27_66 + //0x00006375 LBB27_54 + 0x49, 0x83, 0xf8, 0xff, //0x00006375 cmpq $-1, %r8 + 0x0f, 0x85, 0x80, 0x01, 0x00, 0x00, //0x00006379 jne LBB27_59 + 0x4c, 0x8d, 0x04, 0x02, //0x0000637f leaq (%rdx,%rax), %r8 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006383 .p2align 4, 0x90 + //0x00006390 LBB27_63 + 0x48, 0x83, 0xc0, 0x01, //0x00006390 addq $1, %rax + 0x48, 0x39, 0xc6, //0x00006394 cmpq %rax, %rsi + 0x0f, 0x84, 0x2d, 0x01, 0x00, 0x00, //0x00006397 je LBB27_64 + //0x0000639d LBB27_51 + 0x41, 0x0f, 0xbe, 0x0c, 0x06, //0x0000639d movsbl (%r14,%rax), %ecx + 0x8d, 0x59, 0xd0, //0x000063a2 leal $-48(%rcx), %ebx + 0x83, 0xfb, 0x0a, //0x000063a5 cmpl $10, %ebx + 0x0f, 0x82, 0xe2, 0xff, 0xff, 0xff, //0x000063a8 jb LBB27_63 + 0x8d, 0x59, 0xd5, //0x000063ae leal $-43(%rcx), %ebx + 0x83, 0xfb, 0x1a, //0x000063b1 cmpl $26, %ebx + 0x0f, 0x87, 0xb2, 0xff, 0xff, 0xff, //0x000063b4 ja LBB27_53 + 0x49, 0x63, 0x0c, 0x9f, //0x000063ba movslq (%r15,%rbx,4), %rcx + 0x4c, 0x01, 0xf9, //0x000063be addq %r15, %rcx + 0xff, 0xe1, //0x000063c1 jmpq *%rcx + //0x000063c3 LBB27_61 + 0x49, 0x83, 0xf9, 0xff, //0x000063c3 cmpq $-1, %r9 + 0x0f, 0x85, 0x32, 0x01, 0x00, 0x00, //0x000063c7 jne LBB27_59 + 0x4c, 0x8d, 0x0c, 0x02, //0x000063cd leaq (%rdx,%rax), %r9 + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000063d1 jmp LBB27_63 + //0x000063d6 LBB27_57 + 0x49, 0x83, 0xfa, 0xff, //0x000063d6 cmpq $-1, %r10 + 0x0f, 0x85, 0x1f, 0x01, 0x00, 0x00, //0x000063da jne LBB27_59 + 0x4c, 0x8d, 0x14, 0x02, //0x000063e0 leaq (%rdx,%rax), %r10 + 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000063e4 jmp LBB27_63 + //0x000063e9 LBB27_1 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063e9 movq $-1, %rax + 0xe9, 0x20, 0x01, 0x00, 0x00, //0x000063f0 jmp LBB27_81 + //0x000063f5 LBB27_83 + 0x49, 0x01, 0xc6, //0x000063f5 addq %rax, %r14 + 0x49, 0x01, 0xfe, //0x000063f8 addq %rdi, %r14 + 0xc5, 0xf8, 0x77, //0x000063fb vzeroupper + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000063fe movq $-1, %rax + 0x4d, 0x85, 0xd2, //0x00006405 testq %r10, %r10 + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00006408 jne LBB27_68 + 0xe9, 0x02, 0x01, 0x00, 0x00, //0x0000640e jmp LBB27_81 + //0x00006413 LBB27_65 + 0x89, 0xc9, //0x00006413 movl %ecx, %ecx + 0x49, 0x01, 0xce, //0x00006415 addq %rcx, %r14 + //0x00006418 LBB27_66 + 0x49, 0x01, 0xc6, //0x00006418 addq %rax, %r14 + //0x0000641b LBB27_67 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000641b movq $-1, %rax + 0x4d, 0x85, 0xd2, //0x00006422 testq %r10, %r10 + 0x0f, 0x84, 0xea, 0x00, 0x00, 0x00, //0x00006425 je LBB27_81 + //0x0000642b LBB27_68 + 0x4d, 0x85, 0xc9, //0x0000642b testq %r9, %r9 + 0x0f, 0x84, 0xe1, 0x00, 0x00, 0x00, //0x0000642e je LBB27_81 + 0x4d, 0x85, 0xc0, //0x00006434 testq %r8, %r8 + 0x0f, 0x84, 0xd8, 0x00, 0x00, 0x00, //0x00006437 je LBB27_81 + 0x49, 0x29, 0xfe, //0x0000643d subq %rdi, %r14 + 0x49, 0x8d, 0x46, 0xff, //0x00006440 leaq $-1(%r14), %rax + 0x49, 0x39, 0xc2, //0x00006444 cmpq %rax, %r10 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00006447 je LBB27_73 + 0x49, 0x39, 0xc1, //0x0000644d cmpq %rax, %r9 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00006450 je LBB27_73 + 0x49, 0x39, 0xc0, //0x00006456 cmpq %rax, %r8 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00006459 je LBB27_73 + 0x4d, 0x85, 0xc9, //0x0000645f testq %r9, %r9 + 0x0f, 0x8e, 0x23, 0x00, 0x00, 0x00, //0x00006462 jle LBB27_77 + 0x49, 0x8d, 0x41, 0xff, //0x00006468 leaq $-1(%r9), %rax + 0x49, 0x39, 0xc0, //0x0000646c cmpq %rax, %r8 + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x0000646f je LBB27_77 + 0x49, 0xf7, 0xd1, //0x00006475 notq %r9 + 0x4c, 0x89, 0xc8, //0x00006478 movq %r9, %rax + 0xe9, 0x95, 0x00, 0x00, 0x00, //0x0000647b jmp LBB27_81 + //0x00006480 LBB27_73 + 0x49, 0xf7, 0xde, //0x00006480 negq %r14 + 0x4c, 0x89, 0xf0, //0x00006483 movq %r14, %rax + 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x00006486 jmp LBB27_81 + //0x0000648b LBB27_77 + 0x4c, 0x89, 0xd0, //0x0000648b movq %r10, %rax + 0x4c, 0x09, 0xc0, //0x0000648e orq %r8, %rax + 0x0f, 0x99, 0xc0, //0x00006491 setns %al + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00006494 js LBB27_80 + 0x4d, 0x39, 0xc2, //0x0000649a cmpq %r8, %r10 + 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000649d jl LBB27_80 + 0x49, 0xf7, 0xd2, //0x000064a3 notq %r10 + 0x4c, 0x89, 0xd0, //0x000064a6 movq %r10, %rax + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x000064a9 jmp LBB27_81 + //0x000064ae LBB27_80 + 0x49, 0x8d, 0x48, 0xff, //0x000064ae leaq $-1(%r8), %rcx + 0x49, 0x39, 0xca, //0x000064b2 cmpq %rcx, %r10 + 0x49, 0xf7, 0xd0, //0x000064b5 notq %r8 + 0x4d, 0x0f, 0x45, 0xc6, //0x000064b8 cmovneq %r14, %r8 + 0x84, 0xc0, //0x000064bc testb %al, %al + 0x4d, 0x0f, 0x44, 0xc6, //0x000064be cmoveq %r14, %r8 + 0x4c, 0x89, 0xc0, //0x000064c2 movq %r8, %rax + 0xe9, 0x4b, 0x00, 0x00, 0x00, //0x000064c5 jmp LBB27_81 + //0x000064ca LBB27_64 + 0x4d, 0x89, 0xde, //0x000064ca movq %r11, %r14 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000064cd movq $-1, %rax + 0x4d, 0x85, 0xd2, //0x000064d4 testq %r10, %r10 + 0x0f, 0x85, 0x4e, 0xff, 0xff, 0xff, //0x000064d7 jne LBB27_68 + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x000064dd jmp LBB27_81 + //0x000064e2 LBB27_12 + 0x0f, 0xbc, 0xc9, //0x000064e2 bsfl %ecx, %ecx + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x000064e5 jmp LBB27_13 + //0x000064ea LBB27_82 + 0x89, 0xc9, //0x000064ea movl %ecx, %ecx + //0x000064ec LBB27_13 + 0x48, 0xf7, 0xd0, //0x000064ec notq %rax + 0x48, 0x29, 0xc8, //0x000064ef subq %rcx, %rax + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x000064f2 jmp LBB27_81 + //0x000064f7 LBB27_33 + 0x0f, 0xbc, 0xcb, //0x000064f7 bsfl %ebx, %ecx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000064fa jmp LBB27_34 + //0x000064ff LBB27_59 + 0x4c, 0x29, 0xf7, //0x000064ff subq %r14, %rdi + 0xe9, 0x08, 0x00, 0x00, 0x00, //0x00006502 jmp LBB27_60 + //0x00006507 LBB27_84 + 0x89, 0xd1, //0x00006507 movl %edx, %ecx + //0x00006509 LBB27_34 + 0x4c, 0x29, 0xf7, //0x00006509 subq %r14, %rdi + 0x48, 0x29, 0xcf, //0x0000650c subq %rcx, %rdi + //0x0000650f LBB27_60 + 0x48, 0xf7, 0xd0, //0x0000650f notq %rax + 0x48, 0x01, 0xf8, //0x00006512 addq %rdi, %rax + //0x00006515 LBB27_81 + 0x5b, //0x00006515 popq %rbx + 0x41, 0x5c, //0x00006516 popq %r12 + 0x41, 0x5e, //0x00006518 popq %r14 + 0x41, 0x5f, //0x0000651a popq %r15 + 0x5d, //0x0000651c popq %rbp + 0xc5, 0xf8, 0x77, //0x0000651d vzeroupper + 0xc3, //0x00006520 retq + //0x00006521 LBB27_7 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00006521 movq $-1, %r8 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00006528 movq $-1, %r10 + 0x49, 0x89, 0xfe, //0x0000652f movq %rdi, %r14 + 0x48, 0x83, 0xfe, 0x10, //0x00006532 cmpq $16, %rsi + 0x0f, 0x83, 0xbf, 0xfc, 0xff, 0xff, //0x00006536 jae LBB27_29 + 0xe9, 0x0a, 0xfe, 0xff, 0xff, //0x0000653c jmp LBB27_49 + 0x90, 0x90, 0x90, //0x00006541 .p2align 2, 0x90 + // // .set L27_0_set_61, LBB27_61-LJTI27_0 + // // .set L27_0_set_66, LBB27_66-LJTI27_0 + // // .set L27_0_set_57, LBB27_57-LJTI27_0 + // // .set L27_0_set_54, LBB27_54-LJTI27_0 + //0x00006544 LJTI27_0 + 0x7f, 0xfe, 0xff, 0xff, //0x00006544 .long L27_0_set_61 + 0xd4, 0xfe, 0xff, 0xff, //0x00006548 .long L27_0_set_66 + 0x7f, 0xfe, 0xff, 0xff, //0x0000654c .long L27_0_set_61 + 0x92, 0xfe, 0xff, 0xff, //0x00006550 .long L27_0_set_57 + 0xd4, 0xfe, 0xff, 0xff, //0x00006554 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006558 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x0000655c .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006560 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006564 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006568 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x0000656c .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006570 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006574 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006578 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x0000657c .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006580 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006584 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006588 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x0000658c .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006590 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006594 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x00006598 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x0000659c .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x000065a0 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x000065a4 .long L27_0_set_66 + 0xd4, 0xfe, 0xff, 0xff, //0x000065a8 .long L27_0_set_66 + 0x31, 0xfe, 0xff, 0xff, //0x000065ac .long L27_0_set_54 + //0x000065b0 .p2align 4, 0x90 + //0x000065b0 _skip_positive + 0x55, //0x000065b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000065b1 movq %rsp, %rbp + 0x41, 0x56, //0x000065b4 pushq %r14 + 0x53, //0x000065b6 pushq %rbx + 0x49, 0x89, 0xf6, //0x000065b7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x000065ba movq (%rsi), %rbx + 0x48, 0x83, 0xc3, 0xff, //0x000065bd addq $-1, %rbx + 0x48, 0x8b, 0x07, //0x000065c1 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000065c4 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000065c7 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000065cb subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000065ce movq %rax, %rdi + 0xe8, 0x5a, 0xfa, 0xff, 0xff, //0x000065d1 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000065d6 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000065d9 js LBB28_1 + 0x49, 0x8b, 0x0e, //0x000065df movq (%r14), %rcx + 0x48, 0x01, 0xc1, //0x000065e2 addq %rax, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x000065e5 addq $-1, %rcx + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x000065e9 jmp LBB28_3 + //0x000065ee LBB28_1 + 0x49, 0x8b, 0x0e, //0x000065ee movq (%r14), %rcx + 0x48, 0x29, 0xc1, //0x000065f1 subq %rax, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000065f4 addq $-2, %rcx + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000065f8 movq $-2, %rbx + //0x000065ff LBB28_3 + 0x49, 0x89, 0x0e, //0x000065ff movq %rcx, (%r14) + 0x48, 0x89, 0xd8, //0x00006602 movq %rbx, %rax + 0x5b, //0x00006605 popq %rbx + 0x41, 0x5e, //0x00006606 popq %r14 + 0x5d, //0x00006608 popq %rbp + 0xc3, //0x00006609 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000660a .p2align 4, 0x90 + //0x00006610 _skip_number + 0x55, //0x00006610 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006611 movq %rsp, %rbp + 0x41, 0x57, //0x00006614 pushq %r15 + 0x41, 0x56, //0x00006616 pushq %r14 + 0x41, 0x55, //0x00006618 pushq %r13 + 0x41, 0x54, //0x0000661a pushq %r12 + 0x53, //0x0000661c pushq %rbx + 0x50, //0x0000661d pushq %rax + 0x49, 0x89, 0xf6, //0x0000661e movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x00006621 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x00006624 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x00006628 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x0000662b subq %r13, %rsi + 0x31, 0xc0, //0x0000662e xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00006630 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00006635 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x00006639 sete %al + 0x48, 0x01, 0xc3, //0x0000663c addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x0000663f subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00006642 je LBB29_1 + 0x8a, 0x03, //0x00006648 movb (%rbx), %al + 0x04, 0xd0, //0x0000664a addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000664c movq $-2, %r15 + 0x3c, 0x09, //0x00006653 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00006655 ja LBB29_6 + 0x48, 0x89, 0xdf, //0x0000665b movq %rbx, %rdi + 0xe8, 0xcd, 0xf9, 0xff, 0xff, //0x0000665e callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00006663 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00006666 js LBB29_4 + 0x48, 0x01, 0xc3, //0x0000666c addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x0000666f movq %r13, %r15 + //0x00006672 LBB29_6 + 0x4c, 0x29, 0xe3, //0x00006672 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x00006675 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00006678 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000667b addq $8, %rsp + 0x5b, //0x0000667f popq %rbx + 0x41, 0x5c, //0x00006680 popq %r12 + 0x41, 0x5d, //0x00006682 popq %r13 + 0x41, 0x5e, //0x00006684 popq %r14 + 0x41, 0x5f, //0x00006686 popq %r15 + 0x5d, //0x00006688 popq %rbp + 0xc3, //0x00006689 retq + //0x0000668a LBB29_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000668a movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00006691 jmp LBB29_6 + //0x00006696 LBB29_4 + 0x48, 0xf7, 0xd0, //0x00006696 notq %rax + 0x48, 0x01, 0xc3, //0x00006699 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000669c jmp LBB29_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066a1 .p2align 4, 0x00 + //0x000066b0 LCPI30_0 + 0x01, 0x00, 0x00, 0x00, //0x000066b0 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x000066b4 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000066b8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000066bc .long 0 + //0x000066c0 .p2align 4, 0x90 + //0x000066c0 _skip_one + 0x55, //0x000066c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000066c1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000066c4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000066c7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000066ca movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x000066cd vmovaps $-37(%rip), %xmm0 /* LCPI30_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x000066d5 vmovups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000066d9 movq %rax, %rdi + 0x5d, //0x000066dc popq %rbp + 0xe9, 0x8e, 0xef, 0xff, 0xff, //0x000066dd jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000066e2 .p2align 4, 0x00 + //0x000066f0 LCPI31_0 + 0x01, 0x00, 0x00, 0x00, //0x000066f0 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x000066f4 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000066f8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000066fc .long 0 + //0x00006700 .p2align 4, 0x90 + //0x00006700 _validate_one + 0x55, //0x00006700 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006701 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00006704 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00006707 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000670a movq %rdi, %rsi + 0xc5, 0xf8, 0x28, 0x05, 0xdb, 0xff, 0xff, 0xff, //0x0000670d vmovaps $-37(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0xc5, 0xf8, 0x11, 0x00, //0x00006715 vmovups %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x00006719 movl $32, %ecx + 0x48, 0x89, 0xc7, //0x0000671e movq %rax, %rdi + 0x5d, //0x00006721 popq %rbp + 0xe9, 0x49, 0xef, 0xff, 0xff, //0x00006722 jmp _fsm_exec + 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, //0x00006727 .p2align 5, 0x00 + //0x00006740 LCPI32_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006740 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006750 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006760 LCPI32_1 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006760 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, //0x00006770 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00006780 LCPI32_2 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006780 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006790 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x000067a0 LCPI32_6 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000067a0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x000067b0 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000067c0 LCPI32_7 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000067c0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000067d0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000067e0 LCPI32_8 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000067e0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x000067f0 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00006800 LCPI32_9 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006800 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00006810 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00006820 LCPI32_10 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006820 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00006830 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00006840 .p2align 4, 0x00 + //0x00006840 LCPI32_3 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x00006840 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00006850 LCPI32_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00006850 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00006860 LCPI32_5 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00006860 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00006870 .p2align 4, 0x90 + //0x00006870 _skip_one_fast + 0x55, //0x00006870 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006871 movq %rsp, %rbp + 0x41, 0x57, //0x00006874 pushq %r15 + 0x41, 0x56, //0x00006876 pushq %r14 + 0x41, 0x55, //0x00006878 pushq %r13 + 0x41, 0x54, //0x0000687a pushq %r12 + 0x53, //0x0000687c pushq %rbx + 0x48, 0x81, 0xec, 0x80, 0x00, 0x00, 0x00, //0x0000687d subq $128, %rsp + 0x49, 0x89, 0xf6, //0x00006884 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00006887 movq %rdi, %r15 + 0x48, 0x8b, 0x3f, //0x0000688a movq (%rdi), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000688d movq $8(%r15), %rsi + 0x4c, 0x89, 0xf2, //0x00006891 movq %r14, %rdx + 0xe8, 0x27, 0xdd, 0xff, 0xff, //0x00006894 callq _advance_ns + 0x49, 0x8b, 0x16, //0x00006899 movq (%r14), %rdx + 0x4c, 0x8d, 0x62, 0xff, //0x0000689c leaq $-1(%rdx), %r12 + 0x0f, 0xbe, 0xc8, //0x000068a0 movsbl %al, %ecx + 0x83, 0xf9, 0x7b, //0x000068a3 cmpl $123, %ecx + 0x0f, 0x87, 0x71, 0x01, 0x00, 0x00, //0x000068a6 ja LBB32_23 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000068ac movq $-1, %rax + 0x48, 0x8d, 0x35, 0xee, 0x08, 0x00, 0x00, //0x000068b3 leaq $2286(%rip), %rsi /* LJTI32_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8e, //0x000068ba movslq (%rsi,%rcx,4), %rcx + 0x48, 0x01, 0xf1, //0x000068be addq %rsi, %rcx + 0xff, 0xe1, //0x000068c1 jmpq *%rcx + //0x000068c3 LBB32_2 + 0x49, 0x8b, 0x07, //0x000068c3 movq (%r15), %rax + 0x49, 0x8b, 0x77, 0x08, //0x000068c6 movq $8(%r15), %rsi + 0x48, 0x89, 0xf1, //0x000068ca movq %rsi, %rcx + 0x48, 0x29, 0xd1, //0x000068cd subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x20, //0x000068d0 cmpq $32, %rcx + 0x0f, 0x82, 0x17, 0x08, 0x00, 0x00, //0x000068d4 jb LBB32_87 + 0x48, 0x89, 0xd1, //0x000068da movq %rdx, %rcx + 0x48, 0xf7, 0xd9, //0x000068dd negq %rcx + 0xc5, 0xfd, 0x6f, 0x05, 0x58, 0xfe, 0xff, 0xff, //0x000068e0 vmovdqa $-424(%rip), %ymm0 /* LCPI32_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x70, 0xfe, 0xff, 0xff, //0x000068e8 vmovdqa $-400(%rip), %ymm1 /* LCPI32_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0x88, 0xfe, 0xff, 0xff, //0x000068f0 vmovdqa $-376(%rip), %ymm2 /* LCPI32_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000068f8 .p2align 4, 0x90 + //0x00006900 LBB32_4 + 0xc5, 0xfe, 0x6f, 0x1c, 0x10, //0x00006900 vmovdqu (%rax,%rdx), %ymm3 + 0xc5, 0xe5, 0x74, 0xe0, //0x00006905 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xe5, 0xdb, 0xd9, //0x00006909 vpand %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0xda, //0x0000690d vpcmpeqb %ymm2, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdc, //0x00006911 vpor %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0xd7, 0xfb, //0x00006915 vpmovmskb %ymm3, %edi + 0x85, 0xff, //0x00006919 testl %edi, %edi + 0x0f, 0x85, 0xcb, 0x00, 0x00, 0x00, //0x0000691b jne LBB32_18 + 0x48, 0x83, 0xc2, 0x20, //0x00006921 addq $32, %rdx + 0x48, 0x8d, 0x3c, 0x0e, //0x00006925 leaq (%rsi,%rcx), %rdi + 0x48, 0x83, 0xc7, 0xe0, //0x00006929 addq $-32, %rdi + 0x48, 0x83, 0xc1, 0xe0, //0x0000692d addq $-32, %rcx + 0x48, 0x83, 0xff, 0x1f, //0x00006931 cmpq $31, %rdi + 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00006935 ja LBB32_4 + 0x48, 0x89, 0xc2, //0x0000693b movq %rax, %rdx + 0x48, 0x29, 0xca, //0x0000693e subq %rcx, %rdx + 0x48, 0x01, 0xce, //0x00006941 addq %rcx, %rsi + 0x48, 0x89, 0xf1, //0x00006944 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x10, //0x00006947 cmpq $16, %rcx + 0x0f, 0x82, 0x55, 0x00, 0x00, 0x00, //0x0000694b jb LBB32_10 + //0x00006951 LBB32_7 + 0x48, 0x89, 0xc6, //0x00006951 movq %rax, %rsi + 0x48, 0x29, 0xd6, //0x00006954 subq %rdx, %rsi + 0xc5, 0xf9, 0x6f, 0x05, 0xe1, 0xfe, 0xff, 0xff, //0x00006957 vmovdqa $-287(%rip), %xmm0 /* LCPI32_3+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xe9, 0xfe, 0xff, 0xff, //0x0000695f vmovdqa $-279(%rip), %xmm1 /* LCPI32_4+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xf1, 0xfe, 0xff, 0xff, //0x00006967 vmovdqa $-271(%rip), %xmm2 /* LCPI32_5+0(%rip) */ + 0x90, //0x0000696f .p2align 4, 0x90 + //0x00006970 LBB32_8 + 0xc5, 0xfa, 0x6f, 0x1a, //0x00006970 vmovdqu (%rdx), %xmm3 + 0xc5, 0xe1, 0x74, 0xe0, //0x00006974 vpcmpeqb %xmm0, %xmm3, %xmm4 + 0xc5, 0xe1, 0xdb, 0xd9, //0x00006978 vpand %xmm1, %xmm3, %xmm3 + 0xc5, 0xe1, 0x74, 0xda, //0x0000697c vpcmpeqb %xmm2, %xmm3, %xmm3 + 0xc5, 0xe1, 0xeb, 0xdc, //0x00006980 vpor %xmm4, %xmm3, %xmm3 + 0xc5, 0xf9, 0xd7, 0xfb, //0x00006984 vpmovmskb %xmm3, %edi + 0x85, 0xff, //0x00006988 testl %edi, %edi + 0x0f, 0x85, 0x35, 0x07, 0x00, 0x00, //0x0000698a jne LBB32_86 + 0x48, 0x83, 0xc2, 0x10, //0x00006990 addq $16, %rdx + 0x48, 0x83, 0xc1, 0xf0, //0x00006994 addq $-16, %rcx + 0x48, 0x83, 0xc6, 0xf0, //0x00006998 addq $-16, %rsi + 0x48, 0x83, 0xf9, 0x0f, //0x0000699c cmpq $15, %rcx + 0x0f, 0x87, 0xca, 0xff, 0xff, 0xff, //0x000069a0 ja LBB32_8 + //0x000069a6 LBB32_10 + 0x48, 0x85, 0xc9, //0x000069a6 testq %rcx, %rcx + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000069a9 je LBB32_17 + 0x48, 0x8d, 0x3c, 0x0a, //0x000069af leaq (%rdx,%rcx), %rdi + 0x31, 0xf6, //0x000069b3 xorl %esi, %esi + //0x000069b5 LBB32_12 + 0x0f, 0xb6, 0x1c, 0x32, //0x000069b5 movzbl (%rdx,%rsi), %ebx + 0x80, 0xfb, 0x2c, //0x000069b9 cmpb $44, %bl + 0x0f, 0x84, 0x41, 0x07, 0x00, 0x00, //0x000069bc je LBB32_88 + 0x80, 0xfb, 0x7d, //0x000069c2 cmpb $125, %bl + 0x0f, 0x84, 0x38, 0x07, 0x00, 0x00, //0x000069c5 je LBB32_88 + 0x80, 0xfb, 0x5d, //0x000069cb cmpb $93, %bl + 0x0f, 0x84, 0x2f, 0x07, 0x00, 0x00, //0x000069ce je LBB32_88 + 0x48, 0x83, 0xc6, 0x01, //0x000069d4 addq $1, %rsi + 0x48, 0x39, 0xf1, //0x000069d8 cmpq %rsi, %rcx + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x000069db jne LBB32_12 + 0x48, 0x89, 0xfa, //0x000069e1 movq %rdi, %rdx + //0x000069e4 LBB32_17 + 0x48, 0x29, 0xc2, //0x000069e4 subq %rax, %rdx + 0xe9, 0xe2, 0x03, 0x00, 0x00, //0x000069e7 jmp LBB32_59 + //0x000069ec LBB32_18 + 0x0f, 0xbc, 0xc7, //0x000069ec bsfl %edi, %eax + 0x48, 0x29, 0xc8, //0x000069ef subq %rcx, %rax + //0x000069f2 LBB32_19 + 0x49, 0x89, 0x06, //0x000069f2 movq %rax, (%r14) + //0x000069f5 LBB32_20 + 0x4c, 0x89, 0xe0, //0x000069f5 movq %r12, %rax + //0x000069f8 LBB32_21 + 0x48, 0x8d, 0x65, 0xd8, //0x000069f8 leaq $-40(%rbp), %rsp + 0x5b, //0x000069fc popq %rbx + 0x41, 0x5c, //0x000069fd popq %r12 + 0x41, 0x5d, //0x000069ff popq %r13 + 0x41, 0x5e, //0x00006a01 popq %r14 + 0x41, 0x5f, //0x00006a03 popq %r15 + 0x5d, //0x00006a05 popq %rbp + 0xc5, 0xf8, 0x77, //0x00006a06 vzeroupper + 0xc3, //0x00006a09 retq + //0x00006a0a LBB32_22 + 0x48, 0x83, 0xc2, 0x03, //0x00006a0a addq $3, %rdx + 0x49, 0x3b, 0x57, 0x08, //0x00006a0e cmpq $8(%r15), %rdx + 0x0f, 0x87, 0xe0, 0xff, 0xff, 0xff, //0x00006a12 ja LBB32_21 + 0xe9, 0xb1, 0x03, 0x00, 0x00, //0x00006a18 jmp LBB32_59 + //0x00006a1d LBB32_23 + 0x4d, 0x89, 0x26, //0x00006a1d movq %r12, (%r14) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00006a20 movq $-2, %rax + 0xe9, 0xcc, 0xff, 0xff, 0xff, //0x00006a27 jmp LBB32_21 + //0x00006a2c LBB32_24 + 0x49, 0x8b, 0x0f, //0x00006a2c movq (%r15), %rcx + 0x4d, 0x8b, 0x57, 0x08, //0x00006a2f movq $8(%r15), %r10 + 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006a33 movq %rcx, $24(%rsp) + 0x4c, 0x8d, 0x0c, 0x11, //0x00006a38 leaq (%rcx,%rdx), %r9 + 0x49, 0x29, 0xd2, //0x00006a3c subq %rdx, %r10 + 0x49, 0x83, 0xfa, 0x20, //0x00006a3f cmpq $32, %r10 + 0x0f, 0x8c, 0x9a, 0x06, 0x00, 0x00, //0x00006a43 jl LBB32_33 + 0xbe, 0x20, 0x00, 0x00, 0x00, //0x00006a49 movl $32, %esi + 0x45, 0x31, 0xed, //0x00006a4e xorl %r13d, %r13d + 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xfd, 0xff, 0xff, //0x00006a51 vmovdqa $-697(%rip), %ymm0 /* LCPI32_6+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x5f, 0xfd, 0xff, 0xff, //0x00006a59 vmovdqa $-673(%rip), %ymm1 /* LCPI32_7+0(%rip) */ + 0x45, 0x31, 0xff, //0x00006a61 xorl %r15d, %r15d + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00006a64 jmp LBB32_26 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006a69 .p2align 4, 0x90 + //0x00006a70 LBB32_29 + 0x44, 0x89, 0xf9, //0x00006a70 movl %r15d, %ecx + 0xf7, 0xd1, //0x00006a73 notl %ecx + 0x21, 0xf9, //0x00006a75 andl %edi, %ecx + 0x44, 0x8d, 0x04, 0x09, //0x00006a77 leal (%rcx,%rcx), %r8d + 0x45, 0x09, 0xf8, //0x00006a7b orl %r15d, %r8d + 0x44, 0x89, 0xc3, //0x00006a7e movl %r8d, %ebx + 0xf7, 0xd3, //0x00006a81 notl %ebx + 0x21, 0xfb, //0x00006a83 andl %edi, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006a85 andl $-1431655766, %ebx + 0x45, 0x31, 0xff, //0x00006a8b xorl %r15d, %r15d + 0x01, 0xcb, //0x00006a8e addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc7, //0x00006a90 setb %r15b + 0x01, 0xdb, //0x00006a94 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00006a96 xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x00006a9c andl %r8d, %ebx + 0xf7, 0xd3, //0x00006a9f notl %ebx + 0x41, 0x21, 0xdb, //0x00006aa1 andl %ebx, %r11d + 0x4d, 0x85, 0xdb, //0x00006aa4 testq %r11, %r11 + 0x0f, 0x85, 0x4d, 0x00, 0x00, 0x00, //0x00006aa7 jne LBB32_85 + //0x00006aad LBB32_30 + 0x49, 0x83, 0xc5, 0x20, //0x00006aad addq $32, %r13 + 0x49, 0x8d, 0x0c, 0x32, //0x00006ab1 leaq (%r10,%rsi), %rcx + 0x48, 0x83, 0xc1, 0xe0, //0x00006ab5 addq $-32, %rcx + 0x48, 0x83, 0xc6, 0xe0, //0x00006ab9 addq $-32, %rsi + 0x48, 0x83, 0xf9, 0x3f, //0x00006abd cmpq $63, %rcx + 0x0f, 0x8e, 0x0d, 0x06, 0x00, 0x00, //0x00006ac1 jle LBB32_31 + //0x00006ac7 LBB32_26 + 0xc4, 0x81, 0x7e, 0x6f, 0x14, 0x29, //0x00006ac7 vmovdqu (%r9,%r13), %ymm2 + 0xc5, 0xed, 0x74, 0xd8, //0x00006acd vpcmpeqb %ymm0, %ymm2, %ymm3 + 0xc5, 0x7d, 0xd7, 0xdb, //0x00006ad1 vpmovmskb %ymm3, %r11d + 0xc5, 0xed, 0x74, 0xd1, //0x00006ad5 vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xfa, //0x00006ad9 vpmovmskb %ymm2, %edi + 0x85, 0xff, //0x00006add testl %edi, %edi + 0x0f, 0x85, 0x8b, 0xff, 0xff, 0xff, //0x00006adf jne LBB32_29 + 0x4d, 0x85, 0xff, //0x00006ae5 testq %r15, %r15 + 0x0f, 0x85, 0x82, 0xff, 0xff, 0xff, //0x00006ae8 jne LBB32_29 + 0x45, 0x31, 0xff, //0x00006aee xorl %r15d, %r15d + 0x4d, 0x85, 0xdb, //0x00006af1 testq %r11, %r11 + 0x0f, 0x84, 0xb3, 0xff, 0xff, 0xff, //0x00006af4 je LBB32_30 + //0x00006afa LBB32_85 + 0x41, 0x0f, 0xbc, 0xc3, //0x00006afa bsfl %r11d, %eax + 0x48, 0x01, 0xd0, //0x00006afe addq %rdx, %rax + 0x4c, 0x01, 0xe8, //0x00006b01 addq %r13, %rax + 0x48, 0x83, 0xc0, 0x01, //0x00006b04 addq $1, %rax + 0xe9, 0xe5, 0xfe, 0xff, 0xff, //0x00006b08 jmp LBB32_19 + //0x00006b0d LBB32_34 + 0x49, 0x8b, 0x4f, 0x08, //0x00006b0d movq $8(%r15), %rcx + 0x48, 0x29, 0xd1, //0x00006b11 subq %rdx, %rcx + 0x49, 0x03, 0x17, //0x00006b14 addq (%r15), %rdx + 0x45, 0x31, 0xc9, //0x00006b17 xorl %r9d, %r9d + 0xc5, 0xfd, 0x6f, 0x05, 0x9e, 0xfc, 0xff, 0xff, //0x00006b1a vmovdqa $-866(%rip), %ymm0 /* LCPI32_7+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x76, 0xfc, 0xff, 0xff, //0x00006b22 vmovdqa $-906(%rip), %ymm1 /* LCPI32_6+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006b2a vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xea, 0xfc, 0xff, 0xff, //0x00006b2e vmovdqa $-790(%rip), %ymm3 /* LCPI32_10+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x42, 0xfc, 0xff, 0xff, //0x00006b36 vmovdqa $-958(%rip), %ymm4 /* LCPI32_2+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006b3e vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x00006b43 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00006b46 xorl %r8d, %r8d + 0x31, 0xf6, //0x00006b49 xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006b4b jmp LBB32_36 + //0x00006b50 LBB32_35 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006b50 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xcb, //0x00006b54 popcntq %r11, %rcx + 0x49, 0x01, 0xc8, //0x00006b59 addq %rcx, %r8 + 0x48, 0x83, 0xc2, 0x40, //0x00006b5c addq $64, %rdx + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006b60 movq $24(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006b65 addq $-64, %rcx + 0x4d, 0x89, 0xe9, //0x00006b69 movq %r13, %r9 + //0x00006b6c LBB32_36 + 0x48, 0x83, 0xf9, 0x40, //0x00006b6c cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006b70 movq %rcx, $24(%rsp) + 0x0f, 0x8c, 0x22, 0x01, 0x00, 0x00, //0x00006b75 jl LBB32_43 + //0x00006b7b LBB32_37 + 0xc5, 0xfe, 0x6f, 0x3a, //0x00006b7b vmovdqu (%rdx), %ymm7 + 0xc5, 0xfe, 0x6f, 0x72, 0x20, //0x00006b7f vmovdqu $32(%rdx), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00006b84 vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xc8, //0x00006b88 vpmovmskb %ymm8, %ecx + 0xc5, 0x4d, 0x74, 0xc0, //0x00006b8d vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006b91 vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006b96 shlq $32, %rdi + 0x48, 0x09, 0xf9, //0x00006b9a orq %rdi, %rcx + 0x48, 0x89, 0xcf, //0x00006b9d movq %rcx, %rdi + 0x4c, 0x09, 0xd7, //0x00006ba0 orq %r10, %rdi + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00006ba3 jne LBB32_39 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006ba9 movq $-1, %rcx + 0x45, 0x31, 0xd2, //0x00006bb0 xorl %r10d, %r10d + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00006bb3 jmp LBB32_40 + //0x00006bb8 LBB32_39 + 0x4c, 0x89, 0xd7, //0x00006bb8 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00006bbb notq %rdi + 0x48, 0x21, 0xcf, //0x00006bbe andq %rcx, %rdi + 0x4c, 0x8d, 0x2c, 0x3f, //0x00006bc1 leaq (%rdi,%rdi), %r13 + 0x4d, 0x09, 0xd5, //0x00006bc5 orq %r10, %r13 + 0x4d, 0x89, 0xea, //0x00006bc8 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00006bcb notq %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006bce movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xd9, //0x00006bd8 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00006bdb andq %r10, %rcx + 0x45, 0x31, 0xd2, //0x00006bde xorl %r10d, %r10d + 0x48, 0x01, 0xf9, //0x00006be1 addq %rdi, %rcx + 0x41, 0x0f, 0x92, 0xc2, //0x00006be4 setb %r10b + 0x48, 0x01, 0xc9, //0x00006be8 addq %rcx, %rcx + 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006beb movabsq $6148914691236517205, %rdi + 0x48, 0x31, 0xf9, //0x00006bf5 xorq %rdi, %rcx + 0x4c, 0x21, 0xe9, //0x00006bf8 andq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00006bfb notq %rcx + //0x00006bfe LBB32_40 + 0xc5, 0x4d, 0x74, 0xc1, //0x00006bfe vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006c02 vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006c07 shlq $32, %rdi + 0xc5, 0x45, 0x74, 0xc1, //0x00006c0b vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006c0f vpmovmskb %ymm8, %ebx + 0x48, 0x09, 0xfb, //0x00006c14 orq %rdi, %rbx + 0x48, 0x21, 0xcb, //0x00006c17 andq %rcx, %rbx + 0xc4, 0xe1, 0xf9, 0x6e, 0xeb, //0x00006c1a vmovq %rbx, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006c1f vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006c25 vmovq %xmm5, %r13 + 0x4d, 0x31, 0xcd, //0x00006c2a xorq %r9, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00006c2d vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xdd, //0x00006c31 vpmovmskb %ymm5, %r11d + 0xc5, 0xcd, 0x74, 0xeb, //0x00006c35 vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c39 vpmovmskb %ymm5, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006c3d shlq $32, %rdi + 0x49, 0x09, 0xfb, //0x00006c41 orq %rdi, %r11 + 0x4d, 0x89, 0xe9, //0x00006c44 movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x00006c47 notq %r9 + 0x4d, 0x21, 0xcb, //0x00006c4a andq %r9, %r11 + 0xc5, 0xc5, 0x74, 0xec, //0x00006c4d vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006c51 vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006c55 vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x00006c59 vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006c5d shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006c61 orq %rbx, %rdi + 0x4c, 0x21, 0xcf, //0x00006c64 andq %r9, %rdi + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00006c67 je LBB32_35 + 0x90, 0x90, 0x90, //0x00006c6d .p2align 4, 0x90 + //0x00006c70 LBB32_41 + 0x48, 0x8d, 0x4f, 0xff, //0x00006c70 leaq $-1(%rdi), %rcx + 0x48, 0x89, 0xcb, //0x00006c74 movq %rcx, %rbx + 0x4c, 0x21, 0xdb, //0x00006c77 andq %r11, %rbx + 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x00006c7a popcntq %rbx, %rbx + 0x4c, 0x01, 0xc3, //0x00006c7f addq %r8, %rbx + 0x48, 0x39, 0xf3, //0x00006c82 cmpq %rsi, %rbx + 0x0f, 0x86, 0x05, 0x04, 0x00, 0x00, //0x00006c85 jbe LBB32_84 + 0x48, 0x83, 0xc6, 0x01, //0x00006c8b addq $1, %rsi + 0x48, 0x21, 0xcf, //0x00006c8f andq %rcx, %rdi + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006c92 jne LBB32_41 + 0xe9, 0xb3, 0xfe, 0xff, 0xff, //0x00006c98 jmp LBB32_35 + //0x00006c9d LBB32_43 + 0x48, 0x85, 0xc9, //0x00006c9d testq %rcx, %rcx + 0x0f, 0x8e, 0x68, 0x04, 0x00, 0x00, //0x00006ca0 jle LBB32_89 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006ca6 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006cac vmovups %ymm9, $32(%rsp) + 0x89, 0xd1, //0x00006cb2 movl %edx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006cb4 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006cba cmpl $4033, %ecx + 0x0f, 0x82, 0xb5, 0xfe, 0xff, 0xff, //0x00006cc0 jb LBB32_37 + 0x48, 0x83, 0x7c, 0x24, 0x18, 0x20, //0x00006cc6 cmpq $32, $24(%rsp) + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00006ccc jb LBB32_47 + 0xc5, 0xfc, 0x10, 0x2a, //0x00006cd2 vmovups (%rdx), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006cd6 vmovups %ymm5, $32(%rsp) + 0x48, 0x83, 0xc2, 0x20, //0x00006cdc addq $32, %rdx + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006ce0 movq $24(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x00006ce5 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006ce9 leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006cee jmp LBB32_48 + //0x00006cf3 LBB32_47 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006cf3 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00006cf8 movq $24(%rsp), %rbx + //0x00006cfd LBB32_48 + 0x48, 0x83, 0xfb, 0x10, //0x00006cfd cmpq $16, %rbx + 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x00006d01 jb LBB32_49 + 0xc5, 0xf8, 0x10, 0x2a, //0x00006d07 vmovups (%rdx), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006d0b vmovups %xmm5, (%rdi) + 0x48, 0x83, 0xc2, 0x10, //0x00006d0f addq $16, %rdx + 0x48, 0x83, 0xc7, 0x10, //0x00006d13 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006d17 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006d1b cmpq $8, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00006d1f jae LBB32_54 + //0x00006d25 LBB32_50 + 0x48, 0x83, 0xfb, 0x04, //0x00006d25 cmpq $4, %rbx + 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x00006d29 jl LBB32_51 + //0x00006d2f LBB32_55 + 0x8b, 0x0a, //0x00006d2f movl (%rdx), %ecx + 0x89, 0x0f, //0x00006d31 movl %ecx, (%rdi) + 0x48, 0x83, 0xc2, 0x04, //0x00006d33 addq $4, %rdx + 0x48, 0x83, 0xc7, 0x04, //0x00006d37 addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00006d3b addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00006d3f cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00006d43 jae LBB32_56 + //0x00006d49 LBB32_52 + 0x48, 0x89, 0xd1, //0x00006d49 movq %rdx, %rcx + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006d4c leaq $32(%rsp), %rdx + 0x48, 0x85, 0xdb, //0x00006d51 testq %rbx, %rbx + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00006d54 jne LBB32_57 + 0xe9, 0x1c, 0xfe, 0xff, 0xff, //0x00006d5a jmp LBB32_37 + //0x00006d5f LBB32_49 + 0x48, 0x83, 0xfb, 0x08, //0x00006d5f cmpq $8, %rbx + 0x0f, 0x82, 0xbc, 0xff, 0xff, 0xff, //0x00006d63 jb LBB32_50 + //0x00006d69 LBB32_54 + 0x48, 0x8b, 0x0a, //0x00006d69 movq (%rdx), %rcx + 0x48, 0x89, 0x0f, //0x00006d6c movq %rcx, (%rdi) + 0x48, 0x83, 0xc2, 0x08, //0x00006d6f addq $8, %rdx + 0x48, 0x83, 0xc7, 0x08, //0x00006d73 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00006d77 addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00006d7b cmpq $4, %rbx + 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x00006d7f jge LBB32_55 + //0x00006d85 LBB32_51 + 0x48, 0x83, 0xfb, 0x02, //0x00006d85 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00006d89 jb LBB32_52 + //0x00006d8f LBB32_56 + 0x0f, 0xb7, 0x0a, //0x00006d8f movzwl (%rdx), %ecx + 0x66, 0x89, 0x0f, //0x00006d92 movw %cx, (%rdi) + 0x48, 0x83, 0xc2, 0x02, //0x00006d95 addq $2, %rdx + 0x48, 0x83, 0xc7, 0x02, //0x00006d99 addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x00006d9d addq $-2, %rbx + 0x48, 0x89, 0xd1, //0x00006da1 movq %rdx, %rcx + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006da4 leaq $32(%rsp), %rdx + 0x48, 0x85, 0xdb, //0x00006da9 testq %rbx, %rbx + 0x0f, 0x84, 0xc9, 0xfd, 0xff, 0xff, //0x00006dac je LBB32_37 + //0x00006db2 LBB32_57 + 0x8a, 0x09, //0x00006db2 movb (%rcx), %cl + 0x88, 0x0f, //0x00006db4 movb %cl, (%rdi) + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00006db6 leaq $32(%rsp), %rdx + 0xe9, 0xbb, 0xfd, 0xff, 0xff, //0x00006dbb jmp LBB32_37 + //0x00006dc0 LBB32_58 + 0x48, 0x83, 0xc2, 0x04, //0x00006dc0 addq $4, %rdx + 0x49, 0x3b, 0x57, 0x08, //0x00006dc4 cmpq $8(%r15), %rdx + 0x0f, 0x87, 0x2a, 0xfc, 0xff, 0xff, //0x00006dc8 ja LBB32_21 + //0x00006dce LBB32_59 + 0x49, 0x89, 0x16, //0x00006dce movq %rdx, (%r14) + 0xe9, 0x1f, 0xfc, 0xff, 0xff, //0x00006dd1 jmp LBB32_20 + //0x00006dd6 LBB32_60 + 0x49, 0x8b, 0x4f, 0x08, //0x00006dd6 movq $8(%r15), %rcx + 0x48, 0x29, 0xd1, //0x00006dda subq %rdx, %rcx + 0x49, 0x03, 0x17, //0x00006ddd addq (%r15), %rdx + 0x45, 0x31, 0xc9, //0x00006de0 xorl %r9d, %r9d + 0xc5, 0xfd, 0x6f, 0x05, 0xd5, 0xf9, 0xff, 0xff, //0x00006de3 vmovdqa $-1579(%rip), %ymm0 /* LCPI32_7+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0xad, 0xf9, 0xff, 0xff, //0x00006deb vmovdqa $-1619(%rip), %ymm1 /* LCPI32_6+0(%rip) */ + 0xc5, 0xe9, 0x76, 0xd2, //0x00006df3 vpcmpeqd %xmm2, %xmm2, %xmm2 + 0xc5, 0xfd, 0x6f, 0x1d, 0xe1, 0xf9, 0xff, 0xff, //0x00006df7 vmovdqa $-1567(%rip), %ymm3 /* LCPI32_8+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0xf9, 0xf9, 0xff, 0xff, //0x00006dff vmovdqa $-1543(%rip), %ymm4 /* LCPI32_9+0(%rip) */ + 0xc4, 0x41, 0x30, 0x57, 0xc9, //0x00006e07 vxorps %xmm9, %xmm9, %xmm9 + 0x45, 0x31, 0xd2, //0x00006e0c xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00006e0f xorl %r8d, %r8d + 0x31, 0xf6, //0x00006e12 xorl %esi, %esi + 0xe9, 0x1c, 0x00, 0x00, 0x00, //0x00006e14 jmp LBB32_62 + //0x00006e19 LBB32_61 + 0x49, 0xc1, 0xfd, 0x3f, //0x00006e19 sarq $63, %r13 + 0xf3, 0x49, 0x0f, 0xb8, 0xcb, //0x00006e1d popcntq %r11, %rcx + 0x49, 0x01, 0xc8, //0x00006e22 addq %rcx, %r8 + 0x48, 0x83, 0xc2, 0x40, //0x00006e25 addq $64, %rdx + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006e29 movq $24(%rsp), %rcx + 0x48, 0x83, 0xc1, 0xc0, //0x00006e2e addq $-64, %rcx + 0x4d, 0x89, 0xe9, //0x00006e32 movq %r13, %r9 + //0x00006e35 LBB32_62 + 0x48, 0x83, 0xf9, 0x40, //0x00006e35 cmpq $64, %rcx + 0x48, 0x89, 0x4c, 0x24, 0x18, //0x00006e39 movq %rcx, $24(%rsp) + 0x0f, 0x8c, 0x29, 0x01, 0x00, 0x00, //0x00006e3e jl LBB32_69 + //0x00006e44 LBB32_63 + 0xc5, 0xfe, 0x6f, 0x3a, //0x00006e44 vmovdqu (%rdx), %ymm7 + 0xc5, 0xfe, 0x6f, 0x72, 0x20, //0x00006e48 vmovdqu $32(%rdx), %ymm6 + 0xc5, 0x45, 0x74, 0xc0, //0x00006e4d vpcmpeqb %ymm0, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xc8, //0x00006e51 vpmovmskb %ymm8, %ecx + 0xc5, 0x4d, 0x74, 0xc0, //0x00006e56 vpcmpeqb %ymm0, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006e5a vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006e5f shlq $32, %rdi + 0x48, 0x09, 0xf9, //0x00006e63 orq %rdi, %rcx + 0x48, 0x89, 0xcf, //0x00006e66 movq %rcx, %rdi + 0x4c, 0x09, 0xd7, //0x00006e69 orq %r10, %rdi + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00006e6c jne LBB32_65 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00006e72 movq $-1, %rcx + 0x45, 0x31, 0xd2, //0x00006e79 xorl %r10d, %r10d + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00006e7c jmp LBB32_66 + //0x00006e81 LBB32_65 + 0x4c, 0x89, 0xd7, //0x00006e81 movq %r10, %rdi + 0x48, 0xf7, 0xd7, //0x00006e84 notq %rdi + 0x48, 0x21, 0xcf, //0x00006e87 andq %rcx, %rdi + 0x4c, 0x8d, 0x2c, 0x3f, //0x00006e8a leaq (%rdi,%rdi), %r13 + 0x4d, 0x09, 0xd5, //0x00006e8e orq %r10, %r13 + 0x4d, 0x89, 0xea, //0x00006e91 movq %r13, %r10 + 0x49, 0xf7, 0xd2, //0x00006e94 notq %r10 + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00006e97 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xd9, //0x00006ea1 andq %rbx, %rcx + 0x4c, 0x21, 0xd1, //0x00006ea4 andq %r10, %rcx + 0x45, 0x31, 0xd2, //0x00006ea7 xorl %r10d, %r10d + 0x48, 0x01, 0xf9, //0x00006eaa addq %rdi, %rcx + 0x41, 0x0f, 0x92, 0xc2, //0x00006ead setb %r10b + 0x48, 0x01, 0xc9, //0x00006eb1 addq %rcx, %rcx + 0x48, 0xbf, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006eb4 movabsq $6148914691236517205, %rdi + 0x48, 0x31, 0xf9, //0x00006ebe xorq %rdi, %rcx + 0x4c, 0x21, 0xe9, //0x00006ec1 andq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00006ec4 notq %rcx + //0x00006ec7 LBB32_66 + 0xc5, 0x4d, 0x74, 0xc1, //0x00006ec7 vpcmpeqb %ymm1, %ymm6, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xf8, //0x00006ecb vpmovmskb %ymm8, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006ed0 shlq $32, %rdi + 0xc5, 0x45, 0x74, 0xc1, //0x00006ed4 vpcmpeqb %ymm1, %ymm7, %ymm8 + 0xc4, 0xc1, 0x7d, 0xd7, 0xd8, //0x00006ed8 vpmovmskb %ymm8, %ebx + 0x48, 0x09, 0xfb, //0x00006edd orq %rdi, %rbx + 0x48, 0x21, 0xcb, //0x00006ee0 andq %rcx, %rbx + 0xc4, 0xe1, 0xf9, 0x6e, 0xeb, //0x00006ee3 vmovq %rbx, %xmm5 + 0xc4, 0xe3, 0x51, 0x44, 0xea, 0x00, //0x00006ee8 vpclmulqdq $0, %xmm2, %xmm5, %xmm5 + 0xc4, 0xc1, 0xf9, 0x7e, 0xed, //0x00006eee vmovq %xmm5, %r13 + 0x4d, 0x31, 0xcd, //0x00006ef3 xorq %r9, %r13 + 0xc5, 0xc5, 0x74, 0xeb, //0x00006ef6 vpcmpeqb %ymm3, %ymm7, %ymm5 + 0xc5, 0x7d, 0xd7, 0xdd, //0x00006efa vpmovmskb %ymm5, %r11d + 0xc5, 0xcd, 0x74, 0xeb, //0x00006efe vpcmpeqb %ymm3, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006f02 vpmovmskb %ymm5, %edi + 0x48, 0xc1, 0xe7, 0x20, //0x00006f06 shlq $32, %rdi + 0x49, 0x09, 0xfb, //0x00006f0a orq %rdi, %r11 + 0x4d, 0x89, 0xe9, //0x00006f0d movq %r13, %r9 + 0x49, 0xf7, 0xd1, //0x00006f10 notq %r9 + 0x4d, 0x21, 0xcb, //0x00006f13 andq %r9, %r11 + 0xc5, 0xc5, 0x74, 0xec, //0x00006f16 vpcmpeqb %ymm4, %ymm7, %ymm5 + 0xc5, 0xfd, 0xd7, 0xfd, //0x00006f1a vpmovmskb %ymm5, %edi + 0xc5, 0xcd, 0x74, 0xec, //0x00006f1e vpcmpeqb %ymm4, %ymm6, %ymm5 + 0xc5, 0xfd, 0xd7, 0xdd, //0x00006f22 vpmovmskb %ymm5, %ebx + 0x48, 0xc1, 0xe3, 0x20, //0x00006f26 shlq $32, %rbx + 0x48, 0x09, 0xdf, //0x00006f2a orq %rbx, %rdi + 0x4c, 0x21, 0xcf, //0x00006f2d andq %r9, %rdi + 0x0f, 0x84, 0xe3, 0xfe, 0xff, 0xff, //0x00006f30 je LBB32_61 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f36 .p2align 4, 0x90 + //0x00006f40 LBB32_67 + 0x48, 0x8d, 0x4f, 0xff, //0x00006f40 leaq $-1(%rdi), %rcx + 0x48, 0x89, 0xcb, //0x00006f44 movq %rcx, %rbx + 0x4c, 0x21, 0xdb, //0x00006f47 andq %r11, %rbx + 0xf3, 0x48, 0x0f, 0xb8, 0xdb, //0x00006f4a popcntq %rbx, %rbx + 0x4c, 0x01, 0xc3, //0x00006f4f addq %r8, %rbx + 0x48, 0x39, 0xf3, //0x00006f52 cmpq %rsi, %rbx + 0x0f, 0x86, 0x35, 0x01, 0x00, 0x00, //0x00006f55 jbe LBB32_84 + 0x48, 0x83, 0xc6, 0x01, //0x00006f5b addq $1, %rsi + 0x48, 0x21, 0xcf, //0x00006f5f andq %rcx, %rdi + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x00006f62 jne LBB32_67 + 0xe9, 0xac, 0xfe, 0xff, 0xff, //0x00006f68 jmp LBB32_61 + //0x00006f6d LBB32_69 + 0x48, 0x85, 0xc9, //0x00006f6d testq %rcx, %rcx + 0x0f, 0x8e, 0x98, 0x01, 0x00, 0x00, //0x00006f70 jle LBB32_89 + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x40, //0x00006f76 vmovups %ymm9, $64(%rsp) + 0xc5, 0x7c, 0x11, 0x4c, 0x24, 0x20, //0x00006f7c vmovups %ymm9, $32(%rsp) + 0x89, 0xd1, //0x00006f82 movl %edx, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006f84 andl $4095, %ecx + 0x81, 0xf9, 0xc1, 0x0f, 0x00, 0x00, //0x00006f8a cmpl $4033, %ecx + 0x0f, 0x82, 0xae, 0xfe, 0xff, 0xff, //0x00006f90 jb LBB32_63 + 0x48, 0x83, 0x7c, 0x24, 0x18, 0x20, //0x00006f96 cmpq $32, $24(%rsp) + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00006f9c jb LBB32_73 + 0xc5, 0xfc, 0x10, 0x2a, //0x00006fa2 vmovups (%rdx), %ymm5 + 0xc5, 0xfc, 0x11, 0x6c, 0x24, 0x20, //0x00006fa6 vmovups %ymm5, $32(%rsp) + 0x48, 0x83, 0xc2, 0x20, //0x00006fac addq $32, %rdx + 0x48, 0x8b, 0x4c, 0x24, 0x18, //0x00006fb0 movq $24(%rsp), %rcx + 0x48, 0x8d, 0x59, 0xe0, //0x00006fb5 leaq $-32(%rcx), %rbx + 0x48, 0x8d, 0x7c, 0x24, 0x40, //0x00006fb9 leaq $64(%rsp), %rdi + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00006fbe jmp LBB32_74 + //0x00006fc3 LBB32_73 + 0x48, 0x8d, 0x7c, 0x24, 0x20, //0x00006fc3 leaq $32(%rsp), %rdi + 0x48, 0x8b, 0x5c, 0x24, 0x18, //0x00006fc8 movq $24(%rsp), %rbx + //0x00006fcd LBB32_74 + 0x48, 0x83, 0xfb, 0x10, //0x00006fcd cmpq $16, %rbx + 0x0f, 0x82, 0x58, 0x00, 0x00, 0x00, //0x00006fd1 jb LBB32_75 + 0xc5, 0xf8, 0x10, 0x2a, //0x00006fd7 vmovups (%rdx), %xmm5 + 0xc5, 0xf8, 0x11, 0x2f, //0x00006fdb vmovups %xmm5, (%rdi) + 0x48, 0x83, 0xc2, 0x10, //0x00006fdf addq $16, %rdx + 0x48, 0x83, 0xc7, 0x10, //0x00006fe3 addq $16, %rdi + 0x48, 0x83, 0xc3, 0xf0, //0x00006fe7 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x08, //0x00006feb cmpq $8, %rbx + 0x0f, 0x83, 0x44, 0x00, 0x00, 0x00, //0x00006fef jae LBB32_80 + //0x00006ff5 LBB32_76 + 0x48, 0x83, 0xfb, 0x04, //0x00006ff5 cmpq $4, %rbx + 0x0f, 0x8c, 0x56, 0x00, 0x00, 0x00, //0x00006ff9 jl LBB32_77 + //0x00006fff LBB32_81 + 0x8b, 0x0a, //0x00006fff movl (%rdx), %ecx + 0x89, 0x0f, //0x00007001 movl %ecx, (%rdi) + 0x48, 0x83, 0xc2, 0x04, //0x00007003 addq $4, %rdx + 0x48, 0x83, 0xc7, 0x04, //0x00007007 addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x0000700b addq $-4, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x0000700f cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00007013 jae LBB32_82 + //0x00007019 LBB32_78 + 0x48, 0x89, 0xd1, //0x00007019 movq %rdx, %rcx + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x0000701c leaq $32(%rsp), %rdx + 0x48, 0x85, 0xdb, //0x00007021 testq %rbx, %rbx + 0x0f, 0x85, 0x58, 0x00, 0x00, 0x00, //0x00007024 jne LBB32_83 + 0xe9, 0x15, 0xfe, 0xff, 0xff, //0x0000702a jmp LBB32_63 + //0x0000702f LBB32_75 + 0x48, 0x83, 0xfb, 0x08, //0x0000702f cmpq $8, %rbx + 0x0f, 0x82, 0xbc, 0xff, 0xff, 0xff, //0x00007033 jb LBB32_76 + //0x00007039 LBB32_80 + 0x48, 0x8b, 0x0a, //0x00007039 movq (%rdx), %rcx + 0x48, 0x89, 0x0f, //0x0000703c movq %rcx, (%rdi) + 0x48, 0x83, 0xc2, 0x08, //0x0000703f addq $8, %rdx + 0x48, 0x83, 0xc7, 0x08, //0x00007043 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00007047 addq $-8, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x0000704b cmpq $4, %rbx + 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x0000704f jge LBB32_81 + //0x00007055 LBB32_77 + 0x48, 0x83, 0xfb, 0x02, //0x00007055 cmpq $2, %rbx + 0x0f, 0x82, 0xba, 0xff, 0xff, 0xff, //0x00007059 jb LBB32_78 + //0x0000705f LBB32_82 + 0x0f, 0xb7, 0x0a, //0x0000705f movzwl (%rdx), %ecx + 0x66, 0x89, 0x0f, //0x00007062 movw %cx, (%rdi) + 0x48, 0x83, 0xc2, 0x02, //0x00007065 addq $2, %rdx + 0x48, 0x83, 0xc7, 0x02, //0x00007069 addq $2, %rdi + 0x48, 0x83, 0xc3, 0xfe, //0x0000706d addq $-2, %rbx + 0x48, 0x89, 0xd1, //0x00007071 movq %rdx, %rcx + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00007074 leaq $32(%rsp), %rdx + 0x48, 0x85, 0xdb, //0x00007079 testq %rbx, %rbx + 0x0f, 0x84, 0xc2, 0xfd, 0xff, 0xff, //0x0000707c je LBB32_63 + //0x00007082 LBB32_83 + 0x8a, 0x09, //0x00007082 movb (%rcx), %cl + 0x88, 0x0f, //0x00007084 movb %cl, (%rdi) + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x00007086 leaq $32(%rsp), %rdx + 0xe9, 0xb4, 0xfd, 0xff, 0xff, //0x0000708b jmp LBB32_63 + //0x00007090 LBB32_84 + 0x49, 0x8b, 0x47, 0x08, //0x00007090 movq $8(%r15), %rax + 0x48, 0x0f, 0xbc, 0xcf, //0x00007094 bsfq %rdi, %rcx + 0x48, 0x2b, 0x4c, 0x24, 0x18, //0x00007098 subq $24(%rsp), %rcx + 0x48, 0x01, 0xc8, //0x0000709d addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x01, //0x000070a0 addq $1, %rax + 0x49, 0x89, 0x06, //0x000070a4 movq %rax, (%r14) + 0x49, 0x8b, 0x4f, 0x08, //0x000070a7 movq $8(%r15), %rcx + 0x48, 0x39, 0xc8, //0x000070ab cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x000070ae cmovaq %rcx, %rax + 0x49, 0x89, 0x06, //0x000070b2 movq %rax, (%r14) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000070b5 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xe0, //0x000070bc cmovaq %rax, %r12 + 0xe9, 0x30, 0xf9, 0xff, 0xff, //0x000070c0 jmp LBB32_20 + //0x000070c5 LBB32_86 + 0x66, 0x0f, 0xbc, 0xc7, //0x000070c5 bsfw %di, %ax + 0x0f, 0xb7, 0xc0, //0x000070c9 movzwl %ax, %eax + 0x48, 0x29, 0xf0, //0x000070cc subq %rsi, %rax + 0xe9, 0x1e, 0xf9, 0xff, 0xff, //0x000070cf jmp LBB32_19 + //0x000070d4 LBB32_31 + 0x4d, 0x85, 0xff, //0x000070d4 testq %r15, %r15 + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x000070d7 jne LBB32_90 + 0x4d, 0x01, 0xe9, //0x000070dd addq %r13, %r9 + 0x4d, 0x29, 0xea, //0x000070e0 subq %r13, %r10 + //0x000070e3 LBB32_33 + 0x4d, 0x85, 0xd2, //0x000070e3 testq %r10, %r10 + 0x0f, 0x8f, 0x71, 0x00, 0x00, 0x00, //0x000070e6 jg LBB32_94 + 0xe9, 0x07, 0xf9, 0xff, 0xff, //0x000070ec jmp LBB32_21 + //0x000070f1 LBB32_87 + 0x48, 0x01, 0xc2, //0x000070f1 addq %rax, %rdx + 0x48, 0x83, 0xf9, 0x10, //0x000070f4 cmpq $16, %rcx + 0x0f, 0x83, 0x53, 0xf8, 0xff, 0xff, //0x000070f8 jae LBB32_7 + 0xe9, 0xa3, 0xf8, 0xff, 0xff, //0x000070fe jmp LBB32_10 + //0x00007103 LBB32_88 + 0x48, 0x29, 0xc2, //0x00007103 subq %rax, %rdx + 0x48, 0x01, 0xf2, //0x00007106 addq %rsi, %rdx + 0xe9, 0xc0, 0xfc, 0xff, 0xff, //0x00007109 jmp LBB32_59 + //0x0000710e LBB32_89 + 0x49, 0x8b, 0x4f, 0x08, //0x0000710e movq $8(%r15), %rcx + 0x49, 0x89, 0x0e, //0x00007112 movq %rcx, (%r14) + 0xe9, 0xde, 0xf8, 0xff, 0xff, //0x00007115 jmp LBB32_21 + //0x0000711a LBB32_90 + 0x4d, 0x39, 0xea, //0x0000711a cmpq %r13, %r10 + 0x0f, 0x84, 0xd5, 0xf8, 0xff, 0xff, //0x0000711d je LBB32_21 + 0x4d, 0x01, 0xe9, //0x00007123 addq %r13, %r9 + 0x49, 0x83, 0xc1, 0x01, //0x00007126 addq $1, %r9 + 0x49, 0xf7, 0xd5, //0x0000712a notq %r13 + 0x4d, 0x01, 0xea, //0x0000712d addq %r13, %r10 + 0x4d, 0x85, 0xd2, //0x00007130 testq %r10, %r10 + 0x0f, 0x8f, 0x24, 0x00, 0x00, 0x00, //0x00007133 jg LBB32_94 + 0xe9, 0xba, 0xf8, 0xff, 0xff, //0x00007139 jmp LBB32_21 + //0x0000713e LBB32_92 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x0000713e movq $-2, %rcx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007145 movl $2, %eax + 0x49, 0x01, 0xc1, //0x0000714a addq %rax, %r9 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000714d movq $-1, %rax + 0x49, 0x01, 0xca, //0x00007154 addq %rcx, %r10 + 0x0f, 0x8e, 0x9b, 0xf8, 0xff, 0xff, //0x00007157 jle LBB32_21 + //0x0000715d LBB32_94 + 0x41, 0x0f, 0xb6, 0x01, //0x0000715d movzbl (%r9), %eax + 0x3c, 0x5c, //0x00007161 cmpb $92, %al + 0x0f, 0x84, 0xd5, 0xff, 0xff, 0xff, //0x00007163 je LBB32_92 + 0x3c, 0x22, //0x00007169 cmpb $34, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x0000716b je LBB32_97 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00007171 movq $-1, %rcx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007178 movl $1, %eax + 0x49, 0x01, 0xc1, //0x0000717d addq %rax, %r9 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007180 movq $-1, %rax + 0x49, 0x01, 0xca, //0x00007187 addq %rcx, %r10 + 0x0f, 0x8f, 0xcd, 0xff, 0xff, 0xff, //0x0000718a jg LBB32_94 + 0xe9, 0x63, 0xf8, 0xff, 0xff, //0x00007190 jmp LBB32_21 + //0x00007195 LBB32_97 + 0x4c, 0x2b, 0x4c, 0x24, 0x18, //0x00007195 subq $24(%rsp), %r9 + 0x49, 0x83, 0xc1, 0x01, //0x0000719a addq $1, %r9 + 0x4d, 0x89, 0x0e, //0x0000719e movq %r9, (%r14) + 0xe9, 0x4f, 0xf8, 0xff, 0xff, //0x000071a1 jmp LBB32_20 + 0x90, 0x90, //0x000071a6 .p2align 2, 0x90 + // // .set L32_0_set_21, LBB32_21-LJTI32_0 + // // .set L32_0_set_23, LBB32_23-LJTI32_0 + // // .set L32_0_set_24, LBB32_24-LJTI32_0 + // // .set L32_0_set_2, LBB32_2-LJTI32_0 + // // .set L32_0_set_34, LBB32_34-LJTI32_0 + // // .set L32_0_set_58, LBB32_58-LJTI32_0 + // // .set L32_0_set_22, LBB32_22-LJTI32_0 + // // .set L32_0_set_60, LBB32_60-LJTI32_0 + //0x000071a8 LJTI32_0 + 0x50, 0xf8, 0xff, 0xff, //0x000071a8 .long L32_0_set_21 + 0x75, 0xf8, 0xff, 0xff, //0x000071ac .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071b0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071b4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071b8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071bc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071c0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071c4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071c8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071cc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071d0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071d4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071d8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071dc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071e0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071e4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071e8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071ec .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071f0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071f4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071f8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000071fc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007200 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007204 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007208 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000720c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007210 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007214 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007218 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000721c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007220 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007224 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007228 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000722c .long L32_0_set_23 + 0x84, 0xf8, 0xff, 0xff, //0x00007230 .long L32_0_set_24 + 0x75, 0xf8, 0xff, 0xff, //0x00007234 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007238 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000723c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007240 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007244 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007248 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000724c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007250 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007254 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007258 .long L32_0_set_23 + 0x1b, 0xf7, 0xff, 0xff, //0x0000725c .long L32_0_set_2 + 0x75, 0xf8, 0xff, 0xff, //0x00007260 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007264 .long L32_0_set_23 + 0x1b, 0xf7, 0xff, 0xff, //0x00007268 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x0000726c .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007270 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007274 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007278 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x0000727c .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007280 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007284 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x00007288 .long L32_0_set_2 + 0x1b, 0xf7, 0xff, 0xff, //0x0000728c .long L32_0_set_2 + 0x75, 0xf8, 0xff, 0xff, //0x00007290 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007294 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007298 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000729c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072a0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072a4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072a8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072ac .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072b0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072b4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072b8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072bc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072c0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072c4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072c8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072cc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072d0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072d4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072d8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072dc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072e0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072e4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072e8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072ec .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072f0 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072f4 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072f8 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x000072fc .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007300 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007304 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007308 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000730c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007310 .long L32_0_set_23 + 0x65, 0xf9, 0xff, 0xff, //0x00007314 .long L32_0_set_34 + 0x75, 0xf8, 0xff, 0xff, //0x00007318 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000731c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007320 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007324 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007328 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000732c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007330 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007334 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007338 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000733c .long L32_0_set_23 + 0x18, 0xfc, 0xff, 0xff, //0x00007340 .long L32_0_set_58 + 0x75, 0xf8, 0xff, 0xff, //0x00007344 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007348 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000734c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007350 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007354 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007358 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000735c .long L32_0_set_23 + 0x62, 0xf8, 0xff, 0xff, //0x00007360 .long L32_0_set_22 + 0x75, 0xf8, 0xff, 0xff, //0x00007364 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007368 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000736c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007370 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007374 .long L32_0_set_23 + 0x62, 0xf8, 0xff, 0xff, //0x00007378 .long L32_0_set_22 + 0x75, 0xf8, 0xff, 0xff, //0x0000737c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007380 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007384 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007388 .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x0000738c .long L32_0_set_23 + 0x75, 0xf8, 0xff, 0xff, //0x00007390 .long L32_0_set_23 + 0x2e, 0xfc, 0xff, 0xff, //0x00007394 .long L32_0_set_60 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007398 .p2align 4, 0x00 + //0x000073a0 LCPI33_0 + 0x01, 0x00, 0x00, 0x00, //0x000073a0 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x000073a4 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000073a8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000073ac .long 0 + //0x000073b0 .p2align 4, 0x90 + //0x000073b0 _get_by_path + 0x55, //0x000073b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000073b1 movq %rsp, %rbp + 0x41, 0x57, //0x000073b4 pushq %r15 + 0x41, 0x56, //0x000073b6 pushq %r14 + 0x41, 0x55, //0x000073b8 pushq %r13 + 0x41, 0x54, //0x000073ba pushq %r12 + 0x53, //0x000073bc pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x000073bd subq $72, %rsp + 0x49, 0x89, 0xf5, //0x000073c1 movq %rsi, %r13 + 0x49, 0x89, 0xff, //0x000073c4 movq %rdi, %r15 + 0x48, 0x8b, 0x42, 0x08, //0x000073c7 movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x000073cb testq %rax, %rax + 0x0f, 0x84, 0x95, 0x04, 0x00, 0x00, //0x000073ce je LBB33_69 + 0x4c, 0x8b, 0x32, //0x000073d4 movq (%rdx), %r14 + 0x48, 0xc1, 0xe0, 0x04, //0x000073d7 shlq $4, %rax + 0x4c, 0x01, 0xf0, //0x000073db addq %r14, %rax + 0x48, 0x89, 0x4d, 0x98, //0x000073de movq %rcx, $-104(%rbp) + 0x48, 0x89, 0x45, 0xa0, //0x000073e2 movq %rax, $-96(%rbp) + //0x000073e6 LBB33_2 + 0x49, 0x8b, 0x3f, //0x000073e6 movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x000073e9 movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x000073ed movq %r13, %rdx + 0xe8, 0xcb, 0xd1, 0xff, 0xff, //0x000073f0 callq _advance_ns + 0x49, 0x8b, 0x0e, //0x000073f5 movq (%r14), %rcx + 0x48, 0x85, 0xc9, //0x000073f8 testq %rcx, %rcx + 0x0f, 0x84, 0xcb, 0x04, 0x00, 0x00, //0x000073fb je LBB33_75 + 0x8a, 0x49, 0x17, //0x00007401 movb $23(%rcx), %cl + 0x80, 0xe1, 0x1f, //0x00007404 andb $31, %cl + 0x80, 0xf9, 0x02, //0x00007407 cmpb $2, %cl + 0x0f, 0x84, 0xd0, 0x03, 0x00, 0x00, //0x0000740a je LBB33_62 + 0x80, 0xf9, 0x18, //0x00007410 cmpb $24, %cl + 0x0f, 0x85, 0xb3, 0x04, 0x00, 0x00, //0x00007413 jne LBB33_75 + 0x3c, 0x7b, //0x00007419 cmpb $123, %al + 0x4c, 0x89, 0x75, 0xd0, //0x0000741b movq %r14, $-48(%rbp) + 0x0f, 0x85, 0x89, 0x04, 0x00, 0x00, //0x0000741f jne LBB33_73 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007425 .p2align 4, 0x90 + //0x00007430 LBB33_6 + 0x49, 0x8b, 0x3f, //0x00007430 movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x00007433 movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x00007437 movq %r13, %rdx + 0xe8, 0x81, 0xd1, 0xff, 0xff, //0x0000743a callq _advance_ns + 0x3c, 0x22, //0x0000743f cmpb $34, %al + 0x0f, 0x85, 0x46, 0x04, 0x00, 0x00, //0x00007441 jne LBB33_70 + 0x49, 0x8b, 0x46, 0x08, //0x00007447 movq $8(%r14), %rax + 0x4c, 0x8b, 0x20, //0x0000744b movq (%rax), %r12 + 0x4c, 0x8b, 0x70, 0x08, //0x0000744e movq $8(%rax), %r14 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00007452 movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xeb, //0x0000745a movq %r13, %rbx + 0x4d, 0x8b, 0x6d, 0x00, //0x0000745d movq (%r13), %r13 + 0x4c, 0x89, 0xff, //0x00007461 movq %r15, %rdi + 0x4c, 0x89, 0xee, //0x00007464 movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00007467 leaq $-80(%rbp), %rdx + 0xe8, 0xd0, 0x2b, 0x00, 0x00, //0x0000746b callq _advance_string_default + 0x48, 0x85, 0xc0, //0x00007470 testq %rax, %rax + 0x0f, 0x88, 0x64, 0x04, 0x00, 0x00, //0x00007473 js LBB33_76 + 0x49, 0x89, 0xd9, //0x00007479 movq %rbx, %r9 + 0x48, 0x89, 0x03, //0x0000747c movq %rax, (%rbx) + 0x48, 0x8b, 0x4d, 0xb0, //0x0000747f movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00007483 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00007487 je LBB33_10 + 0x48, 0x39, 0xc1, //0x0000748d cmpq %rax, %rcx + 0x0f, 0x8e, 0xff, 0x01, 0x00, 0x00, //0x00007490 jle LBB33_38 + //0x00007496 LBB33_10 + 0x4d, 0x89, 0xe2, //0x00007496 movq %r12, %r10 + 0x4c, 0x89, 0xe9, //0x00007499 movq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x0000749c notq %rcx + 0x48, 0x01, 0xc8, //0x0000749f addq %rcx, %rax + 0x41, 0xbc, 0x01, 0x00, 0x00, 0x00, //0x000074a2 movl $1, %r12d + 0x48, 0x89, 0xc1, //0x000074a8 movq %rax, %rcx + 0x4c, 0x09, 0xf1, //0x000074ab orq %r14, %rcx + 0x0f, 0x84, 0x90, 0x01, 0x00, 0x00, //0x000074ae je LBB33_34 + 0x4c, 0x39, 0xf0, //0x000074b4 cmpq %r14, %rax + 0x0f, 0x85, 0x63, 0x00, 0x00, 0x00, //0x000074b7 jne LBB33_15 + 0x4d, 0x03, 0x2f, //0x000074bd addq (%r15), %r13 + 0x31, 0xc9, //0x000074c0 xorl %ecx, %ecx + 0x4c, 0x89, 0xeb, //0x000074c2 movq %r13, %rbx + 0x4c, 0x89, 0xd7, //0x000074c5 movq %r10, %rdi + 0x4c, 0x89, 0xf0, //0x000074c8 movq %r14, %rax + 0x4c, 0x89, 0xd2, //0x000074cb movq %r10, %rdx + 0x4c, 0x89, 0xee, //0x000074ce movq %r13, %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000074d1 .p2align 4, 0x90 + //0x000074e0 LBB33_13 + 0x48, 0x83, 0xf8, 0x20, //0x000074e0 cmpq $32, %rax + 0x0f, 0x82, 0x3e, 0x00, 0x00, 0x00, //0x000074e4 jb LBB33_16 + 0xc5, 0xfe, 0x6f, 0x06, //0x000074ea vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x02, //0x000074ee vpcmpeqb (%rdx), %ymm0, %ymm0 + 0xc5, 0x7d, 0xd7, 0xc0, //0x000074f2 vpmovmskb %ymm0, %r8d + 0x48, 0x83, 0xc6, 0x20, //0x000074f6 addq $32, %rsi + 0x48, 0x83, 0xc2, 0x20, //0x000074fa addq $32, %rdx + 0x48, 0x83, 0xc0, 0xe0, //0x000074fe addq $-32, %rax + 0x48, 0x83, 0xc7, 0x20, //0x00007502 addq $32, %rdi + 0x48, 0x83, 0xc3, 0x20, //0x00007506 addq $32, %rbx + 0x48, 0x83, 0xc1, 0x20, //0x0000750a addq $32, %rcx + 0x41, 0x83, 0xf8, 0xff, //0x0000750e cmpl $-1, %r8d + 0x0f, 0x84, 0xc8, 0xff, 0xff, 0xff, //0x00007512 je LBB33_13 + 0xe9, 0x80, 0x00, 0x00, 0x00, //0x00007518 jmp LBB33_22 + 0x90, 0x90, 0x90, //0x0000751d .p2align 4, 0x90 + //0x00007520 LBB33_15 + 0x45, 0x31, 0xe4, //0x00007520 xorl %r12d, %r12d + 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00007523 jmp LBB33_34 + //0x00007528 LBB33_16 + 0x81, 0xe3, 0xff, 0x0f, 0x00, 0x00, //0x00007528 andl $4095, %ebx + 0x81, 0xfb, 0xe0, 0x0f, 0x00, 0x00, //0x0000752e cmpl $4064, %ebx + 0x0f, 0x87, 0x36, 0x00, 0x00, 0x00, //0x00007534 ja LBB33_20 + 0x81, 0xe7, 0xff, 0x0f, 0x00, 0x00, //0x0000753a andl $4095, %edi + 0x81, 0xff, 0xe1, 0x0f, 0x00, 0x00, //0x00007540 cmpl $4065, %edi + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00007546 jae LBB33_20 + 0xc5, 0xfe, 0x6f, 0x06, //0x0000754c vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x02, //0x00007550 vpcmpeqb (%rdx), %ymm0, %ymm0 + 0xc5, 0xfd, 0xd7, 0xc8, //0x00007554 vpmovmskb %ymm0, %ecx + 0x83, 0xf9, 0xff, //0x00007558 cmpl $-1, %ecx + 0x0f, 0x84, 0x9f, 0x00, 0x00, 0x00, //0x0000755b je LBB33_32 + 0xf7, 0xd1, //0x00007561 notl %ecx + 0x0f, 0xbc, 0xc9, //0x00007563 bsfl %ecx, %ecx + 0xe9, 0x8a, 0x00, 0x00, 0x00, //0x00007566 jmp LBB33_27 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000756b .p2align 4, 0x90 + //0x00007570 LBB33_20 + 0x48, 0x83, 0xf8, 0x10, //0x00007570 cmpq $16, %rax + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00007574 jb LBB33_23 + 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x0d, 0x00, //0x0000757a vmovdqu (%r13,%rcx), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x0a, //0x00007581 vpcmpeqb (%r10,%rcx), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xd0, //0x00007587 vpmovmskb %xmm0, %edx + 0x48, 0x83, 0xc0, 0xf0, //0x0000758b addq $-16, %rax + 0x48, 0x83, 0xc1, 0x10, //0x0000758f addq $16, %rcx + 0x66, 0x83, 0xfa, 0xff, //0x00007593 cmpw $-1, %dx + 0x0f, 0x84, 0xd3, 0xff, 0xff, 0xff, //0x00007597 je LBB33_20 + //0x0000759d LBB33_22 + 0x31, 0xc0, //0x0000759d xorl %eax, %eax + 0xe9, 0x9c, 0x00, 0x00, 0x00, //0x0000759f jmp LBB33_33 + //0x000075a4 LBB33_23 + 0x44, 0x89, 0xea, //0x000075a4 movl %r13d, %edx + 0x01, 0xca, //0x000075a7 addl %ecx, %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x000075a9 andl $4095, %edx + 0x81, 0xfa, 0xf0, 0x0f, 0x00, 0x00, //0x000075af cmpl $4080, %edx + 0x0f, 0x87, 0x4c, 0x00, 0x00, 0x00, //0x000075b5 ja LBB33_29 + 0x41, 0x8d, 0x14, 0x0a, //0x000075bb leal (%r10,%rcx), %edx + 0x81, 0xe2, 0xff, 0x0f, 0x00, 0x00, //0x000075bf andl $4095, %edx + 0x81, 0xfa, 0xf1, 0x0f, 0x00, 0x00, //0x000075c5 cmpl $4081, %edx + 0x0f, 0x83, 0x36, 0x00, 0x00, 0x00, //0x000075cb jae LBB33_29 + 0xc4, 0xc1, 0x7a, 0x6f, 0x44, 0x0d, 0x00, //0x000075d1 vmovdqu (%r13,%rcx), %xmm0 + 0xc4, 0xc1, 0x79, 0x74, 0x04, 0x0a, //0x000075d8 vpcmpeqb (%r10,%rcx), %xmm0, %xmm0 + 0xc5, 0xf9, 0xd7, 0xc8, //0x000075de vpmovmskb %xmm0, %ecx + 0x66, 0x83, 0xf9, 0xff, //0x000075e2 cmpw $-1, %cx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000075e6 je LBB33_32 + 0xf7, 0xd1, //0x000075ec notl %ecx + 0x66, 0x0f, 0xbc, 0xc9, //0x000075ee bsfw %cx, %cx + 0x0f, 0xb7, 0xc9, //0x000075f2 movzwl %cx, %ecx + //0x000075f5 LBB33_27 + 0x48, 0x39, 0xc8, //0x000075f5 cmpq %rcx, %rax + 0x0f, 0x96, 0xc0, //0x000075f8 setbe %al + 0xe9, 0x40, 0x00, 0x00, 0x00, //0x000075fb jmp LBB33_33 + //0x00007600 LBB33_32 + 0xb0, 0x01, //0x00007600 movb $1, %al + 0xe9, 0x39, 0x00, 0x00, 0x00, //0x00007602 jmp LBB33_33 + //0x00007607 LBB33_29 + 0xb0, 0x01, //0x00007607 movb $1, %al + 0x49, 0x39, 0xce, //0x00007609 cmpq %rcx, %r14 + 0x0f, 0x84, 0x2e, 0x00, 0x00, 0x00, //0x0000760c je LBB33_33 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007612 .p2align 4, 0x90 + //0x00007620 LBB33_30 + 0x41, 0x0f, 0xb6, 0x44, 0x0d, 0x00, //0x00007620 movzbl (%r13,%rcx), %eax + 0x41, 0x3a, 0x04, 0x0a, //0x00007626 cmpb (%r10,%rcx), %al + 0x0f, 0x94, 0xc0, //0x0000762a sete %al + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x0000762d jne LBB33_33 + 0x48, 0x83, 0xc1, 0x01, //0x00007633 addq $1, %rcx + 0x49, 0x39, 0xce, //0x00007637 cmpq %rcx, %r14 + 0x0f, 0x85, 0xe0, 0xff, 0xff, 0xff, //0x0000763a jne LBB33_30 + //0x00007640 .p2align 4, 0x90 + //0x00007640 LBB33_33 + 0x44, 0x0f, 0xb6, 0xe0, //0x00007640 movzbl %al, %r12d + //0x00007644 LBB33_34 + 0x4d, 0x89, 0xcd, //0x00007644 movq %r9, %r13 + 0x4c, 0x8b, 0x75, 0xd0, //0x00007647 movq $-48(%rbp), %r14 + //0x0000764b LBB33_35 + 0x49, 0x8b, 0x3f, //0x0000764b movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000764e movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x00007652 movq %r13, %rdx + 0xc5, 0xf8, 0x77, //0x00007655 vzeroupper + 0xe8, 0x63, 0xcf, 0xff, 0xff, //0x00007658 callq _advance_ns + 0x3c, 0x3a, //0x0000765d cmpb $58, %al + 0x0f, 0x85, 0x49, 0x02, 0x00, 0x00, //0x0000765f jne LBB33_73 + 0x4d, 0x85, 0xe4, //0x00007665 testq %r12, %r12 + 0x0f, 0x85, 0xe6, 0x01, 0x00, 0x00, //0x00007668 jne LBB33_68 + 0x4c, 0x89, 0xff, //0x0000766e movq %r15, %rdi + 0x4c, 0x89, 0xee, //0x00007671 movq %r13, %rsi + 0xe8, 0xf7, 0xf1, 0xff, 0xff, //0x00007674 callq _skip_one_fast + 0x49, 0x8b, 0x3f, //0x00007679 movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000767c movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x00007680 movq %r13, %rdx + 0xe8, 0x38, 0xcf, 0xff, 0xff, //0x00007683 callq _advance_ns + 0x3c, 0x2c, //0x00007688 cmpb $44, %al + 0x0f, 0x84, 0xa0, 0xfd, 0xff, 0xff, //0x0000768a je LBB33_6 + 0xe9, 0xf8, 0x01, 0x00, 0x00, //0x00007690 jmp LBB33_70 + //0x00007695 LBB33_38 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00007695 movq $0, $-64(%rbp) + 0x49, 0x8b, 0x17, //0x0000769d movq (%r15), %rdx + 0x4a, 0x8d, 0x0c, 0x2a, //0x000076a0 leaq (%rdx,%r13), %rcx + 0x48, 0x89, 0x4d, 0xc8, //0x000076a4 movq %rcx, $-56(%rbp) + 0x48, 0x8d, 0x34, 0x02, //0x000076a8 leaq (%rdx,%rax), %rsi + 0x48, 0x83, 0xc6, 0xff, //0x000076ac addq $-1, %rsi + 0x48, 0x83, 0xc0, 0xff, //0x000076b0 addq $-1, %rax + 0x4b, 0x8d, 0x3c, 0x34, //0x000076b4 leaq (%r12,%r14), %rdi + 0x49, 0x39, 0xc5, //0x000076b8 cmpq %rax, %r13 + 0x48, 0x8d, 0x55, 0xc0, //0x000076bb leaq $-64(%rbp), %rdx + 0x0f, 0x8d, 0xd8, 0x00, 0x00, 0x00, //0x000076bf jge LBB33_55 + 0x4d, 0x85, 0xf6, //0x000076c5 testq %r14, %r14 + 0x4d, 0x89, 0xcd, //0x000076c8 movq %r9, %r13 + 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x000076cb jle LBB33_56 + 0x4c, 0x8b, 0x75, 0xd0, //0x000076d1 movq $-48(%rbp), %r14 + 0x48, 0x89, 0x75, 0xb8, //0x000076d5 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0x7d, 0xa8, //0x000076d9 movq %rdi, $-88(%rbp) + //0x000076dd LBB33_41 + 0x8a, 0x01, //0x000076dd movb (%rcx), %al + 0x3c, 0x5c, //0x000076df cmpb $92, %al + 0x0f, 0x85, 0x70, 0x00, 0x00, 0x00, //0x000076e1 jne LBB33_48 + 0x4c, 0x89, 0xe3, //0x000076e7 movq %r12, %rbx + 0x48, 0x8d, 0x7d, 0xc8, //0x000076ea leaq $-56(%rbp), %rdi + 0xe8, 0x6d, 0x2c, 0x00, 0x00, //0x000076ee callq _unescape + 0x49, 0x89, 0xc4, //0x000076f3 movq %rax, %r12 + 0x48, 0x85, 0xc0, //0x000076f6 testq %rax, %rax + 0x0f, 0x88, 0xc5, 0x00, 0x00, 0x00, //0x000076f9 js LBB33_59 + 0x49, 0x8d, 0x04, 0x2c, //0x000076ff leaq (%r12,%rbp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x00007703 addq $-64, %rax + 0x49, 0x89, 0xdc, //0x00007707 movq %rbx, %r12 + 0x48, 0x8b, 0x7d, 0xa8, //0x0000770a movq $-88(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc0, //0x0000770e leaq $-64(%rbp), %rdx + 0x48, 0x39, 0xfb, //0x00007712 cmpq %rdi, %rbx + 0x0f, 0x83, 0x57, 0x00, 0x00, 0x00, //0x00007715 jae LBB33_50 + 0x48, 0x39, 0xd0, //0x0000771b cmpq %rdx, %rax + 0x48, 0x8b, 0x75, 0xb8, //0x0000771e movq $-72(%rbp), %rsi + 0x48, 0x89, 0xd1, //0x00007722 movq %rdx, %rcx + 0x0f, 0x86, 0x4e, 0x00, 0x00, 0x00, //0x00007725 jbe LBB33_51 + //0x0000772b LBB33_45 + 0x41, 0x0f, 0xb6, 0x1c, 0x24, //0x0000772b movzbl (%r12), %ebx + 0x3a, 0x19, //0x00007730 cmpb (%rcx), %bl + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007732 jne LBB33_51 + 0x49, 0x83, 0xc4, 0x01, //0x00007738 addq $1, %r12 + 0x48, 0x83, 0xc1, 0x01, //0x0000773c addq $1, %rcx + 0x49, 0x39, 0xfc, //0x00007740 cmpq %rdi, %r12 + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007743 jae LBB33_51 + 0x48, 0x39, 0xc1, //0x00007749 cmpq %rax, %rcx + 0x0f, 0x82, 0xd9, 0xff, 0xff, 0xff, //0x0000774c jb LBB33_45 + 0xe9, 0x22, 0x00, 0x00, 0x00, //0x00007752 jmp LBB33_51 + //0x00007757 LBB33_48 + 0x41, 0x3a, 0x04, 0x24, //0x00007757 cmpb (%r12), %al + 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x0000775b jne LBB33_61 + 0x48, 0x83, 0xc1, 0x01, //0x00007761 addq $1, %rcx + 0x48, 0x89, 0x4d, 0xc8, //0x00007765 movq %rcx, $-56(%rbp) + 0x49, 0x83, 0xc4, 0x01, //0x00007769 addq $1, %r12 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x0000776d jmp LBB33_53 + //0x00007772 LBB33_50 + 0x48, 0x89, 0xd1, //0x00007772 movq %rdx, %rcx + 0x48, 0x8b, 0x75, 0xb8, //0x00007775 movq $-72(%rbp), %rsi + //0x00007779 LBB33_51 + 0x48, 0x39, 0xc1, //0x00007779 cmpq %rax, %rcx + 0x0f, 0x85, 0x3a, 0x00, 0x00, 0x00, //0x0000777c jne LBB33_61 + 0x48, 0x8b, 0x4d, 0xc8, //0x00007782 movq $-56(%rbp), %rcx + //0x00007786 LBB33_53 + 0x48, 0x39, 0xf1, //0x00007786 cmpq %rsi, %rcx + 0x0f, 0x83, 0x15, 0x00, 0x00, 0x00, //0x00007789 jae LBB33_57 + 0x49, 0x39, 0xfc, //0x0000778f cmpq %rdi, %r12 + 0x0f, 0x82, 0x45, 0xff, 0xff, 0xff, //0x00007792 jb LBB33_41 + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00007798 jmp LBB33_57 + //0x0000779d LBB33_55 + 0x4d, 0x89, 0xcd, //0x0000779d movq %r9, %r13 + //0x000077a0 LBB33_56 + 0x4c, 0x8b, 0x75, 0xd0, //0x000077a0 movq $-48(%rbp), %r14 + //0x000077a4 LBB33_57 + 0x48, 0x31, 0xf1, //0x000077a4 xorq %rsi, %rcx + 0x49, 0x31, 0xfc, //0x000077a7 xorq %rdi, %r12 + 0x4c, 0x89, 0xe0, //0x000077aa movq %r12, %rax + 0x45, 0x31, 0xe4, //0x000077ad xorl %r12d, %r12d + 0x48, 0x09, 0xc8, //0x000077b0 orq %rcx, %rax + 0x41, 0x0f, 0x94, 0xc4, //0x000077b3 sete %r12b + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x000077b7 jmp LBB33_58 + //0x000077bc LBB33_61 + 0x45, 0x31, 0xe4, //0x000077bc xorl %r12d, %r12d + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x000077bf jmp LBB33_58 + //0x000077c4 LBB33_59 + 0x48, 0x8b, 0x45, 0xc8, //0x000077c4 movq $-56(%rbp), %rax + 0x49, 0x2b, 0x07, //0x000077c8 subq (%r15), %rax + 0x49, 0x89, 0x45, 0x00, //0x000077cb movq %rax, (%r13) + //0x000077cf LBB33_58 + 0x4d, 0x85, 0xe4, //0x000077cf testq %r12, %r12 + 0x0f, 0x89, 0x73, 0xfe, 0xff, 0xff, //0x000077d2 jns LBB33_35 + 0xe9, 0xdd, 0x00, 0x00, 0x00, //0x000077d8 jmp LBB33_74 + 0x90, 0x90, 0x90, //0x000077dd .p2align 4, 0x90 + //0x000077e0 LBB33_62 + 0x3c, 0x5b, //0x000077e0 cmpb $91, %al + 0x0f, 0x85, 0xc6, 0x00, 0x00, 0x00, //0x000077e2 jne LBB33_73 + 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, 0xd4, 0x00, 0x00, 0x00, //0x000077f2 js LBB33_75 + 0x49, 0x8b, 0x3f, //0x000077f8 movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x000077fb movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x000077ff movq %r13, %rdx + 0xe8, 0xb9, 0xcd, 0xff, 0xff, //0x00007802 callq _advance_ns + 0x3c, 0x5d, //0x00007807 cmpb $93, %al + 0x0f, 0x84, 0x86, 0x00, 0x00, 0x00, //0x00007809 je LBB33_71 + 0x49, 0x83, 0x45, 0x00, 0xff, //0x0000780f addq $-1, (%r13) + 0x48, 0x83, 0xc3, 0x01, //0x00007814 addq $1, %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007818 .p2align 4, 0x90 + //0x00007820 LBB33_66 + 0x48, 0x83, 0xc3, 0xff, //0x00007820 addq $-1, %rbx + 0x48, 0x85, 0xdb, //0x00007824 testq %rbx, %rbx + 0x0f, 0x8e, 0x27, 0x00, 0x00, 0x00, //0x00007827 jle LBB33_68 + 0x4c, 0x89, 0xff, //0x0000782d movq %r15, %rdi + 0x4c, 0x89, 0xee, //0x00007830 movq %r13, %rsi + 0xe8, 0x38, 0xf0, 0xff, 0xff, //0x00007833 callq _skip_one_fast + 0x49, 0x8b, 0x3f, //0x00007838 movq (%r15), %rdi + 0x49, 0x8b, 0x77, 0x08, //0x0000783b movq $8(%r15), %rsi + 0x4c, 0x89, 0xea, //0x0000783f movq %r13, %rdx + 0xe8, 0x79, 0xcd, 0xff, 0xff, //0x00007842 callq _advance_ns + 0x3c, 0x2c, //0x00007847 cmpb $44, %al + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00007849 je LBB33_66 + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x0000784f jmp LBB33_72 + //0x00007854 LBB33_68 + 0x49, 0x83, 0xc6, 0x10, //0x00007854 addq $16, %r14 + 0x48, 0x8b, 0x45, 0xa0, //0x00007858 movq $-96(%rbp), %rax + 0x49, 0x39, 0xc6, //0x0000785c cmpq %rax, %r14 + 0x48, 0x8b, 0x4d, 0x98, //0x0000785f movq $-104(%rbp), %rcx + 0x0f, 0x85, 0x7d, 0xfb, 0xff, 0xff, //0x00007863 jne LBB33_2 + //0x00007869 LBB33_69 + 0xc5, 0xf9, 0x6f, 0x05, 0x2f, 0xfb, 0xff, 0xff, //0x00007869 vmovdqa $-1233(%rip), %xmm0 /* LCPI33_0+0(%rip) */ + 0xc5, 0xfa, 0x7f, 0x01, //0x00007871 vmovdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x00007875 movq %rcx, %rdi + 0x4c, 0x89, 0xfe, //0x00007878 movq %r15, %rsi + 0x4c, 0x89, 0xea, //0x0000787b movq %r13, %rdx + 0x31, 0xc9, //0x0000787e xorl %ecx, %ecx + 0xe8, 0xeb, 0xdd, 0xff, 0xff, //0x00007880 callq _fsm_exec + 0x49, 0x89, 0xc4, //0x00007885 movq %rax, %r12 + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00007888 jmp LBB33_74 + //0x0000788d LBB33_70 + 0x3c, 0x7d, //0x0000788d cmpb $125, %al + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x0000788f jne LBB33_73 + //0x00007895 LBB33_71 + 0x49, 0x83, 0x45, 0x00, 0xff, //0x00007895 addq $-1, (%r13) + 0x49, 0xc7, 0xc4, 0xdf, 0xff, 0xff, 0xff, //0x0000789a movq $-33, %r12 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000078a1 jmp LBB33_74 + //0x000078a6 LBB33_72 + 0x3c, 0x5d, //0x000078a6 cmpb $93, %al + 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x000078a8 je LBB33_71 + //0x000078ae LBB33_73 + 0x49, 0x83, 0x45, 0x00, 0xff, //0x000078ae addq $-1, (%r13) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000078b3 movq $-2, %r12 + //0x000078ba LBB33_74 + 0x4c, 0x89, 0xe0, //0x000078ba movq %r12, %rax + 0x48, 0x83, 0xc4, 0x48, //0x000078bd addq $72, %rsp + 0x5b, //0x000078c1 popq %rbx + 0x41, 0x5c, //0x000078c2 popq %r12 + 0x41, 0x5d, //0x000078c4 popq %r13 + 0x41, 0x5e, //0x000078c6 popq %r14 + 0x41, 0x5f, //0x000078c8 popq %r15 + 0x5d, //0x000078ca popq %rbp + 0xc3, //0x000078cb retq + //0x000078cc LBB33_75 + 0x49, 0x83, 0x45, 0x00, 0xff, //0x000078cc addq $-1, (%r13) + 0x49, 0xc7, 0xc4, 0xde, 0xff, 0xff, 0xff, //0x000078d1 movq $-34, %r12 + 0xe9, 0xdd, 0xff, 0xff, 0xff, //0x000078d8 jmp LBB33_74 + //0x000078dd LBB33_76 + 0x49, 0x8b, 0x47, 0x08, //0x000078dd movq $8(%r15), %rax + 0x48, 0x89, 0x03, //0x000078e1 movq %rax, (%rbx) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000078e4 movq $-1, %r12 + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x000078eb jmp LBB33_74 + //0x000078f0 .p2align 4, 0x90 + //0x000078f0 _validate_utf8 + 0x55, //0x000078f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000078f1 movq %rsp, %rbp + 0x41, 0x57, //0x000078f4 pushq %r15 + 0x41, 0x56, //0x000078f6 pushq %r14 + 0x41, 0x54, //0x000078f8 pushq %r12 + 0x53, //0x000078fa pushq %rbx + 0x50, //0x000078fb pushq %rax + 0x4c, 0x8b, 0x17, //0x000078fc movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x000078ff movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x00007903 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x00007906 addq %r10, %rcx + 0x4f, 0x8d, 0x04, 0x1a, //0x00007909 leaq (%r10,%r11), %r8 + 0x49, 0x83, 0xc0, 0xfd, //0x0000790d addq $-3, %r8 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007911 jmp LBB34_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007916 .p2align 4, 0x90 + //0x00007920 LBB34_19 + 0x48, 0x01, 0xd9, //0x00007920 addq %rbx, %rcx + //0x00007923 LBB34_1 + 0x4c, 0x39, 0xc1, //0x00007923 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x00007926 jae LBB34_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000792c movl $1, %ebx + 0x80, 0x39, 0x00, //0x00007931 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007934 jns LBB34_19 + 0x8b, 0x01, //0x0000793a movl (%rcx), %eax + 0x89, 0xc7, //0x0000793c movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x0000793e andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x00007944 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000794a jne LBB34_10 + 0x89, 0xc7, //0x00007950 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00007952 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007958 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000795e je LBB34_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007964 movl $3, %ebx + 0x85, 0xff, //0x00007969 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000796b jne LBB34_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007971 .p2align 4, 0x90 + //0x00007980 LBB34_10 + 0x89, 0xc7, //0x00007980 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007982 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007988 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000798e jne LBB34_12 + 0x89, 0xc7, //0x00007994 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007996 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000799b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000799e jne LBB34_19 + //0x000079a4 LBB34_12 + 0x89, 0xc7, //0x000079a4 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x000079a6 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x000079ac cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x000079b2 jne LBB34_16 + 0x89, 0xc7, //0x000079b8 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x000079ba andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000079c0 je LBB34_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000079c6 movl $4, %ebx + 0xa8, 0x04, //0x000079cb testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x000079cd je LBB34_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x000079d3 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x000079d8 je LBB34_19 + //0x000079de LBB34_16 + 0x48, 0x89, 0xcf, //0x000079de movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x000079e1 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x000079e4 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x000079e7 cmpq $4096, %rbx + 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x000079ee jae LBB34_17 + 0x48, 0x63, 0xc7, //0x000079f4 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x000079f7 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x000079fb movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x000079fe movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007a03 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x00007a08 jmp LBB34_19 + //0x00007a0d LBB34_2 + 0x4d, 0x01, 0xd3, //0x00007a0d addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x00007a10 cmpq %r11, %rcx + 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x00007a13 jae LBB34_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x00007a19 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x00007a1d leaq $-38(%rbp), %r9 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007a21 jmp LBB34_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007a26 .p2align 4, 0x90 + //0x00007a30 LBB34_5 + 0x48, 0x83, 0xc1, 0x01, //0x00007a30 addq $1, %rcx + 0x4c, 0x39, 0xd9, //0x00007a34 cmpq %r11, %rcx + 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x00007a37 jae LBB34_36 + //0x00007a3d LBB34_4 + 0x80, 0x39, 0x00, //0x00007a3d cmpb $0, (%rcx) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007a40 jns LBB34_5 + 0xc6, 0x45, 0xdc, 0x00, //0x00007a46 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x00007a4a movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x00007a4e movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x00007a51 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00007a54 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x00007a58 jb LBB34_21 + 0x44, 0x0f, 0xb6, 0x21, //0x00007a5e movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007a62 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007a67 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x00007a6b leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00007a6f addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007a73 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007a76 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007a79 je LBB34_24 + //0x00007a7f LBB34_25 + 0x41, 0x0f, 0xb6, 0x07, //0x00007a7f movzbl (%r15), %eax + 0x88, 0x07, //0x00007a83 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007a85 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x00007a8a movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00007a8e jmp LBB34_26 + //0x00007a93 LBB34_21 + 0x45, 0x31, 0xe4, //0x00007a93 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007a96 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007a99 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x00007a9c movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x00007a9f testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007aa2 jne LBB34_25 + //0x00007aa8 LBB34_24 + 0x31, 0xff, //0x00007aa8 xorl %edi, %edi + //0x00007aaa LBB34_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x00007aaa movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x00007aae shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007ab1 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007ab5 shll $8, %ebx + 0x09, 0xc3, //0x00007ab8 orl %eax, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x00007aba movzbl %r12b, %edi + 0x09, 0xdf, //0x00007abe orl %ebx, %edi + 0x89, 0xf8, //0x00007ac0 movl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007ac2 andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007ac7 cmpl $8421600, %eax + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x00007acc jne LBB34_29 + 0x89, 0xf8, //0x00007ad2 movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007ad4 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007ad9 cmpl $8205, %eax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00007ade je LBB34_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007ae4 movl $3, %ebx + 0x85, 0xc0, //0x00007ae9 testl %eax, %eax + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x00007aeb jne LBB34_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007af1 .p2align 4, 0x90 + //0x00007b00 LBB34_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x00007b00 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x00007b04 je LBB34_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007b0a andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007b10 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007b15 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x00007b1b jne LBB34_31 + //0x00007b21 LBB34_34 + 0x48, 0x01, 0xd9, //0x00007b21 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007b24 cmpq %r11, %rcx + 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00007b27 jb LBB34_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x00007b2d jmp LBB34_36 + //0x00007b32 LBB34_31 + 0x48, 0x89, 0xc8, //0x00007b32 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x00007b35 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x00007b38 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x00007b3b cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00007b42 jae LBB34_32 + 0x48, 0x98, //0x00007b48 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x00007b4a leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x00007b4e movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x00007b51 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00007b56 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x00007b5b addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x00007b5e cmpq %r11, %rcx + 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007b61 jb LBB34_4 + //0x00007b67 LBB34_36 + 0x4c, 0x29, 0xd1, //0x00007b67 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x00007b6a movq %rcx, (%rsi) + 0x31, 0xc0, //0x00007b6d xorl %eax, %eax + //0x00007b6f LBB34_37 + 0x48, 0x83, 0xc4, 0x08, //0x00007b6f addq $8, %rsp + 0x5b, //0x00007b73 popq %rbx + 0x41, 0x5c, //0x00007b74 popq %r12 + 0x41, 0x5e, //0x00007b76 popq %r14 + 0x41, 0x5f, //0x00007b78 popq %r15 + 0x5d, //0x00007b7a popq %rbp + 0xc3, //0x00007b7b retq + //0x00007b7c LBB34_32 + 0x48, 0x89, 0x06, //0x00007b7c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007b7f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007b86 jmp LBB34_37 + //0x00007b8b LBB34_17 + 0x48, 0x89, 0x3e, //0x00007b8b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007b8e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007b95 jmp LBB34_37 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007b9a .p2align 5, 0x00 + //0x00007ba0 LCPI35_0 + 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00007ba0 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, //0x00007bb0 QUAD $0x0f0f0f0f0f0f0f0f; QUAD $0x0f0f0f0f0f0f0f0f // .space 16, '\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f\x0f' + //0x00007bc0 LCPI35_1 + 0x02, //0x00007bc0 .byte 2 + 0x02, //0x00007bc1 .byte 2 + 0x02, //0x00007bc2 .byte 2 + 0x02, //0x00007bc3 .byte 2 + 0x02, //0x00007bc4 .byte 2 + 0x02, //0x00007bc5 .byte 2 + 0x02, //0x00007bc6 .byte 2 + 0x02, //0x00007bc7 .byte 2 + 0x80, //0x00007bc8 .byte 128 + 0x80, //0x00007bc9 .byte 128 + 0x80, //0x00007bca .byte 128 + 0x80, //0x00007bcb .byte 128 + 0x21, //0x00007bcc .byte 33 + 0x01, //0x00007bcd .byte 1 + 0x15, //0x00007bce .byte 21 + 0x49, //0x00007bcf .byte 73 + 0x02, //0x00007bd0 .byte 2 + 0x02, //0x00007bd1 .byte 2 + 0x02, //0x00007bd2 .byte 2 + 0x02, //0x00007bd3 .byte 2 + 0x02, //0x00007bd4 .byte 2 + 0x02, //0x00007bd5 .byte 2 + 0x02, //0x00007bd6 .byte 2 + 0x02, //0x00007bd7 .byte 2 + 0x80, //0x00007bd8 .byte 128 + 0x80, //0x00007bd9 .byte 128 + 0x80, //0x00007bda .byte 128 + 0x80, //0x00007bdb .byte 128 + 0x21, //0x00007bdc .byte 33 + 0x01, //0x00007bdd .byte 1 + 0x15, //0x00007bde .byte 21 + 0x49, //0x00007bdf .byte 73 + //0x00007be0 LCPI35_2 + 0xe7, //0x00007be0 .byte 231 + 0xa3, //0x00007be1 .byte 163 + 0x83, //0x00007be2 .byte 131 + 0x83, //0x00007be3 .byte 131 + 0x8b, //0x00007be4 .byte 139 + 0xcb, //0x00007be5 .byte 203 + 0xcb, //0x00007be6 .byte 203 + 0xcb, //0x00007be7 .byte 203 + 0xcb, //0x00007be8 .byte 203 + 0xcb, //0x00007be9 .byte 203 + 0xcb, //0x00007bea .byte 203 + 0xcb, //0x00007beb .byte 203 + 0xcb, //0x00007bec .byte 203 + 0xdb, //0x00007bed .byte 219 + 0xcb, //0x00007bee .byte 203 + 0xcb, //0x00007bef .byte 203 + 0xe7, //0x00007bf0 .byte 231 + 0xa3, //0x00007bf1 .byte 163 + 0x83, //0x00007bf2 .byte 131 + 0x83, //0x00007bf3 .byte 131 + 0x8b, //0x00007bf4 .byte 139 + 0xcb, //0x00007bf5 .byte 203 + 0xcb, //0x00007bf6 .byte 203 + 0xcb, //0x00007bf7 .byte 203 + 0xcb, //0x00007bf8 .byte 203 + 0xcb, //0x00007bf9 .byte 203 + 0xcb, //0x00007bfa .byte 203 + 0xcb, //0x00007bfb .byte 203 + 0xcb, //0x00007bfc .byte 203 + 0xdb, //0x00007bfd .byte 219 + 0xcb, //0x00007bfe .byte 203 + 0xcb, //0x00007bff .byte 203 + //0x00007c00 LCPI35_3 + 0x01, //0x00007c00 .byte 1 + 0x01, //0x00007c01 .byte 1 + 0x01, //0x00007c02 .byte 1 + 0x01, //0x00007c03 .byte 1 + 0x01, //0x00007c04 .byte 1 + 0x01, //0x00007c05 .byte 1 + 0x01, //0x00007c06 .byte 1 + 0x01, //0x00007c07 .byte 1 + 0xe6, //0x00007c08 .byte 230 + 0xae, //0x00007c09 .byte 174 + 0xba, //0x00007c0a .byte 186 + 0xba, //0x00007c0b .byte 186 + 0x01, //0x00007c0c .byte 1 + 0x01, //0x00007c0d .byte 1 + 0x01, //0x00007c0e .byte 1 + 0x01, //0x00007c0f .byte 1 + 0x01, //0x00007c10 .byte 1 + 0x01, //0x00007c11 .byte 1 + 0x01, //0x00007c12 .byte 1 + 0x01, //0x00007c13 .byte 1 + 0x01, //0x00007c14 .byte 1 + 0x01, //0x00007c15 .byte 1 + 0x01, //0x00007c16 .byte 1 + 0x01, //0x00007c17 .byte 1 + 0xe6, //0x00007c18 .byte 230 + 0xae, //0x00007c19 .byte 174 + 0xba, //0x00007c1a .byte 186 + 0xba, //0x00007c1b .byte 186 + 0x01, //0x00007c1c .byte 1 + 0x01, //0x00007c1d .byte 1 + 0x01, //0x00007c1e .byte 1 + 0x01, //0x00007c1f .byte 1 + //0x00007c20 LCPI35_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00007c20 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, //0x00007c30 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00007c40 LCPI35_5 + 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, 0xef, //0x00007c40 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, //0x00007c50 QUAD $0xefefefefefefefef; QUAD $0xefefefefefefefef // .space 16, '\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef\xef' + //0x00007c60 LCPI35_7 + 0xff, //0x00007c60 .byte 255 + 0xff, //0x00007c61 .byte 255 + 0xff, //0x00007c62 .byte 255 + 0xff, //0x00007c63 .byte 255 + 0xff, //0x00007c64 .byte 255 + 0xff, //0x00007c65 .byte 255 + 0xff, //0x00007c66 .byte 255 + 0xff, //0x00007c67 .byte 255 + 0xff, //0x00007c68 .byte 255 + 0xff, //0x00007c69 .byte 255 + 0xff, //0x00007c6a .byte 255 + 0xff, //0x00007c6b .byte 255 + 0xff, //0x00007c6c .byte 255 + 0xff, //0x00007c6d .byte 255 + 0xff, //0x00007c6e .byte 255 + 0xff, //0x00007c6f .byte 255 + 0xff, //0x00007c70 .byte 255 + 0xff, //0x00007c71 .byte 255 + 0xff, //0x00007c72 .byte 255 + 0xff, //0x00007c73 .byte 255 + 0xff, //0x00007c74 .byte 255 + 0xff, //0x00007c75 .byte 255 + 0xff, //0x00007c76 .byte 255 + 0xff, //0x00007c77 .byte 255 + 0xff, //0x00007c78 .byte 255 + 0xff, //0x00007c79 .byte 255 + 0xff, //0x00007c7a .byte 255 + 0xff, //0x00007c7b .byte 255 + 0xff, //0x00007c7c .byte 255 + 0xef, //0x00007c7d .byte 239 + 0xdf, //0x00007c7e .byte 223 + 0xbf, //0x00007c7f .byte 191 + //0x00007c80 LCPI35_8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007c90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00007ca0 .p2align 3, 0x00 + //0x00007ca0 LCPI35_6 + 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, //0x00007ca0 .quad -9187201950435737472 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007ca8 .p2align 4, 0x90 + //0x00007cb0 _validate_utf8_fast + 0x55, //0x00007cb0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007cb1 movq %rsp, %rbp + 0x53, //0x00007cb4 pushq %rbx + 0x48, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, //0x00007cb5 subq $160, %rsp + 0x4c, 0x8b, 0x57, 0x08, //0x00007cbc movq $8(%rdi), %r10 + 0x4d, 0x85, 0xd2, //0x00007cc0 testq %r10, %r10 + 0x0f, 0x84, 0xb4, 0x07, 0x00, 0x00, //0x00007cc3 je LBB35_28 + 0x4c, 0x8b, 0x0f, //0x00007cc9 movq (%rdi), %r9 + 0x4d, 0x01, 0xca, //0x00007ccc addq %r9, %r10 + 0x49, 0x8d, 0x72, 0x80, //0x00007ccf leaq $-128(%r10), %rsi + 0xc5, 0xf1, 0xef, 0xc9, //0x00007cd3 vpxor %xmm1, %xmm1, %xmm1 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007cd7 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf9, 0xef, 0xc0, //0x00007cdb vpxor %xmm0, %xmm0, %xmm0 + 0x4c, 0x89, 0xc8, //0x00007cdf movq %r9, %rax + 0x4c, 0x39, 0xce, //0x00007ce2 cmpq %r9, %rsi + 0x0f, 0x86, 0x6a, 0x03, 0x00, 0x00, //0x00007ce5 jbe LBB35_12 + 0xc5, 0xfd, 0x6f, 0x25, 0xad, 0xfe, 0xff, 0xff, //0x00007ceb vmovdqa $-339(%rip), %ymm4 /* LCPI35_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0xe5, 0xfe, 0xff, 0xff, //0x00007cf3 vmovdqa $-283(%rip), %ymm6 /* LCPI35_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0xfd, 0xfe, 0xff, 0xff, //0x00007cfb vmovdqa $-259(%rip), %ymm7 /* LCPI35_3+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0x15, 0xff, 0xff, 0xff, //0x00007d03 vmovdqa $-235(%rip), %ymm8 /* LCPI35_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x0d, 0x2d, 0xff, 0xff, 0xff, //0x00007d0b vmovdqa $-211(%rip), %ymm9 /* LCPI35_5+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x15, 0x45, 0xff, 0xff, 0xff, //0x00007d13 vmovdqa $-187(%rip), %ymm10 /* LCPI35_7+0(%rip) */ + 0x4c, 0x89, 0xc8, //0x00007d1b movq %r9, %rax + 0xc5, 0xf9, 0xef, 0xc0, //0x00007d1e vpxor %xmm0, %xmm0, %xmm0 + 0xc5, 0xe9, 0xef, 0xd2, //0x00007d22 vpxor %xmm2, %xmm2, %xmm2 + 0xc5, 0xf1, 0xef, 0xc9, //0x00007d26 vpxor %xmm1, %xmm1, %xmm1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007d2a .p2align 4, 0x90 + //0x00007d30 LBB35_3 + 0xc5, 0x7e, 0x6f, 0x38, //0x00007d30 vmovdqu (%rax), %ymm15 + 0xc5, 0x7e, 0x6f, 0x68, 0x20, //0x00007d34 vmovdqu $32(%rax), %ymm13 + 0xc5, 0x7e, 0x6f, 0x60, 0x40, //0x00007d39 vmovdqu $64(%rax), %ymm12 + 0xc5, 0x7e, 0x6f, 0x58, 0x60, //0x00007d3e vmovdqu $96(%rax), %ymm11 + 0xc4, 0xc1, 0x15, 0xeb, 0xdf, //0x00007d43 vpor %ymm15, %ymm13, %ymm3 + 0xc4, 0x41, 0x25, 0xeb, 0xf4, //0x00007d48 vpor %ymm12, %ymm11, %ymm14 + 0xc5, 0x8d, 0xeb, 0xeb, //0x00007d4d vpor %ymm3, %ymm14, %ymm5 + 0xc5, 0xfd, 0xd7, 0xcd, //0x00007d51 vpmovmskb %ymm5, %ecx + 0x85, 0xc9, //0x00007d55 testl %ecx, %ecx + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00007d57 jne LBB35_6 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007d5d vpor %ymm0, %ymm1, %ymm0 + //0x00007d61 LBB35_5 + 0x48, 0x83, 0xe8, 0x80, //0x00007d61 subq $-128, %rax + 0x48, 0x39, 0xf0, //0x00007d65 cmpq %rsi, %rax + 0x0f, 0x82, 0xc2, 0xff, 0xff, 0xff, //0x00007d68 jb LBB35_3 + 0xe9, 0xe2, 0x02, 0x00, 0x00, //0x00007d6e jmp LBB35_12 + //0x00007d73 LBB35_6 + 0xc5, 0xfd, 0xd7, 0xcb, //0x00007d73 vpmovmskb %ymm3, %ecx + 0x85, 0xc9, //0x00007d77 testl %ecx, %ecx + 0x0f, 0x85, 0xf0, 0x00, 0x00, 0x00, //0x00007d79 jne LBB35_9 + 0xc5, 0xf5, 0xeb, 0xc0, //0x00007d7f vpor %ymm0, %ymm1, %ymm0 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x00007d83 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x00007d89 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007d8f vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007d94 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0x7d, 0x6f, 0x35, 0x20, 0xfe, 0xff, 0xff, //0x00007d98 vmovdqa $-480(%rip), %ymm14 /* LCPI35_1+0(%rip) */ + 0xc4, 0xe2, 0x0d, 0x00, 0xdb, //0x00007da0 vpshufb %ymm3, %ymm14, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007da5 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007da9 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd4, 0x04, //0x00007dae vpsrlw $4, %ymm12, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007db4 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007db8 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007dbd vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007dc1 vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd9, 0x0e, //0x00007dc5 vpalignr $14, %ymm1, %ymm12, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00007dcb vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007dd1 vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007dd6 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007ddb vpor %ymm3, %ymm1, %ymm1 + 0xc4, 0x41, 0x11, 0xef, 0xed, //0x00007ddf vpxor %xmm13, %xmm13, %xmm13 + 0xc5, 0x95, 0x74, 0xc9, //0x00007de4 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc4, 0xe2, 0x7d, 0x59, 0x1d, 0xaf, 0xfe, 0xff, 0xff, //0x00007de8 vpbroadcastq $-337(%rip), %ymm3 /* LCPI35_6+0(%rip) */ + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007df1 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007df5 vpxor %ymm2, %ymm1, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007df9 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc3, 0x1d, 0x46, 0xcb, 0x21, //0x00007dfd vperm2i128 $33, %ymm11, %ymm12, %ymm1 + 0xc4, 0xe3, 0x25, 0x0f, 0xd1, 0x0f, //0x00007e03 vpalignr $15, %ymm1, %ymm11, %ymm2 + 0xc5, 0xd5, 0x71, 0xd2, 0x04, //0x00007e09 vpsrlw $4, %ymm2, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007e0e vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x0d, 0x00, 0xed, //0x00007e12 vpshufb %ymm5, %ymm14, %ymm5 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007e17 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e1b vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x1d, 0x71, 0xd3, 0x04, //0x00007e20 vpsrlw $4, %ymm11, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x00007e26 vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x45, 0x00, 0xe4, //0x00007e2a vpshufb %ymm12, %ymm7, %ymm12 + 0xc5, 0x9d, 0xdb, 0xd2, //0x00007e2f vpand %ymm2, %ymm12, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007e33 vpand %ymm2, %ymm5, %ymm2 + 0xc4, 0xe3, 0x25, 0x0f, 0xe9, 0x0e, //0x00007e37 vpalignr $14, %ymm1, %ymm11, %ymm5 + 0xc4, 0xe3, 0x25, 0x0f, 0xc9, 0x0d, //0x00007e3d vpalignr $13, %ymm1, %ymm11, %ymm1 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007e43 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007e48 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcd, //0x00007e4d vpor %ymm5, %ymm1, %ymm1 + 0xc5, 0x95, 0x74, 0xc9, //0x00007e51 vpcmpeqb %ymm1, %ymm13, %ymm1 + 0xc5, 0xf5, 0xdf, 0xcb, //0x00007e55 vpandn %ymm3, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00007e59 vpxor %ymm2, %ymm1, %ymm1 + //0x00007e5d LBB35_8 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00007e5d vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x00007e61 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x00007e66 vmovdqa %ymm11, %ymm2 + 0xe9, 0xf2, 0xfe, 0xff, 0xff, //0x00007e6a jmp LBB35_5 + //0x00007e6f LBB35_9 + 0xc4, 0xc3, 0x6d, 0x46, 0xcf, 0x21, //0x00007e6f vperm2i128 $33, %ymm15, %ymm2, %ymm1 + 0xc4, 0xe3, 0x05, 0x0f, 0xd1, 0x0f, //0x00007e75 vpalignr $15, %ymm1, %ymm15, %ymm2 + 0xc5, 0xe5, 0x71, 0xd2, 0x04, //0x00007e7b vpsrlw $4, %ymm2, %ymm3 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007e80 vpand %ymm4, %ymm3, %ymm3 + 0xc5, 0xfd, 0x6f, 0x2d, 0x34, 0xfd, 0xff, 0xff, //0x00007e84 vmovdqa $-716(%rip), %ymm5 /* LCPI35_1+0(%rip) */ + 0xc4, 0xe2, 0x55, 0x00, 0xdb, //0x00007e8c vpshufb %ymm3, %ymm5, %ymm3 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007e91 vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x4d, 0x00, 0xd2, //0x00007e95 vpshufb %ymm2, %ymm6, %ymm2 + 0xc4, 0xc1, 0x55, 0x71, 0xd7, 0x04, //0x00007e9a vpsrlw $4, %ymm15, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007ea0 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x45, 0x00, 0xed, //0x00007ea4 vpshufb %ymm5, %ymm7, %ymm5 + 0xc5, 0xed, 0xdb, 0xd5, //0x00007ea9 vpand %ymm5, %ymm2, %ymm2 + 0xc5, 0xe5, 0xdb, 0xd2, //0x00007ead vpand %ymm2, %ymm3, %ymm2 + 0xc4, 0xe3, 0x05, 0x0f, 0xd9, 0x0e, //0x00007eb1 vpalignr $14, %ymm1, %ymm15, %ymm3 + 0xc4, 0xe3, 0x05, 0x0f, 0xc9, 0x0d, //0x00007eb7 vpalignr $13, %ymm1, %ymm15, %ymm1 + 0xc4, 0xc1, 0x65, 0xd8, 0xd8, //0x00007ebd vpsubusb %ymm8, %ymm3, %ymm3 + 0xc4, 0xc1, 0x75, 0xd8, 0xc9, //0x00007ec2 vpsubusb %ymm9, %ymm1, %ymm1 + 0xc5, 0xf5, 0xeb, 0xcb, //0x00007ec7 vpor %ymm3, %ymm1, %ymm1 + 0xc5, 0xe1, 0xef, 0xdb, //0x00007ecb vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xf5, 0x74, 0xdb, //0x00007ecf vpcmpeqb %ymm3, %ymm1, %ymm3 + 0xc4, 0xe2, 0x7d, 0x59, 0x0d, 0xc4, 0xfd, 0xff, 0xff, //0x00007ed3 vpbroadcastq $-572(%rip), %ymm1 /* LCPI35_6+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007edc vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007ee0 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfe, 0x7f, 0x54, 0x24, 0x60, //0x00007ee4 vmovdqu %ymm2, $96(%rsp) + 0xc4, 0xc3, 0x05, 0x46, 0xdd, 0x21, //0x00007eea vperm2i128 $33, %ymm13, %ymm15, %ymm3 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0f, //0x00007ef0 vpalignr $15, %ymm3, %ymm13, %ymm5 + 0xc5, 0x85, 0x71, 0xd5, 0x04, //0x00007ef6 vpsrlw $4, %ymm5, %ymm15 + 0xc5, 0x05, 0xdb, 0xfc, //0x00007efb vpand %ymm4, %ymm15, %ymm15 + 0xc5, 0xfd, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x00007eff vmovdqa $-839(%rip), %ymm2 /* LCPI35_1+0(%rip) */ + 0xc4, 0x42, 0x6d, 0x00, 0xff, //0x00007f07 vpshufb %ymm15, %ymm2, %ymm15 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007f0c vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007f10 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x6d, 0x71, 0xd5, 0x04, //0x00007f15 vpsrlw $4, %ymm13, %ymm2 + 0xc5, 0xed, 0xdb, 0xd4, //0x00007f1b vpand %ymm4, %ymm2, %ymm2 + 0xc4, 0xe2, 0x45, 0x00, 0xd2, //0x00007f1f vpshufb %ymm2, %ymm7, %ymm2 + 0xc5, 0xd5, 0xdb, 0xd2, //0x00007f24 vpand %ymm2, %ymm5, %ymm2 + 0xc5, 0x85, 0xdb, 0xd2, //0x00007f28 vpand %ymm2, %ymm15, %ymm2 + 0xc4, 0xe3, 0x15, 0x0f, 0xeb, 0x0e, //0x00007f2c vpalignr $14, %ymm3, %ymm13, %ymm5 + 0xc4, 0xe3, 0x15, 0x0f, 0xdb, 0x0d, //0x00007f32 vpalignr $13, %ymm3, %ymm13, %ymm3 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007f38 vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00007f3d vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0xe5, 0xeb, 0xdd, //0x00007f42 vpor %ymm5, %ymm3, %ymm3 + 0xc5, 0xe5, 0x74, 0x1d, 0x32, 0xfd, 0xff, 0xff, //0x00007f46 vpcmpeqb $-718(%rip), %ymm3, %ymm3 /* LCPI35_8+0(%rip) */ + 0xc5, 0xe5, 0xdf, 0xd9, //0x00007f4e vpandn %ymm1, %ymm3, %ymm3 + 0xc5, 0xe5, 0xef, 0xd2, //0x00007f52 vpxor %ymm2, %ymm3, %ymm2 + 0xc5, 0xfd, 0xeb, 0x44, 0x24, 0x60, //0x00007f56 vpor $96(%rsp), %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x00007f5c vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x7d, 0xd7, 0xce, //0x00007f60 vpmovmskb %ymm14, %ecx + 0x85, 0xc9, //0x00007f65 testl %ecx, %ecx + 0x0f, 0x84, 0xd6, 0x00, 0x00, 0x00, //0x00007f67 je LBB35_11 + 0xc4, 0xc3, 0x15, 0x46, 0xd4, 0x21, //0x00007f6d vperm2i128 $33, %ymm12, %ymm13, %ymm2 + 0xc4, 0xe3, 0x1d, 0x0f, 0xda, 0x0f, //0x00007f73 vpalignr $15, %ymm2, %ymm12, %ymm3 + 0xc5, 0xd5, 0x71, 0xd3, 0x04, //0x00007f79 vpsrlw $4, %ymm3, %ymm5 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007f7e vpand %ymm4, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x3d, 0x36, 0xfc, 0xff, 0xff, //0x00007f82 vmovdqa $-970(%rip), %ymm15 /* LCPI35_1+0(%rip) */ + 0xc4, 0xe2, 0x05, 0x00, 0xed, //0x00007f8a vpshufb %ymm5, %ymm15, %ymm5 + 0xc5, 0xe5, 0xdb, 0xdc, //0x00007f8f vpand %ymm4, %ymm3, %ymm3 + 0xc4, 0xe2, 0x4d, 0x00, 0xdb, //0x00007f93 vpshufb %ymm3, %ymm6, %ymm3 + 0xc4, 0xc1, 0x15, 0x71, 0xd4, 0x04, //0x00007f98 vpsrlw $4, %ymm12, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00007f9e vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00007fa2 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xdb, //0x00007fa7 vpand %ymm3, %ymm13, %ymm3 + 0xc5, 0xd5, 0xdb, 0xdb, //0x00007fab vpand %ymm3, %ymm5, %ymm3 + 0xc4, 0xe3, 0x1d, 0x0f, 0xea, 0x0e, //0x00007faf vpalignr $14, %ymm2, %ymm12, %ymm5 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd2, 0x0d, //0x00007fb5 vpalignr $13, %ymm2, %ymm12, %ymm2 + 0xc4, 0xc1, 0x55, 0xd8, 0xe8, //0x00007fbb vpsubusb %ymm8, %ymm5, %ymm5 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd1, //0x00007fc0 vpsubusb %ymm9, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd5, //0x00007fc5 vpor %ymm5, %ymm2, %ymm2 + 0xc4, 0x41, 0x09, 0xef, 0xf6, //0x00007fc9 vpxor %xmm14, %xmm14, %xmm14 + 0xc5, 0x8d, 0x74, 0xd2, //0x00007fce vpcmpeqb %ymm2, %ymm14, %ymm2 + 0xc5, 0xed, 0xdf, 0xd1, //0x00007fd2 vpandn %ymm1, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd3, //0x00007fd6 vpxor %ymm3, %ymm2, %ymm2 + 0xc4, 0xc3, 0x1d, 0x46, 0xdb, 0x21, //0x00007fda vperm2i128 $33, %ymm11, %ymm12, %ymm3 + 0xc4, 0xe3, 0x25, 0x0f, 0xeb, 0x0f, //0x00007fe0 vpalignr $15, %ymm3, %ymm11, %ymm5 + 0xc5, 0x9d, 0x71, 0xd5, 0x04, //0x00007fe6 vpsrlw $4, %ymm5, %ymm12 + 0xc5, 0x1d, 0xdb, 0xe4, //0x00007feb vpand %ymm4, %ymm12, %ymm12 + 0xc4, 0x42, 0x05, 0x00, 0xe4, //0x00007fef vpshufb %ymm12, %ymm15, %ymm12 + 0xc5, 0xd5, 0xdb, 0xec, //0x00007ff4 vpand %ymm4, %ymm5, %ymm5 + 0xc4, 0xe2, 0x4d, 0x00, 0xed, //0x00007ff8 vpshufb %ymm5, %ymm6, %ymm5 + 0xc4, 0xc1, 0x15, 0x71, 0xd3, 0x04, //0x00007ffd vpsrlw $4, %ymm11, %ymm13 + 0xc5, 0x15, 0xdb, 0xec, //0x00008003 vpand %ymm4, %ymm13, %ymm13 + 0xc4, 0x42, 0x45, 0x00, 0xed, //0x00008007 vpshufb %ymm13, %ymm7, %ymm13 + 0xc5, 0x95, 0xdb, 0xed, //0x0000800c vpand %ymm5, %ymm13, %ymm5 + 0xc5, 0x9d, 0xdb, 0xed, //0x00008010 vpand %ymm5, %ymm12, %ymm5 + 0xc4, 0x63, 0x25, 0x0f, 0xe3, 0x0e, //0x00008014 vpalignr $14, %ymm3, %ymm11, %ymm12 + 0xc4, 0xe3, 0x25, 0x0f, 0xdb, 0x0d, //0x0000801a vpalignr $13, %ymm3, %ymm11, %ymm3 + 0xc4, 0x41, 0x1d, 0xd8, 0xe0, //0x00008020 vpsubusb %ymm8, %ymm12, %ymm12 + 0xc4, 0xc1, 0x65, 0xd8, 0xd9, //0x00008025 vpsubusb %ymm9, %ymm3, %ymm3 + 0xc5, 0x9d, 0xeb, 0xdb, //0x0000802a vpor %ymm3, %ymm12, %ymm3 + 0xc5, 0x8d, 0x74, 0xdb, //0x0000802e vpcmpeqb %ymm3, %ymm14, %ymm3 + 0xc5, 0xe5, 0xdf, 0xc9, //0x00008032 vpandn %ymm1, %ymm3, %ymm1 + 0xc5, 0xf5, 0xef, 0xcd, //0x00008036 vpxor %ymm5, %ymm1, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x0000803a vpor %ymm0, %ymm2, %ymm0 + 0xe9, 0x1a, 0xfe, 0xff, 0xff, //0x0000803e jmp LBB35_8 + //0x00008043 LBB35_11 + 0xc4, 0xc1, 0x15, 0xd8, 0xca, //0x00008043 vpsubusb %ymm10, %ymm13, %ymm1 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008048 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0x7d, 0x7f, 0xea, //0x0000804c vmovdqa %ymm13, %ymm2 + 0xe9, 0x0c, 0xfd, 0xff, 0xff, //0x00008050 jmp LBB35_5 + //0x00008055 LBB35_12 + 0x49, 0x8d, 0x72, 0xc0, //0x00008055 leaq $-64(%r10), %rsi + 0x48, 0x39, 0xf0, //0x00008059 cmpq %rsi, %rax + 0x0f, 0x83, 0x59, 0x01, 0x00, 0x00, //0x0000805c jae LBB35_17 + 0xc5, 0xfd, 0x6f, 0x1d, 0x36, 0xfb, 0xff, 0xff, //0x00008062 vmovdqa $-1226(%rip), %ymm3 /* LCPI35_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x25, 0x4e, 0xfb, 0xff, 0xff, //0x0000806a vmovdqa $-1202(%rip), %ymm4 /* LCPI35_1+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x2d, 0x66, 0xfb, 0xff, 0xff, //0x00008072 vmovdqa $-1178(%rip), %ymm5 /* LCPI35_2+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x35, 0x7e, 0xfb, 0xff, 0xff, //0x0000807a vmovdqa $-1154(%rip), %ymm6 /* LCPI35_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x3d, 0x96, 0xfb, 0xff, 0xff, //0x00008082 vmovdqa $-1130(%rip), %ymm7 /* LCPI35_4+0(%rip) */ + 0xc5, 0x7d, 0x6f, 0x05, 0xae, 0xfb, 0xff, 0xff, //0x0000808a vmovdqa $-1106(%rip), %ymm8 /* LCPI35_5+0(%rip) */ + 0xc4, 0x41, 0x31, 0xef, 0xc9, //0x00008092 vpxor %xmm9, %xmm9, %xmm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xc1, 0xfb, 0xff, 0xff, //0x00008097 vmovdqa $-1087(%rip), %ymm10 /* LCPI35_7+0(%rip) */ + 0x90, //0x0000809f .p2align 4, 0x90 + //0x000080a0 LBB35_14 + 0xc5, 0x7e, 0x6f, 0x20, //0x000080a0 vmovdqu (%rax), %ymm12 + 0xc5, 0x7e, 0x6f, 0x58, 0x20, //0x000080a4 vmovdqu $32(%rax), %ymm11 + 0xc4, 0x41, 0x25, 0xeb, 0xec, //0x000080a9 vpor %ymm12, %ymm11, %ymm13 + 0xc4, 0xc1, 0x7d, 0xd7, 0xcd, //0x000080ae vpmovmskb %ymm13, %ecx + 0x85, 0xc9, //0x000080b3 testl %ecx, %ecx + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x000080b5 jne LBB35_16 + 0xc5, 0xf5, 0xeb, 0xc0, //0x000080bb vpor %ymm0, %ymm1, %ymm0 + 0x48, 0x83, 0xc0, 0x40, //0x000080bf addq $64, %rax + 0x48, 0x39, 0xf0, //0x000080c3 cmpq %rsi, %rax + 0x0f, 0x82, 0xd4, 0xff, 0xff, 0xff, //0x000080c6 jb LBB35_14 + 0xe9, 0xea, 0x00, 0x00, 0x00, //0x000080cc jmp LBB35_17 + //0x000080d1 LBB35_16 + 0xc4, 0xc3, 0x6d, 0x46, 0xcc, 0x21, //0x000080d1 vperm2i128 $33, %ymm12, %ymm2, %ymm1 + 0xc4, 0xe3, 0x1d, 0x0f, 0xd1, 0x0f, //0x000080d7 vpalignr $15, %ymm1, %ymm12, %ymm2 + 0xc5, 0x95, 0x71, 0xd2, 0x04, //0x000080dd vpsrlw $4, %ymm2, %ymm13 + 0xc5, 0x15, 0xdb, 0xeb, //0x000080e2 vpand %ymm3, %ymm13, %ymm13 + 0xc4, 0x42, 0x5d, 0x00, 0xed, //0x000080e6 vpshufb %ymm13, %ymm4, %ymm13 + 0xc5, 0xed, 0xdb, 0xd3, //0x000080eb vpand %ymm3, %ymm2, %ymm2 + 0xc4, 0xe2, 0x55, 0x00, 0xd2, //0x000080ef vpshufb %ymm2, %ymm5, %ymm2 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x000080f4 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x000080fa vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x4d, 0x00, 0xf6, //0x000080fe vpshufb %ymm14, %ymm6, %ymm14 + 0xc5, 0x8d, 0xdb, 0xd2, //0x00008103 vpand %ymm2, %ymm14, %ymm2 + 0xc5, 0x95, 0xdb, 0xd2, //0x00008107 vpand %ymm2, %ymm13, %ymm2 + 0xc4, 0x63, 0x1d, 0x0f, 0xe9, 0x0e, //0x0000810b vpalignr $14, %ymm1, %ymm12, %ymm13 + 0xc4, 0xe3, 0x1d, 0x0f, 0xc9, 0x0d, //0x00008111 vpalignr $13, %ymm1, %ymm12, %ymm1 + 0xc5, 0x15, 0xd8, 0xef, //0x00008117 vpsubusb %ymm7, %ymm13, %ymm13 + 0xc4, 0xc1, 0x75, 0xd8, 0xc8, //0x0000811b vpsubusb %ymm8, %ymm1, %ymm1 + 0xc5, 0x95, 0xeb, 0xc9, //0x00008120 vpor %ymm1, %ymm13, %ymm1 + 0xc5, 0xb5, 0x74, 0xc9, //0x00008124 vpcmpeqb %ymm1, %ymm9, %ymm1 + 0xc4, 0x62, 0x7d, 0x59, 0x2d, 0x6f, 0xfb, 0xff, 0xff, //0x00008128 vpbroadcastq $-1169(%rip), %ymm13 /* LCPI35_6+0(%rip) */ + 0xc4, 0xc1, 0x75, 0xdf, 0xcd, //0x00008131 vpandn %ymm13, %ymm1, %ymm1 + 0xc5, 0xf5, 0xef, 0xca, //0x00008136 vpxor %ymm2, %ymm1, %ymm1 + 0xc4, 0xc3, 0x1d, 0x46, 0xd3, 0x21, //0x0000813a vperm2i128 $33, %ymm11, %ymm12, %ymm2 + 0xc4, 0x63, 0x25, 0x0f, 0xe2, 0x0f, //0x00008140 vpalignr $15, %ymm2, %ymm11, %ymm12 + 0xc4, 0xc1, 0x0d, 0x71, 0xd4, 0x04, //0x00008146 vpsrlw $4, %ymm12, %ymm14 + 0xc5, 0x0d, 0xdb, 0xf3, //0x0000814c vpand %ymm3, %ymm14, %ymm14 + 0xc4, 0x42, 0x5d, 0x00, 0xf6, //0x00008150 vpshufb %ymm14, %ymm4, %ymm14 + 0xc5, 0x1d, 0xdb, 0xe3, //0x00008155 vpand %ymm3, %ymm12, %ymm12 + 0xc4, 0x42, 0x55, 0x00, 0xe4, //0x00008159 vpshufb %ymm12, %ymm5, %ymm12 + 0xc4, 0xc1, 0x05, 0x71, 0xd3, 0x04, //0x0000815e vpsrlw $4, %ymm11, %ymm15 + 0xc5, 0x05, 0xdb, 0xfb, //0x00008164 vpand %ymm3, %ymm15, %ymm15 + 0xc4, 0x42, 0x4d, 0x00, 0xff, //0x00008168 vpshufb %ymm15, %ymm6, %ymm15 + 0xc4, 0x41, 0x1d, 0xdb, 0xe7, //0x0000816d vpand %ymm15, %ymm12, %ymm12 + 0xc4, 0x41, 0x0d, 0xdb, 0xe4, //0x00008172 vpand %ymm12, %ymm14, %ymm12 + 0xc4, 0x63, 0x25, 0x0f, 0xf2, 0x0e, //0x00008177 vpalignr $14, %ymm2, %ymm11, %ymm14 + 0xc4, 0xe3, 0x25, 0x0f, 0xd2, 0x0d, //0x0000817d vpalignr $13, %ymm2, %ymm11, %ymm2 + 0xc5, 0x0d, 0xd8, 0xf7, //0x00008183 vpsubusb %ymm7, %ymm14, %ymm14 + 0xc4, 0xc1, 0x6d, 0xd8, 0xd0, //0x00008187 vpsubusb %ymm8, %ymm2, %ymm2 + 0xc5, 0x8d, 0xeb, 0xd2, //0x0000818c vpor %ymm2, %ymm14, %ymm2 + 0xc5, 0xb5, 0x74, 0xd2, //0x00008190 vpcmpeqb %ymm2, %ymm9, %ymm2 + 0xc4, 0xc1, 0x6d, 0xdf, 0xd5, //0x00008194 vpandn %ymm13, %ymm2, %ymm2 + 0xc5, 0x9d, 0xef, 0xd2, //0x00008199 vpxor %ymm2, %ymm12, %ymm2 + 0xc5, 0xf5, 0xeb, 0xc0, //0x0000819d vpor %ymm0, %ymm1, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc2, //0x000081a1 vpor %ymm2, %ymm0, %ymm0 + 0xc4, 0xc1, 0x25, 0xd8, 0xca, //0x000081a5 vpsubusb %ymm10, %ymm11, %ymm1 + 0xc5, 0x7d, 0x7f, 0xda, //0x000081aa vmovdqa %ymm11, %ymm2 + 0x48, 0x83, 0xc0, 0x40, //0x000081ae addq $64, %rax + 0x48, 0x39, 0xf0, //0x000081b2 cmpq %rsi, %rax + 0x0f, 0x82, 0xe5, 0xfe, 0xff, 0xff, //0x000081b5 jb LBB35_14 + //0x000081bb LBB35_17 + 0xc5, 0xe1, 0xef, 0xdb, //0x000081bb vpxor %xmm3, %xmm3, %xmm3 + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x40, //0x000081bf vmovdqu %ymm3, $64(%rsp) + 0xc5, 0xfe, 0x7f, 0x5c, 0x24, 0x20, //0x000081c5 vmovdqu %ymm3, $32(%rsp) + 0xc5, 0xd9, 0xef, 0xe4, //0x000081cb vpxor %xmm4, %xmm4, %xmm4 + 0x4c, 0x39, 0xd0, //0x000081cf cmpq %r10, %rax + 0x0f, 0x83, 0x78, 0x00, 0x00, 0x00, //0x000081d2 jae LBB35_25 + 0x4c, 0x89, 0xd7, //0x000081d8 movq %r10, %rdi + 0x48, 0x29, 0xc7, //0x000081db subq %rax, %rdi + 0x48, 0x83, 0xff, 0x10, //0x000081de cmpq $16, %rdi + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x000081e2 jb LBB35_21 + 0x48, 0x8d, 0x0c, 0x38, //0x000081e8 leaq (%rax,%rdi), %rcx + 0x48, 0x8d, 0x54, 0x24, 0x20, //0x000081ec leaq $32(%rsp), %rdx + 0x48, 0x39, 0xca, //0x000081f1 cmpq %rcx, %rdx + 0x0f, 0x83, 0x8f, 0x02, 0x00, 0x00, //0x000081f4 jae LBB35_29 + 0x48, 0x8d, 0x0c, 0x3c, //0x000081fa leaq (%rsp,%rdi), %rcx + 0x48, 0x83, 0xc1, 0x20, //0x000081fe addq $32, %rcx + 0x48, 0x39, 0xc8, //0x00008202 cmpq %rcx, %rax + 0x0f, 0x83, 0x7e, 0x02, 0x00, 0x00, //0x00008205 jae LBB35_29 + //0x0000820b LBB35_21 + 0x31, 0xf6, //0x0000820b xorl %esi, %esi + 0x48, 0x89, 0xc1, //0x0000820d movq %rax, %rcx + //0x00008210 LBB35_22 + 0x48, 0x8d, 0x14, 0x34, //0x00008210 leaq (%rsp,%rsi), %rdx + 0x48, 0x83, 0xc2, 0x20, //0x00008214 addq $32, %rdx + 0x4c, 0x89, 0xd7, //0x00008218 movq %r10, %rdi + 0x48, 0x29, 0xf7, //0x0000821b subq %rsi, %rdi + 0x48, 0x29, 0xc7, //0x0000821e subq %rax, %rdi + 0x31, 0xc0, //0x00008221 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008223 .p2align 4, 0x90 + //0x00008230 LBB35_23 + 0x0f, 0xb6, 0x1c, 0x01, //0x00008230 movzbl (%rcx,%rax), %ebx + 0x88, 0x1c, 0x02, //0x00008234 movb %bl, (%rdx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00008237 addq $1, %rax + 0x48, 0x39, 0xc7, //0x0000823b cmpq %rax, %rdi + 0x0f, 0x85, 0xec, 0xff, 0xff, 0xff, //0x0000823e jne LBB35_23 + //0x00008244 LBB35_24 + 0xc5, 0xfe, 0x6f, 0x64, 0x24, 0x20, //0x00008244 vmovdqu $32(%rsp), %ymm4 + 0xc5, 0xfe, 0x6f, 0x5c, 0x24, 0x40, //0x0000824a vmovdqu $64(%rsp), %ymm3 + //0x00008250 LBB35_25 + 0xc5, 0xdd, 0xeb, 0xeb, //0x00008250 vpor %ymm3, %ymm4, %ymm5 + 0xc5, 0xfd, 0xd7, 0xc5, //0x00008254 vpmovmskb %ymm5, %eax + 0x85, 0xc0, //0x00008258 testl %eax, %eax + 0x0f, 0x85, 0x8f, 0x03, 0x00, 0x00, //0x0000825a jne LBB35_43 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008260 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x00008264 vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008268 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0x0a, 0x02, 0x00, 0x00, //0x0000826d je LBB35_28 + //0x00008273 LBB35_44 + 0x49, 0x8d, 0x72, 0xfd, //0x00008273 leaq $-3(%r10), %rsi + 0x4c, 0x89, 0xc8, //0x00008277 movq %r9, %rax + 0x4c, 0x39, 0xce, //0x0000827a cmpq %r9, %rsi + 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x0000827d jbe LBB35_58 + 0x4c, 0x89, 0xc8, //0x00008283 movq %r9, %rax + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00008286 jmp LBB35_47 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000828b .p2align 4, 0x90 + //0x00008290 LBB35_46 + 0x48, 0x01, 0xd0, //0x00008290 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00008293 cmpq %rsi, %rax + 0x0f, 0x83, 0xc4, 0x00, 0x00, 0x00, //0x00008296 jae LBB35_58 + //0x0000829c LBB35_47 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000829c movl $1, %edx + 0x80, 0x38, 0x00, //0x000082a1 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000082a4 jns LBB35_46 + 0x8b, 0x08, //0x000082aa movl (%rax), %ecx + 0x89, 0xca, //0x000082ac movl %ecx, %edx + 0x81, 0xe2, 0xf0, 0xc0, 0xc0, 0x00, //0x000082ae andl $12632304, %edx + 0x81, 0xfa, 0xe0, 0x80, 0x80, 0x00, //0x000082b4 cmpl $8421600, %edx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000082ba jne LBB35_51 + 0x89, 0xcf, //0x000082c0 movl %ecx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000082c2 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000082c8 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000082ce je LBB35_51 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000082d4 movl $3, %edx + 0x85, 0xff, //0x000082d9 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000082db jne LBB35_46 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000082e1 .p2align 4, 0x90 + //0x000082f0 LBB35_51 + 0x89, 0xca, //0x000082f0 movl %ecx, %edx + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x000082f2 andl $49376, %edx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x000082f8 cmpl $32960, %edx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000082fe jne LBB35_53 + 0x89, 0xcf, //0x00008304 movl %ecx, %edi + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00008306 movl $2, %edx + 0x83, 0xe7, 0x1e, //0x0000830b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000830e jne LBB35_46 + //0x00008314 LBB35_53 + 0x89, 0xca, //0x00008314 movl %ecx, %edx + 0x81, 0xe2, 0xf8, 0xc0, 0xc0, 0xc0, //0x00008316 andl $-1061109512, %edx + 0x81, 0xfa, 0xf0, 0x80, 0x80, 0x80, //0x0000831c cmpl $-2139062032, %edx + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00008322 jne LBB35_57 + 0x89, 0xca, //0x00008328 movl %ecx, %edx + 0x81, 0xe2, 0x07, 0x30, 0x00, 0x00, //0x0000832a andl $12295, %edx + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00008330 je LBB35_57 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00008336 movl $4, %edx + 0xf6, 0xc1, 0x04, //0x0000833b testb $4, %cl + 0x0f, 0x84, 0x4c, 0xff, 0xff, 0xff, //0x0000833e je LBB35_46 + 0x81, 0xe1, 0x03, 0x30, 0x00, 0x00, //0x00008344 andl $12291, %ecx + 0x0f, 0x84, 0x40, 0xff, 0xff, 0xff, //0x0000834a je LBB35_46 + //0x00008350 LBB35_57 + 0x48, 0xf7, 0xd0, //0x00008350 notq %rax + 0x4c, 0x01, 0xc8, //0x00008353 addq %r9, %rax + 0x48, 0x8d, 0x65, 0xf8, //0x00008356 leaq $-8(%rbp), %rsp + 0x5b, //0x0000835a popq %rbx + 0x5d, //0x0000835b popq %rbp + 0xc5, 0xf8, 0x77, //0x0000835c vzeroupper + 0xc3, //0x0000835f retq + //0x00008360 LBB35_58 + 0x4c, 0x39, 0xd0, //0x00008360 cmpq %r10, %rax + 0x0f, 0x83, 0x14, 0x01, 0x00, 0x00, //0x00008363 jae LBB35_28 + 0x4c, 0x8d, 0x44, 0x24, 0x20, //0x00008369 leaq $32(%rsp), %r8 + 0x4c, 0x8d, 0x5c, 0x24, 0x1e, //0x0000836e leaq $30(%rsp), %r11 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00008373 jmp LBB35_61 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008378 .p2align 4, 0x90 + //0x00008380 LBB35_60 + 0x48, 0x83, 0xc0, 0x01, //0x00008380 addq $1, %rax + 0x4c, 0x39, 0xd0, //0x00008384 cmpq %r10, %rax + 0x0f, 0x83, 0xf0, 0x00, 0x00, 0x00, //0x00008387 jae LBB35_28 + //0x0000838d LBB35_61 + 0x80, 0x38, 0x00, //0x0000838d cmpb $0, (%rax) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00008390 jns LBB35_60 + 0xc6, 0x44, 0x24, 0x20, 0x00, //0x00008396 movb $0, $32(%rsp) + 0xc6, 0x44, 0x24, 0x1e, 0x00, //0x0000839b movb $0, $30(%rsp) + 0x4c, 0x89, 0xd2, //0x000083a0 movq %r10, %rdx + 0x48, 0x29, 0xc2, //0x000083a3 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000083a6 cmpq $2, %rdx + 0x0f, 0x82, 0x34, 0x00, 0x00, 0x00, //0x000083aa jb LBB35_65 + 0x0f, 0xb6, 0x30, //0x000083b0 movzbl (%rax), %esi + 0x0f, 0xb6, 0x48, 0x01, //0x000083b3 movzbl $1(%rax), %ecx + 0x40, 0x88, 0x74, 0x24, 0x20, //0x000083b7 movb %sil, $32(%rsp) + 0x48, 0x8d, 0x78, 0x02, //0x000083bc leaq $2(%rax), %rdi + 0x48, 0x83, 0xc2, 0xfe, //0x000083c0 addq $-2, %rdx + 0x4c, 0x89, 0xdb, //0x000083c4 movq %r11, %rbx + 0x48, 0x85, 0xd2, //0x000083c7 testq %rdx, %rdx + 0x0f, 0x84, 0x27, 0x00, 0x00, 0x00, //0x000083ca je LBB35_66 + //0x000083d0 LBB35_64 + 0x0f, 0xb6, 0x17, //0x000083d0 movzbl (%rdi), %edx + 0x88, 0x13, //0x000083d3 movb %dl, (%rbx) + 0x0f, 0xb6, 0x74, 0x24, 0x20, //0x000083d5 movzbl $32(%rsp), %esi + 0x0f, 0xb6, 0x54, 0x24, 0x1e, //0x000083da movzbl $30(%rsp), %edx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000083df jmp LBB35_67 + //0x000083e4 LBB35_65 + 0x31, 0xf6, //0x000083e4 xorl %esi, %esi + 0x31, 0xc9, //0x000083e6 xorl %ecx, %ecx + 0x4c, 0x89, 0xc3, //0x000083e8 movq %r8, %rbx + 0x48, 0x89, 0xc7, //0x000083eb movq %rax, %rdi + 0x48, 0x85, 0xd2, //0x000083ee testq %rdx, %rdx + 0x0f, 0x85, 0xd9, 0xff, 0xff, 0xff, //0x000083f1 jne LBB35_64 + //0x000083f7 LBB35_66 + 0x31, 0xd2, //0x000083f7 xorl %edx, %edx + //0x000083f9 LBB35_67 + 0x0f, 0xb6, 0xd2, //0x000083f9 movzbl %dl, %edx + 0xc1, 0xe2, 0x10, //0x000083fc shll $16, %edx + 0x0f, 0xb6, 0xf9, //0x000083ff movzbl %cl, %edi + 0xc1, 0xe7, 0x08, //0x00008402 shll $8, %edi + 0x09, 0xd7, //0x00008405 orl %edx, %edi + 0x40, 0x0f, 0xb6, 0xce, //0x00008407 movzbl %sil, %ecx + 0x09, 0xf9, //0x0000840b orl %edi, %ecx + 0x89, 0xca, //0x0000840d movl %ecx, %edx + 0x81, 0xe2, 0xf0, 0xc0, 0xc0, 0x00, //0x0000840f andl $12632304, %edx + 0x81, 0xfa, 0xe0, 0x80, 0x80, 0x00, //0x00008415 cmpl $8421600, %edx + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000841b jne LBB35_70 + 0x89, 0xcf, //0x00008421 movl %ecx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x00008423 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00008429 cmpl $8205, %edi + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000842f je LBB35_70 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x00008435 movl $3, %edx + 0x85, 0xff, //0x0000843a testl %edi, %edi + 0x0f, 0x85, 0x2f, 0x00, 0x00, 0x00, //0x0000843c jne LBB35_72 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008442 .p2align 4, 0x90 + //0x00008450 LBB35_70 + 0x40, 0xf6, 0xc6, 0x1e, //0x00008450 testb $30, %sil + 0x0f, 0x84, 0xf6, 0xfe, 0xff, 0xff, //0x00008454 je LBB35_57 + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x0000845a andl $49376, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00008460 movl $2, %edx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x00008465 cmpl $32960, %ecx + 0x0f, 0x85, 0xdf, 0xfe, 0xff, 0xff, //0x0000846b jne LBB35_57 + //0x00008471 LBB35_72 + 0x48, 0x01, 0xd0, //0x00008471 addq %rdx, %rax + 0x4c, 0x39, 0xd0, //0x00008474 cmpq %r10, %rax + 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x00008477 jb LBB35_61 + //0x0000847d LBB35_28 + 0x31, 0xc0, //0x0000847d xorl %eax, %eax + 0x48, 0x8d, 0x65, 0xf8, //0x0000847f leaq $-8(%rbp), %rsp + 0x5b, //0x00008483 popq %rbx + 0x5d, //0x00008484 popq %rbp + 0xc5, 0xf8, 0x77, //0x00008485 vzeroupper + 0xc3, //0x00008488 retq + //0x00008489 LBB35_29 + 0x48, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00008489 cmpq $128, %rdi + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008490 jae LBB35_31 + 0x31, 0xf6, //0x00008496 xorl %esi, %esi + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00008498 jmp LBB35_39 + //0x0000849d LBB35_31 + 0x48, 0x89, 0xfe, //0x0000849d movq %rdi, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x000084a0 andq $-128, %rsi + 0x48, 0x8d, 0x4e, 0x80, //0x000084a4 leaq $-128(%rsi), %rcx + 0x49, 0x89, 0xc8, //0x000084a8 movq %rcx, %r8 + 0x49, 0xc1, 0xe8, 0x07, //0x000084ab shrq $7, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000084af addq $1, %r8 + 0x48, 0x85, 0xc9, //0x000084b3 testq %rcx, %rcx + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000084b6 je LBB35_34 + 0x4c, 0x89, 0xc2, //0x000084bc movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfe, //0x000084bf andq $-2, %rdx + 0x48, 0xf7, 0xda, //0x000084c3 negq %rdx + 0x31, 0xc9, //0x000084c6 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000084c8 .p2align 4, 0x90 + //0x000084d0 LBB35_33 + 0xc5, 0xfc, 0x10, 0x1c, 0x08, //0x000084d0 vmovups (%rax,%rcx), %ymm3 + 0xc5, 0xfc, 0x10, 0x64, 0x08, 0x20, //0x000084d5 vmovups $32(%rax,%rcx), %ymm4 + 0xc5, 0xfc, 0x10, 0x6c, 0x08, 0x40, //0x000084db vmovups $64(%rax,%rcx), %ymm5 + 0xc5, 0xfc, 0x10, 0x74, 0x08, 0x60, //0x000084e1 vmovups $96(%rax,%rcx), %ymm6 + 0xc5, 0xfc, 0x11, 0x5c, 0x0c, 0x20, //0x000084e7 vmovups %ymm3, $32(%rsp,%rcx) + 0xc5, 0xfc, 0x11, 0x64, 0x0c, 0x40, //0x000084ed vmovups %ymm4, $64(%rsp,%rcx) + 0xc5, 0xfc, 0x11, 0x6c, 0x0c, 0x60, //0x000084f3 vmovups %ymm5, $96(%rsp,%rcx) + 0xc5, 0xfc, 0x11, 0xb4, 0x0c, 0x80, 0x00, 0x00, 0x00, //0x000084f9 vmovups %ymm6, $128(%rsp,%rcx) + 0xc5, 0xfe, 0x6f, 0x9c, 0x08, 0x80, 0x00, 0x00, 0x00, //0x00008502 vmovdqu $128(%rax,%rcx), %ymm3 + 0xc5, 0xfe, 0x6f, 0xa4, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x0000850b vmovdqu $160(%rax,%rcx), %ymm4 + 0xc5, 0xfe, 0x6f, 0xac, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x00008514 vmovdqu $192(%rax,%rcx), %ymm5 + 0xc5, 0xfe, 0x6f, 0xb4, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x0000851d vmovdqu $224(%rax,%rcx), %ymm6 + 0xc5, 0xfe, 0x7f, 0x9c, 0x0c, 0xa0, 0x00, 0x00, 0x00, //0x00008526 vmovdqu %ymm3, $160(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0xa4, 0x0c, 0xc0, 0x00, 0x00, 0x00, //0x0000852f vmovdqu %ymm4, $192(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0xac, 0x0c, 0xe0, 0x00, 0x00, 0x00, //0x00008538 vmovdqu %ymm5, $224(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x00, 0x01, 0x00, 0x00, //0x00008541 vmovdqu %ymm6, $256(%rsp,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x0000854a addq $256, %rcx + 0x48, 0x83, 0xc2, 0x02, //0x00008551 addq $2, %rdx + 0x0f, 0x85, 0x75, 0xff, 0xff, 0xff, //0x00008555 jne LBB35_33 + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x0000855b jmp LBB35_35 + //0x00008560 LBB35_34 + 0x31, 0xc9, //0x00008560 xorl %ecx, %ecx + //0x00008562 LBB35_35 + 0x41, 0xf6, 0xc0, 0x01, //0x00008562 testb $1, %r8b + 0x0f, 0x84, 0x32, 0x00, 0x00, 0x00, //0x00008566 je LBB35_37 + 0xc5, 0xfe, 0x6f, 0x1c, 0x08, //0x0000856c vmovdqu (%rax,%rcx), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x08, 0x20, //0x00008571 vmovdqu $32(%rax,%rcx), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x08, 0x40, //0x00008577 vmovdqu $64(%rax,%rcx), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x08, 0x60, //0x0000857d vmovdqu $96(%rax,%rcx), %ymm6 + 0xc5, 0xfe, 0x7f, 0x5c, 0x0c, 0x20, //0x00008583 vmovdqu %ymm3, $32(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0x64, 0x0c, 0x40, //0x00008589 vmovdqu %ymm4, $64(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0x6c, 0x0c, 0x60, //0x0000858f vmovdqu %ymm5, $96(%rsp,%rcx) + 0xc5, 0xfe, 0x7f, 0xb4, 0x0c, 0x80, 0x00, 0x00, 0x00, //0x00008595 vmovdqu %ymm6, $128(%rsp,%rcx) + //0x0000859e LBB35_37 + 0x48, 0x39, 0xf7, //0x0000859e cmpq %rsi, %rdi + 0x0f, 0x84, 0x9d, 0xfc, 0xff, 0xff, //0x000085a1 je LBB35_24 + 0x40, 0xf6, 0xc7, 0x70, //0x000085a7 testb $112, %dil + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x000085ab je LBB35_42 + //0x000085b1 LBB35_39 + 0x48, 0x89, 0xf2, //0x000085b1 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000085b4 movq %rdi, %rsi + 0x48, 0x83, 0xe6, 0xf0, //0x000085b7 andq $-16, %rsi + 0x48, 0x8d, 0x0c, 0x30, //0x000085bb leaq (%rax,%rsi), %rcx + 0x90, //0x000085bf .p2align 4, 0x90 + //0x000085c0 LBB35_40 + 0xc5, 0xfa, 0x6f, 0x1c, 0x10, //0x000085c0 vmovdqu (%rax,%rdx), %xmm3 + 0xc5, 0xfa, 0x7f, 0x5c, 0x14, 0x20, //0x000085c5 vmovdqu %xmm3, $32(%rsp,%rdx) + 0x48, 0x83, 0xc2, 0x10, //0x000085cb addq $16, %rdx + 0x48, 0x39, 0xd6, //0x000085cf cmpq %rdx, %rsi + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x000085d2 jne LBB35_40 + 0x48, 0x39, 0xf7, //0x000085d8 cmpq %rsi, %rdi + 0x0f, 0x85, 0x2f, 0xfc, 0xff, 0xff, //0x000085db jne LBB35_22 + 0xe9, 0x5e, 0xfc, 0xff, 0xff, //0x000085e1 jmp LBB35_24 + //0x000085e6 LBB35_42 + 0x48, 0x8d, 0x0c, 0x30, //0x000085e6 leaq (%rax,%rsi), %rcx + 0xe9, 0x21, 0xfc, 0xff, 0xff, //0x000085ea jmp LBB35_22 + //0x000085ef LBB35_43 + 0xc4, 0xe3, 0x6d, 0x46, 0xd4, 0x21, //0x000085ef vperm2i128 $33, %ymm4, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x0f, 0xea, 0x0f, //0x000085f5 vpalignr $15, %ymm2, %ymm4, %ymm5 + 0xc5, 0xcd, 0x71, 0xd5, 0x04, //0x000085fb vpsrlw $4, %ymm5, %ymm6 + 0xc5, 0xfd, 0x6f, 0x0d, 0x98, 0xf5, 0xff, 0xff, //0x00008600 vmovdqa $-2664(%rip), %ymm1 /* LCPI35_0+0(%rip) */ + 0xc5, 0xcd, 0xdb, 0xf1, //0x00008608 vpand %ymm1, %ymm6, %ymm6 + 0xc5, 0xfd, 0x6f, 0x3d, 0xac, 0xf5, 0xff, 0xff, //0x0000860c vmovdqa $-2644(%rip), %ymm7 /* LCPI35_1+0(%rip) */ + 0xc4, 0xe2, 0x45, 0x00, 0xf6, //0x00008614 vpshufb %ymm6, %ymm7, %ymm6 + 0xc5, 0xd5, 0xdb, 0xe9, //0x00008619 vpand %ymm1, %ymm5, %ymm5 + 0xc5, 0x7d, 0x6f, 0x05, 0xbb, 0xf5, 0xff, 0xff, //0x0000861d vmovdqa $-2629(%rip), %ymm8 /* LCPI35_2+0(%rip) */ + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x00008625 vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xb5, 0x71, 0xd4, 0x04, //0x0000862a vpsrlw $4, %ymm4, %ymm9 + 0xc5, 0x35, 0xdb, 0xc9, //0x0000862f vpand %ymm1, %ymm9, %ymm9 + 0xc5, 0x7d, 0x6f, 0x15, 0xc5, 0xf5, 0xff, 0xff, //0x00008633 vmovdqa $-2619(%rip), %ymm10 /* LCPI35_3+0(%rip) */ + 0xc4, 0x42, 0x2d, 0x00, 0xc9, //0x0000863b vpshufb %ymm9, %ymm10, %ymm9 + 0xc5, 0xb5, 0xdb, 0xed, //0x00008640 vpand %ymm5, %ymm9, %ymm5 + 0xc5, 0xcd, 0xdb, 0xed, //0x00008644 vpand %ymm5, %ymm6, %ymm5 + 0xc4, 0xe3, 0x5d, 0x0f, 0xf2, 0x0e, //0x00008648 vpalignr $14, %ymm2, %ymm4, %ymm6 + 0xc4, 0xe3, 0x5d, 0x0f, 0xd2, 0x0d, //0x0000864e vpalignr $13, %ymm2, %ymm4, %ymm2 + 0xc5, 0x7d, 0x6f, 0x0d, 0xc4, 0xf5, 0xff, 0xff, //0x00008654 vmovdqa $-2620(%rip), %ymm9 /* LCPI35_4+0(%rip) */ + 0xc4, 0xc1, 0x4d, 0xd8, 0xf1, //0x0000865c vpsubusb %ymm9, %ymm6, %ymm6 + 0xc5, 0x7d, 0x6f, 0x1d, 0xd7, 0xf5, 0xff, 0xff, //0x00008661 vmovdqa $-2601(%rip), %ymm11 /* LCPI35_5+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xd8, 0xd3, //0x00008669 vpsubusb %ymm11, %ymm2, %ymm2 + 0xc5, 0xed, 0xeb, 0xd6, //0x0000866e vpor %ymm6, %ymm2, %ymm2 + 0xc5, 0xc9, 0xef, 0xf6, //0x00008672 vpxor %xmm6, %xmm6, %xmm6 + 0xc5, 0xed, 0x74, 0xd6, //0x00008676 vpcmpeqb %ymm6, %ymm2, %ymm2 + 0xc4, 0x62, 0x7d, 0x59, 0x25, 0x1d, 0xf6, 0xff, 0xff, //0x0000867a vpbroadcastq $-2531(%rip), %ymm12 /* LCPI35_6+0(%rip) */ + 0xc4, 0xc1, 0x6d, 0xdf, 0xd4, //0x00008683 vpandn %ymm12, %ymm2, %ymm2 + 0xc5, 0xed, 0xef, 0xd5, //0x00008688 vpxor %ymm5, %ymm2, %ymm2 + 0xc4, 0xe3, 0x5d, 0x46, 0xe3, 0x21, //0x0000868c vperm2i128 $33, %ymm3, %ymm4, %ymm4 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0f, //0x00008692 vpalignr $15, %ymm4, %ymm3, %ymm5 + 0xc5, 0x95, 0x71, 0xd5, 0x04, //0x00008698 vpsrlw $4, %ymm5, %ymm13 + 0xc5, 0x15, 0xdb, 0xe9, //0x0000869d vpand %ymm1, %ymm13, %ymm13 + 0xc4, 0xc2, 0x45, 0x00, 0xfd, //0x000086a1 vpshufb %ymm13, %ymm7, %ymm7 + 0xc5, 0xd5, 0xdb, 0xe9, //0x000086a6 vpand %ymm1, %ymm5, %ymm5 + 0xc4, 0xe2, 0x3d, 0x00, 0xed, //0x000086aa vpshufb %ymm5, %ymm8, %ymm5 + 0xc5, 0xbd, 0x71, 0xd3, 0x04, //0x000086af vpsrlw $4, %ymm3, %ymm8 + 0xc5, 0xbd, 0xdb, 0xc9, //0x000086b4 vpand %ymm1, %ymm8, %ymm1 + 0xc4, 0xe2, 0x2d, 0x00, 0xc9, //0x000086b8 vpshufb %ymm1, %ymm10, %ymm1 + 0xc5, 0xd5, 0xdb, 0xc9, //0x000086bd vpand %ymm1, %ymm5, %ymm1 + 0xc5, 0xc5, 0xdb, 0xc9, //0x000086c1 vpand %ymm1, %ymm7, %ymm1 + 0xc4, 0xe3, 0x65, 0x0f, 0xec, 0x0e, //0x000086c5 vpalignr $14, %ymm4, %ymm3, %ymm5 + 0xc4, 0xe3, 0x65, 0x0f, 0xe4, 0x0d, //0x000086cb vpalignr $13, %ymm4, %ymm3, %ymm4 + 0xc4, 0xc1, 0x55, 0xd8, 0xe9, //0x000086d1 vpsubusb %ymm9, %ymm5, %ymm5 + 0xc4, 0xc1, 0x5d, 0xd8, 0xe3, //0x000086d6 vpsubusb %ymm11, %ymm4, %ymm4 + 0xc5, 0xdd, 0xeb, 0xe5, //0x000086db vpor %ymm5, %ymm4, %ymm4 + 0xc5, 0xdd, 0x74, 0xe6, //0x000086df vpcmpeqb %ymm6, %ymm4, %ymm4 + 0xc4, 0xc1, 0x5d, 0xdf, 0xe4, //0x000086e3 vpandn %ymm12, %ymm4, %ymm4 + 0xc5, 0xdd, 0xef, 0xc9, //0x000086e8 vpxor %ymm1, %ymm4, %ymm1 + 0xc5, 0xed, 0xeb, 0xc0, //0x000086ec vpor %ymm0, %ymm2, %ymm0 + 0xc5, 0xfd, 0xeb, 0xc1, //0x000086f0 vpor %ymm1, %ymm0, %ymm0 + 0xc5, 0xe5, 0xd8, 0x0d, 0x64, 0xf5, 0xff, 0xff, //0x000086f4 vpsubusb $-2716(%rip), %ymm3, %ymm1 /* LCPI35_7+0(%rip) */ + 0xc5, 0xfd, 0xeb, 0xc1, //0x000086fc vpor %ymm1, %ymm0, %ymm0 + 0xc4, 0xe2, 0x7d, 0x17, 0xc0, //0x00008700 vptest %ymm0, %ymm0 + 0x0f, 0x84, 0x72, 0xfd, 0xff, 0xff, //0x00008705 je LBB35_28 + 0xe9, 0x63, 0xfb, 0xff, 0xff, //0x0000870b jmp LBB35_44 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00008710 .p2align 5, 0x00 + //0x00008720 LCPI36_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, 0x00 + //0x00008740 LCPI36_1 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008740 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00008750 .p2align 4, 0x90 + //0x00008750 _f32toa + 0x55, //0x00008750 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008751 movq %rsp, %rbp + 0x41, 0x57, //0x00008754 pushq %r15 + 0x41, 0x56, //0x00008756 pushq %r14 + 0x41, 0x55, //0x00008758 pushq %r13 + 0x41, 0x54, //0x0000875a pushq %r12 + 0x53, //0x0000875c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000875d subq $16, %rsp + 0xc5, 0xf9, 0x7e, 0xc0, //0x00008761 vmovd %xmm0, %eax + 0x89, 0xc1, //0x00008765 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00008767 shrl $23, %ecx + 0x0f, 0xb6, 0xd1, //0x0000876a movzbl %cl, %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x0000876d cmpl $255, %edx + 0x0f, 0x84, 0x7f, 0x0e, 0x00, 0x00, //0x00008773 je LBB36_1 + 0xc6, 0x07, 0x2d, //0x00008779 movb $45, (%rdi) + 0x41, 0x89, 0xc2, //0x0000877c movl %eax, %r10d + 0x41, 0xc1, 0xea, 0x1f, //0x0000877f shrl $31, %r10d + 0x4e, 0x8d, 0x0c, 0x17, //0x00008783 leaq (%rdi,%r10), %r9 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00008787 testl $2147483647, %eax + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x0000878c je LBB36_3 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00008792 andl $8388607, %eax + 0x85, 0xd2, //0x00008797 testl %edx, %edx + 0x0f, 0x84, 0x60, 0x0e, 0x00, 0x00, //0x00008799 je LBB36_5 + 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x0000879f leal $8388608(%rax), %r11d + 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x000087a6 leal $-150(%rdx), %r8d + 0x8d, 0x4a, 0x81, //0x000087ad leal $-127(%rdx), %ecx + 0x83, 0xf9, 0x17, //0x000087b0 cmpl $23, %ecx + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x000087b3 ja LBB36_10 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x000087b9 movl $150, %ecx + 0x29, 0xd1, //0x000087be subl %edx, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000087c0 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x000087c7 shlq %cl, %rsi + 0xf7, 0xd6, //0x000087ca notl %esi + 0x44, 0x85, 0xde, //0x000087cc testl %r11d, %esi + 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x000087cf je LBB36_12 + //0x000087d5 LBB36_10 + 0x4c, 0x89, 0x4d, 0xc8, //0x000087d5 movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000087d9 movq %rdi, $-48(%rbp) + //0x000087dd LBB36_6 + 0x45, 0x89, 0xdf, //0x000087dd movl %r11d, %r15d + 0x41, 0x83, 0xe7, 0x01, //0x000087e0 andl $1, %r15d + 0x85, 0xc0, //0x000087e4 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x000087e6 sete %al + 0x83, 0xfa, 0x02, //0x000087e9 cmpl $2, %edx + 0x0f, 0x93, 0xc1, //0x000087ec setae %cl + 0x20, 0xc1, //0x000087ef andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x000087f1 movzbl %cl, %ecx + 0x45, 0x89, 0xd9, //0x000087f4 movl %r11d, %r9d + 0x41, 0xc1, 0xe1, 0x02, //0x000087f7 shll $2, %r9d + 0x42, 0x8d, 0x04, 0x99, //0x000087fb leal (%rcx,%r11,4), %eax + 0x83, 0xc0, 0xfe, //0x000087ff addl $-2, %eax + 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x00008802 imull $1262611, %r8d, %edx + 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x00008809 leal $-524031(%rdx), %r14d + 0x84, 0xc9, //0x00008810 testb %cl, %cl + 0x44, 0x0f, 0x44, 0xf2, //0x00008812 cmovel %edx, %r14d + 0x41, 0xc1, 0xfe, 0x16, //0x00008816 sarl $22, %r14d + 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x0000881a imull $-1741647, %r14d, %ecx + 0xc1, 0xe9, 0x13, //0x00008821 shrl $19, %ecx + 0x44, 0x01, 0xc1, //0x00008824 addl %r8d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00008827 movl $31, %edx + 0x44, 0x29, 0xf2, //0x0000882c subl %r14d, %edx + 0x80, 0xc1, 0x01, //0x0000882f addb $1, %cl + 0xd3, 0xe0, //0x00008832 shll %cl, %eax + 0x48, 0x8d, 0x35, 0x25, 0xbd, 0x00, 0x00, //0x00008834 leaq $48421(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0x4c, 0x8b, 0x2c, 0xd6, //0x0000883b movq (%rsi,%rdx,8), %r13 + 0x49, 0xf7, 0xe5, //0x0000883f mulq %r13 + 0x49, 0x89, 0xd0, //0x00008842 movq %rdx, %r8 + 0x48, 0xc1, 0xe8, 0x20, //0x00008845 shrq $32, %rax + 0x45, 0x31, 0xe4, //0x00008849 xorl %r12d, %r12d + 0x83, 0xf8, 0x02, //0x0000884c cmpl $2, %eax + 0x41, 0x0f, 0x93, 0xc4, //0x0000884f setae %r12b + 0x41, 0xd3, 0xe1, //0x00008853 shll %cl, %r9d + 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00008856 leal $2(,%r11,4), %r11d + 0x4c, 0x89, 0xc8, //0x0000885e movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x00008861 mulq %r13 + 0x49, 0x89, 0xd1, //0x00008864 movq %rdx, %r9 + 0x45, 0x09, 0xc4, //0x00008867 orl %r8d, %r12d + 0x48, 0xc1, 0xe8, 0x20, //0x0000886a shrq $32, %rax + 0x31, 0xdb, //0x0000886e xorl %ebx, %ebx + 0x83, 0xf8, 0x02, //0x00008870 cmpl $2, %eax + 0x0f, 0x93, 0xc3, //0x00008873 setae %bl + 0x41, 0xd3, 0xe3, //0x00008876 shll %cl, %r11d + 0x44, 0x09, 0xcb, //0x00008879 orl %r9d, %ebx + 0x4c, 0x89, 0xd8, //0x0000887c movq %r11, %rax + 0x49, 0xf7, 0xe5, //0x0000887f mulq %r13 + 0x48, 0xc1, 0xe8, 0x20, //0x00008882 shrq $32, %rax + 0x31, 0xc9, //0x00008886 xorl %ecx, %ecx + 0x83, 0xf8, 0x02, //0x00008888 cmpl $2, %eax + 0x0f, 0x93, 0xc1, //0x0000888b setae %cl + 0x09, 0xd1, //0x0000888e orl %edx, %ecx + 0x45, 0x01, 0xfc, //0x00008890 addl %r15d, %r12d + 0x44, 0x29, 0xf9, //0x00008893 subl %r15d, %ecx + 0x83, 0xfb, 0x28, //0x00008896 cmpl $40, %ebx + 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00008899 jb LBB36_31 + 0x44, 0x89, 0xc8, //0x0000889f movl %r9d, %eax + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x000088a2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x000088a7 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000088ab shrq $37, %rdx + 0x44, 0x89, 0xe0, //0x000088af movl %r12d, %eax + 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x000088b2 leaq (,%rdx,8), %rsi + 0x48, 0x8d, 0x3c, 0xb6, //0x000088ba leaq (%rsi,%rsi,4), %rdi + 0x48, 0x39, 0xc7, //0x000088be cmpq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc3, //0x000088c1 setb %r11b + 0x48, 0x8d, 0x34, 0xb6, //0x000088c5 leaq (%rsi,%rsi,4), %rsi + 0x48, 0x83, 0xc6, 0x28, //0x000088c9 addq $40, %rsi + 0x89, 0xcf, //0x000088cd movl %ecx, %edi + 0x31, 0xc0, //0x000088cf xorl %eax, %eax + 0x48, 0x39, 0xfe, //0x000088d1 cmpq %rdi, %rsi + 0x41, 0x0f, 0x96, 0xc0, //0x000088d4 setbe %r8b + 0x45, 0x38, 0xc3, //0x000088d8 cmpb %r8b, %r11b + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000088db je LBB36_8 + //0x000088e1 LBB36_31 + 0x4d, 0x89, 0xc8, //0x000088e1 movq %r9, %r8 + 0x49, 0xc1, 0xe8, 0x02, //0x000088e4 shrq $2, %r8 + 0x44, 0x89, 0xca, //0x000088e8 movl %r9d, %edx + 0x83, 0xe2, 0xfc, //0x000088eb andl $-4, %edx + 0x41, 0x39, 0xd4, //0x000088ee cmpl %edx, %r12d + 0x40, 0x0f, 0x97, 0xc6, //0x000088f1 seta %sil + 0x8d, 0x7a, 0x04, //0x000088f5 leal $4(%rdx), %edi + 0x39, 0xcf, //0x000088f8 cmpl %ecx, %edi + 0x0f, 0x96, 0xc0, //0x000088fa setbe %al + 0x40, 0x30, 0xf0, //0x000088fd xorb %sil, %al + 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00008900 je LBB36_32 + 0x83, 0xca, 0x02, //0x00008906 orl $2, %edx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008909 movl $1, %eax + 0x39, 0xd3, //0x0000890e cmpl %edx, %ebx + 0x4c, 0x8b, 0x65, 0xc8, //0x00008910 movq $-56(%rbp), %r12 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00008914 ja LBB36_35 + 0x0f, 0x94, 0xc0, //0x0000891a sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x0000891d shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00008921 andb %al, %r9b + 0x41, 0x0f, 0xb6, 0xc1, //0x00008924 movzbl %r9b, %eax + //0x00008928 LBB36_35 + 0x44, 0x01, 0xc0, //0x00008928 addl %r8d, %eax + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x0000892b cmpl $100000, %eax + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00008930 jae LBB36_37 + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00008936 jmp LBB36_40 + //0x0000893b LBB36_3 + 0x41, 0xc6, 0x01, 0x30, //0x0000893b movb $48, (%r9) + 0x41, 0x29, 0xf9, //0x0000893f subl %edi, %r9d + 0x41, 0x83, 0xc1, 0x01, //0x00008942 addl $1, %r9d + 0x44, 0x89, 0xc8, //0x00008946 movl %r9d, %eax + 0xe9, 0x98, 0x0c, 0x00, 0x00, //0x00008949 jmp LBB36_156 + //0x0000894e LBB36_32 + 0x39, 0xf9, //0x0000894e cmpl %edi, %ecx + 0x41, 0x83, 0xd8, 0xff, //0x00008950 sbbl $-1, %r8d + 0x44, 0x89, 0xc0, //0x00008954 movl %r8d, %eax + 0x4c, 0x8b, 0x65, 0xc8, //0x00008957 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x0000895b cmpl $100000, %eax + 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00008960 jb LBB36_40 + //0x00008966 LBB36_37 + 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00008966 movl $6, %r13d + 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x0000896c cmpl $1000000, %eax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00008971 jb LBB36_45 + 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00008977 movl $7, %r13d + 0x3d, 0x80, 0x96, 0x98, 0x00, //0x0000897d cmpl $10000000, %eax + 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00008982 jb LBB36_45 + 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00008988 cmpl $100000000, %eax + 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x0000898d movl $9, %r13d + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00008993 jmp LBB36_44 + //0x00008998 LBB36_8 + 0x44, 0x88, 0xc0, //0x00008998 movb %r8b, %al + 0x01, 0xd0, //0x0000899b addl %edx, %eax + 0x41, 0x83, 0xc6, 0x01, //0x0000899d addl $1, %r14d + 0x4c, 0x8b, 0x65, 0xc8, //0x000089a1 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x000089a5 cmpl $100000, %eax + 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x000089aa jae LBB36_37 + //0x000089b0 LBB36_40 + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x000089b0 movl $1, %r13d + 0x83, 0xf8, 0x0a, //0x000089b6 cmpl $10, %eax + 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x000089b9 jb LBB36_45 + 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000089bf movl $2, %r13d + 0x83, 0xf8, 0x64, //0x000089c5 cmpl $100, %eax + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x000089c8 jb LBB36_45 + 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x000089ce movl $3, %r13d + 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x000089d4 cmpl $1000, %eax + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x000089d9 jb LBB36_45 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000089df cmpl $10000, %eax + 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x000089e4 movl $5, %r13d + //0x000089ea LBB36_44 + 0x41, 0x83, 0xdd, 0x00, //0x000089ea sbbl $0, %r13d + //0x000089ee LBB36_45 + 0x47, 0x8d, 0x0c, 0x2e, //0x000089ee leal (%r14,%r13), %r9d + 0x43, 0x8d, 0x0c, 0x2e, //0x000089f2 leal (%r14,%r13), %ecx + 0x83, 0xc1, 0x05, //0x000089f6 addl $5, %ecx + 0x83, 0xf9, 0x1b, //0x000089f9 cmpl $27, %ecx + 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x000089fc jb LBB36_70 + 0x44, 0x89, 0xea, //0x00008a02 movl %r13d, %edx + 0x49, 0x8d, 0x0c, 0x14, //0x00008a05 leaq (%r12,%rdx), %rcx + 0x48, 0x83, 0xc1, 0x01, //0x00008a09 addq $1, %rcx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00008a0d cmpl $10000, %eax + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00008a12 jb LBB36_47 + 0x89, 0xc6, //0x00008a18 movl %eax, %esi + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00008a1a movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xde, //0x00008a1f imulq %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x00008a23 shrq $45, %rbx + 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00008a27 imull $-10000, %ebx, %r8d + 0x41, 0x01, 0xc0, //0x00008a2e addl %eax, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x00008a31 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00008a35 je LBB36_49 + 0x44, 0x89, 0xc0, //0x00008a3b movl %r8d, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008a3e imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008a45 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x00008a49 imull $100, %eax, %esi + 0x41, 0x29, 0xf0, //0x00008a4c subl %esi, %r8d + 0x48, 0x8d, 0x35, 0x8a, 0x47, 0x00, 0x00, //0x00008a4f leaq $18314(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00008a56 movzwl (%rsi,%r8,2), %edi + 0x66, 0x89, 0x79, 0xfe, //0x00008a5b movw %di, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x46, //0x00008a5f movzwl (%rsi,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00008a63 movw %ax, $-4(%rcx) + 0x45, 0x31, 0xc0, //0x00008a67 xorl %r8d, %r8d + 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00008a6a jmp LBB36_51 + //0x00008a6f LBB36_70 + 0x45, 0x89, 0xe8, //0x00008a6f movl %r13d, %r8d + 0x45, 0x85, 0xf6, //0x00008a72 testl %r14d, %r14d + 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00008a75 js LBB36_71 + 0x4b, 0x8d, 0x14, 0x04, //0x00008a7b leaq (%r12,%r8), %rdx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00008a7f cmpl $10000, %eax + 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00008a84 jb LBB36_124 + 0x89, 0xc1, //0x00008a8a movl %eax, %ecx + 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00008a8c movl $3518437209, %esi + 0x48, 0x0f, 0xaf, 0xf1, //0x00008a91 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x00008a95 shrq $45, %rsi + 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00008a99 imull $-10000, %esi, %ecx + 0x01, 0xc1, //0x00008a9f addl %eax, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00008aa1 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008aa8 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x00008aac imull $100, %eax, %edi + 0x29, 0xf9, //0x00008aaf subl %edi, %ecx + 0x48, 0x8d, 0x3d, 0x28, 0x47, 0x00, 0x00, //0x00008ab1 leaq $18216(%rip), %rdi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4f, //0x00008ab8 movzwl (%rdi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xfe, //0x00008abc movw %cx, $-2(%rdx) + 0x48, 0x8d, 0x4a, 0xfc, //0x00008ac0 leaq $-4(%rdx), %rcx + 0x0f, 0xb7, 0x04, 0x47, //0x00008ac4 movzwl (%rdi,%rax,2), %eax + 0x66, 0x89, 0x42, 0xfc, //0x00008ac8 movw %ax, $-4(%rdx) + 0x89, 0xf0, //0x00008acc movl %esi, %eax + 0x83, 0xf8, 0x64, //0x00008ace cmpl $100, %eax + 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00008ad1 jae LBB36_128 + //0x00008ad7 LBB36_127 + 0x89, 0xc3, //0x00008ad7 movl %eax, %ebx + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00008ad9 jmp LBB36_130 + //0x00008ade LBB36_47 + 0x45, 0x31, 0xc0, //0x00008ade xorl %r8d, %r8d + 0x89, 0xc3, //0x00008ae1 movl %eax, %ebx + 0x4c, 0x8b, 0x6d, 0xd0, //0x00008ae3 movq $-48(%rbp), %r13 + 0x83, 0xfb, 0x64, //0x00008ae7 cmpl $100, %ebx + 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00008aea jae LBB36_54 + //0x00008af0 LBB36_53 + 0x89, 0xd8, //0x00008af0 movl %ebx, %eax + 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00008af2 jmp LBB36_56 + //0x00008af7 LBB36_12 + 0x41, 0xd3, 0xeb, //0x00008af7 shrl %cl, %r11d + 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00008afa cmpl $100000, %r11d + 0x0f, 0x82, 0xcb, 0x01, 0x00, 0x00, //0x00008b01 jb LBB36_18 + 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00008b07 movl $6, %ecx + 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00008b0c cmpl $1000000, %r11d + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00008b13 jb LBB36_16 + 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00008b19 movl $7, %ecx + 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00008b1e cmpl $10000000, %r11d + 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00008b25 jb LBB36_16 + 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00008b2b cmpl $100000000, %r11d + 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00008b32 movl $9, %ecx + 0x48, 0x83, 0xd9, 0x00, //0x00008b37 sbbq $0, %rcx + //0x00008b3b LBB36_16 + 0x4c, 0x01, 0xc9, //0x00008b3b addq %r9, %rcx + //0x00008b3e LBB36_17 + 0x44, 0x89, 0xd8, //0x00008b3e movl %r11d, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008b41 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00008b46 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00008b4a shrq $45, %rdx + 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00008b4e imull $-10000, %edx, %eax + 0x44, 0x01, 0xd8, //0x00008b54 addl %r11d, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00008b57 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00008b5e shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00008b62 imull $100, %esi, %ebx + 0x29, 0xd8, //0x00008b65 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x72, 0x46, 0x00, 0x00, //0x00008b67 leaq $18034(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00008b6e movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfe, //0x00008b72 movw %ax, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x73, //0x00008b76 movzwl (%rbx,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00008b7a movw %ax, $-4(%rcx) + 0x48, 0x89, 0xc8, //0x00008b7e movq %rcx, %rax + 0x48, 0x83, 0xc1, 0xfc, //0x00008b81 addq $-4, %rcx + 0x41, 0x89, 0xd3, //0x00008b85 movl %edx, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00008b88 cmpl $100, %r11d + 0x0f, 0x83, 0x80, 0x01, 0x00, 0x00, //0x00008b8c jae LBB36_25 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00008b92 jmp LBB36_27 + //0x00008b97 LBB36_71 + 0x45, 0x85, 0xc9, //0x00008b97 testl %r9d, %r9d + 0x0f, 0x8f, 0x62, 0x06, 0x00, 0x00, //0x00008b9a jg LBB36_84 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00008ba0 movw $11824, (%r12) + 0x49, 0x83, 0xc4, 0x02, //0x00008ba7 addq $2, %r12 + 0x45, 0x85, 0xc9, //0x00008bab testl %r9d, %r9d + 0x0f, 0x89, 0x4e, 0x06, 0x00, 0x00, //0x00008bae jns LBB36_84 + 0x45, 0x89, 0xeb, //0x00008bb4 movl %r13d, %r11d + 0x41, 0xf7, 0xd3, //0x00008bb7 notl %r11d + 0x45, 0x29, 0xf3, //0x00008bba subl %r14d, %r11d + 0x31, 0xc9, //0x00008bbd xorl %ecx, %ecx + 0x41, 0x83, 0xfb, 0x7f, //0x00008bbf cmpl $127, %r11d + 0x0f, 0x82, 0x18, 0x06, 0x00, 0x00, //0x00008bc3 jb LBB36_82 + 0x4c, 0x89, 0xe7, //0x00008bc9 movq %r12, %rdi + 0x49, 0x83, 0xc3, 0x01, //0x00008bcc addq $1, %r11 + 0x4c, 0x89, 0xd9, //0x00008bd0 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0x80, //0x00008bd3 andq $-128, %rcx + 0x48, 0x8d, 0x51, 0x80, //0x00008bd7 leaq $-128(%rcx), %rdx + 0x49, 0x89, 0xd4, //0x00008bdb movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x07, //0x00008bde shrq $7, %r12 + 0x49, 0x83, 0xc4, 0x01, //0x00008be2 addq $1, %r12 + 0x45, 0x89, 0xe7, //0x00008be6 movl %r12d, %r15d + 0x41, 0x83, 0xe7, 0x03, //0x00008be9 andl $3, %r15d + 0x48, 0x81, 0xfa, 0x80, 0x01, 0x00, 0x00, //0x00008bed cmpq $384, %rdx + 0x0f, 0x83, 0xde, 0x04, 0x00, 0x00, //0x00008bf4 jae LBB36_76 + 0x31, 0xd2, //0x00008bfa xorl %edx, %edx + 0xe9, 0x88, 0x05, 0x00, 0x00, //0x00008bfc jmp LBB36_78 + //0x00008c01 LBB36_124 + 0x48, 0x89, 0xd1, //0x00008c01 movq %rdx, %rcx + 0x83, 0xf8, 0x64, //0x00008c04 cmpl $100, %eax + 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00008c07 jb LBB36_127 + //0x00008c0d LBB36_128 + 0x48, 0x83, 0xc1, 0xff, //0x00008c0d addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0xc8, 0x45, 0x00, 0x00, //0x00008c11 leaq $17864(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008c18 .p2align 4, 0x90 + //0x00008c20 LBB36_129 + 0x89, 0xc6, //0x00008c20 movl %eax, %esi + 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00008c22 imulq $1374389535, %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008c29 shrq $37, %rbx + 0x6b, 0xf3, 0x64, //0x00008c2d imull $100, %ebx, %esi + 0x89, 0xc7, //0x00008c30 movl %eax, %edi + 0x29, 0xf7, //0x00008c32 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00008c34 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x00008c39 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008c3d addq $-2, %rcx + 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00008c41 cmpl $9999, %eax + 0x89, 0xd8, //0x00008c46 movl %ebx, %eax + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00008c48 ja LBB36_129 + //0x00008c4e LBB36_130 + 0x4d, 0x63, 0xe9, //0x00008c4e movslq %r9d, %r13 + 0x83, 0xfb, 0x0a, //0x00008c51 cmpl $10, %ebx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00008c54 jb LBB36_132 + 0x89, 0xd8, //0x00008c5a movl %ebx, %eax + 0x48, 0x8d, 0x0d, 0x7d, 0x45, 0x00, 0x00, //0x00008c5c leaq $17789(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008c63 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x04, 0x24, //0x00008c67 movw %ax, (%r12) + 0x4d, 0x01, 0xec, //0x00008c6c addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00008c6f cmpq %r13, %r8 + 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00008c72 jl LBB36_135 + 0xe9, 0xff, 0x03, 0x00, 0x00, //0x00008c78 jmp LBB36_134 + //0x00008c7d LBB36_132 + 0x80, 0xc3, 0x30, //0x00008c7d addb $48, %bl + 0x41, 0x88, 0x1c, 0x24, //0x00008c80 movb %bl, (%r12) + 0x4d, 0x01, 0xec, //0x00008c84 addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00008c87 cmpq %r13, %r8 + 0x0f, 0x8d, 0xec, 0x03, 0x00, 0x00, //0x00008c8a jge LBB36_134 + //0x00008c90 LBB36_135 + 0x48, 0x8b, 0x45, 0xd0, //0x00008c90 movq $-48(%rbp), %rax + 0x4c, 0x01, 0xd0, //0x00008c94 addq %r10, %rax + 0x4d, 0x8d, 0x34, 0x00, //0x00008c97 leaq (%r8,%rax), %r14 + 0x49, 0x83, 0xc6, 0x01, //0x00008c9b addq $1, %r14 + 0x49, 0x01, 0xc5, //0x00008c9f addq %rax, %r13 + 0x4d, 0x39, 0xee, //0x00008ca2 cmpq %r13, %r14 + 0x4d, 0x89, 0xef, //0x00008ca5 movq %r13, %r15 + 0x4d, 0x0f, 0x47, 0xfe, //0x00008ca8 cmovaq %r14, %r15 + 0x4e, 0x8d, 0x1c, 0x00, //0x00008cac leaq (%rax,%r8), %r11 + 0x4d, 0x29, 0xdf, //0x00008cb0 subq %r11, %r15 + 0x49, 0x83, 0xff, 0x10, //0x00008cb3 cmpq $16, %r15 + 0x0f, 0x82, 0xf5, 0x03, 0x00, 0x00, //0x00008cb7 jb LBB36_152 + 0x49, 0x81, 0xff, 0x80, 0x00, 0x00, 0x00, //0x00008cbd cmpq $128, %r15 + 0x0f, 0x83, 0xf8, 0x01, 0x00, 0x00, //0x00008cc4 jae LBB36_141 + 0x45, 0x31, 0xc9, //0x00008cca xorl %r9d, %r9d + 0xe9, 0x54, 0x03, 0x00, 0x00, //0x00008ccd jmp LBB36_138 + //0x00008cd2 LBB36_18 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00008cd2 movl $1, %eax + 0x41, 0x83, 0xfb, 0x0a, //0x00008cd7 cmpl $10, %r11d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00008cdb jb LBB36_21 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00008ce1 movl $2, %eax + 0x41, 0x83, 0xfb, 0x64, //0x00008ce6 cmpl $100, %r11d + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008cea jb LBB36_21 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x00008cf0 movl $3, %eax + 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00008cf5 cmpl $1000, %r11d + 0x0f, 0x83, 0x86, 0x03, 0x00, 0x00, //0x00008cfc jae LBB36_23 + //0x00008d02 LBB36_21 + 0x4c, 0x01, 0xc8, //0x00008d02 addq %r9, %rax + 0x48, 0x89, 0xc1, //0x00008d05 movq %rax, %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008d08 cmpl $100, %r11d + 0x0f, 0x82, 0x40, 0x00, 0x00, 0x00, //0x00008d0c jb LBB36_27 + //0x00008d12 LBB36_25 + 0x48, 0x83, 0xc1, 0xff, //0x00008d12 addq $-1, %rcx + 0x4c, 0x8d, 0x05, 0xc3, 0x44, 0x00, 0x00, //0x00008d16 leaq $17603(%rip), %r8 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, //0x00008d1d .p2align 4, 0x90 + //0x00008d20 LBB36_26 + 0x44, 0x89, 0xde, //0x00008d20 movl %r11d, %esi + 0x44, 0x89, 0xdb, //0x00008d23 movl %r11d, %ebx + 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00008d26 imulq $1374389535, %rbx, %r11 + 0x49, 0xc1, 0xeb, 0x25, //0x00008d2d shrq $37, %r11 + 0x41, 0x6b, 0xdb, 0x64, //0x00008d31 imull $100, %r11d, %ebx + 0x89, 0xf2, //0x00008d35 movl %esi, %edx + 0x29, 0xda, //0x00008d37 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00008d39 movzwl (%r8,%rdx,2), %edx + 0x66, 0x89, 0x51, 0xff, //0x00008d3e movw %dx, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008d42 addq $-2, %rcx + 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00008d46 cmpl $9999, %esi + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x00008d4c ja LBB36_26 + //0x00008d52 LBB36_27 + 0x41, 0x83, 0xfb, 0x0a, //0x00008d52 cmpl $10, %r11d + 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00008d56 jb LBB36_29 + 0x44, 0x89, 0xd9, //0x00008d5c movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0x7a, 0x44, 0x00, 0x00, //0x00008d5f leaq $17530(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008d66 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x09, //0x00008d6a movw %cx, (%r9) + 0x29, 0xf8, //0x00008d6e subl %edi, %eax + 0xe9, 0x71, 0x08, 0x00, 0x00, //0x00008d70 jmp LBB36_156 + //0x00008d75 LBB36_29 + 0x41, 0x80, 0xc3, 0x30, //0x00008d75 addb $48, %r11b + 0x45, 0x88, 0x19, //0x00008d79 movb %r11b, (%r9) + 0x29, 0xf8, //0x00008d7c subl %edi, %eax + 0xe9, 0x63, 0x08, 0x00, 0x00, //0x00008d7e jmp LBB36_156 + //0x00008d83 LBB36_49 + 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x00008d83 movl $4, %r8d + //0x00008d89 LBB36_51 + 0x48, 0x83, 0xc1, 0xfc, //0x00008d89 addq $-4, %rcx + 0x83, 0xfb, 0x64, //0x00008d8d cmpl $100, %ebx + 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x00008d90 jb LBB36_53 + //0x00008d96 LBB36_54 + 0x48, 0x83, 0xc1, 0xff, //0x00008d96 addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0x3f, 0x44, 0x00, 0x00, //0x00008d9a leaq $17471(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008da1 .p2align 4, 0x90 + //0x00008db0 LBB36_55 + 0x89, 0xd8, //0x00008db0 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008db2 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008db9 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x00008dbd imull $100, %eax, %esi + 0x89, 0xdf, //0x00008dc0 movl %ebx, %edi + 0x29, 0xf7, //0x00008dc2 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00008dc4 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x00008dc9 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008dcd addq $-2, %rcx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x00008dd1 cmpl $9999, %ebx + 0x89, 0xc3, //0x00008dd7 movl %eax, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x00008dd9 ja LBB36_55 + //0x00008ddf LBB36_56 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x00008ddf leaq $1(%r12), %rcx + 0x83, 0xf8, 0x0a, //0x00008de4 cmpl $10, %eax + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008de7 jb LBB36_58 + 0x89, 0xc6, //0x00008ded movl %eax, %esi + 0x48, 0x8d, 0x3d, 0xea, 0x43, 0x00, 0x00, //0x00008def leaq $17386(%rip), %rdi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x77, //0x00008df6 movb (%rdi,%rsi,2), %al + 0x8a, 0x5c, 0x77, 0x01, //0x00008df9 movb $1(%rdi,%rsi,2), %bl + 0x41, 0x88, 0x44, 0x24, 0x01, //0x00008dfd movb %al, $1(%r12) + 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00008e02 movb %bl, $2(%r12) + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00008e07 jmp LBB36_59 + //0x00008e0c LBB36_58 + 0x04, 0x30, //0x00008e0c addb $48, %al + 0x88, 0x01, //0x00008e0e movb %al, (%rcx) + //0x00008e10 LBB36_59 + 0x4d, 0x29, 0xc2, //0x00008e10 subq %r8, %r10 + 0x4d, 0x01, 0xea, //0x00008e13 addq %r13, %r10 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00008e16 movl $1, %ebx + 0x4c, 0x29, 0xc3, //0x00008e1b subq %r8, %rbx + 0x90, 0x90, //0x00008e1e .p2align 4, 0x90 + //0x00008e20 LBB36_60 + 0x48, 0x83, 0xc3, 0xff, //0x00008e20 addq $-1, %rbx + 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008e24 cmpb $48, (%r10,%rdx) + 0x4d, 0x8d, 0x52, 0xff, //0x00008e29 leaq $-1(%r10), %r10 + 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x00008e2d je LBB36_60 + 0x41, 0x88, 0x04, 0x24, //0x00008e33 movb %al, (%r12) + 0x48, 0x01, 0xd3, //0x00008e37 addq %rdx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x00008e3a cmpq $2, %rbx + 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x00008e3e jl LBB36_62 + 0x49, 0x8d, 0x04, 0x12, //0x00008e44 leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00008e48 addq $2, %rax + 0xc6, 0x01, 0x2e, //0x00008e4c movb $46, (%rcx) + 0xc6, 0x00, 0x65, //0x00008e4f movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x00008e52 testl %r9d, %r9d + 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008e55 jle LBB36_65 + //0x00008e5b LBB36_66 + 0x41, 0x83, 0xc1, 0xff, //0x00008e5b addl $-1, %r9d + 0xc6, 0x40, 0x01, 0x2b, //0x00008e5f movb $43, $1(%rax) + 0x44, 0x89, 0xc9, //0x00008e63 movl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x00008e66 cmpl $10, %ecx + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008e69 jl LBB36_69 + //0x00008e6f LBB36_68 + 0x48, 0x63, 0xc9, //0x00008e6f movslq %ecx, %rcx + 0x48, 0x8d, 0x15, 0x67, 0x43, 0x00, 0x00, //0x00008e72 leaq $17255(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008e79 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0x02, //0x00008e7d movw %cx, $2(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x00008e81 addq $4, %rax + 0xe9, 0x59, 0x07, 0x00, 0x00, //0x00008e85 jmp LBB36_155 + //0x00008e8a LBB36_62 + 0x49, 0x8d, 0x04, 0x12, //0x00008e8a leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x00008e8e addq $1, %rax + 0xc6, 0x00, 0x65, //0x00008e92 movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x00008e95 testl %r9d, %r9d + 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x00008e98 jg LBB36_66 + //0x00008e9e LBB36_65 + 0xc6, 0x40, 0x01, 0x2d, //0x00008e9e movb $45, $1(%rax) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00008ea2 movl $1, %ecx + 0x44, 0x29, 0xc9, //0x00008ea7 subl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x00008eaa cmpl $10, %ecx + 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x00008ead jge LBB36_68 + //0x00008eb3 LBB36_69 + 0x80, 0xc1, 0x30, //0x00008eb3 addb $48, %cl + 0x88, 0x48, 0x02, //0x00008eb6 movb %cl, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x00008eb9 addq $3, %rax + 0xe9, 0x21, 0x07, 0x00, 0x00, //0x00008ebd jmp LBB36_155 + //0x00008ec2 LBB36_141 + 0x4c, 0x89, 0xe6, //0x00008ec2 movq %r12, %rsi + 0x4d, 0x89, 0xf9, //0x00008ec5 movq %r15, %r9 + 0x49, 0x83, 0xe1, 0x80, //0x00008ec8 andq $-128, %r9 + 0x49, 0x8d, 0x41, 0x80, //0x00008ecc leaq $-128(%r9), %rax + 0x48, 0x89, 0xc3, //0x00008ed0 movq %rax, %rbx + 0x48, 0xc1, 0xeb, 0x07, //0x00008ed3 shrq $7, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00008ed7 addq $1, %rbx + 0x41, 0x89, 0xdc, //0x00008edb movl %ebx, %r12d + 0x41, 0x83, 0xe4, 0x03, //0x00008ede andl $3, %r12d + 0x48, 0x3d, 0x80, 0x01, 0x00, 0x00, //0x00008ee2 cmpq $384, %rax + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008ee8 jae LBB36_143 + 0x31, 0xc9, //0x00008eee xorl %ecx, %ecx + 0xe9, 0xbc, 0x00, 0x00, 0x00, //0x00008ef0 jmp LBB36_145 + //0x00008ef5 LBB36_143 + 0x4b, 0x8d, 0x04, 0x02, //0x00008ef5 leaq (%r10,%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00008ef9 movq $-48(%rbp), %rcx + 0x48, 0x01, 0xc8, //0x00008efd addq %rcx, %rax + 0x48, 0x05, 0xe0, 0x01, 0x00, 0x00, //0x00008f00 addq $480, %rax + 0x48, 0x83, 0xe3, 0xfc, //0x00008f06 andq $-4, %rbx + 0x48, 0xf7, 0xdb, //0x00008f0a negq %rbx + 0x31, 0xc9, //0x00008f0d xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x09, 0xf8, 0xff, 0xff, //0x00008f0f vmovdqa $-2039(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f17 .p2align 4, 0x90 + //0x00008f20 LBB36_144 + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xfe, 0xff, 0xff, //0x00008f20 vmovdqu %ymm0, $-480(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xfe, 0xff, 0xff, //0x00008f29 vmovdqu %ymm0, $-448(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xfe, 0xff, 0xff, //0x00008f32 vmovdqu %ymm0, $-416(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x80, 0xfe, 0xff, 0xff, //0x00008f3b vmovdqu %ymm0, $-384(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xa0, 0xfe, 0xff, 0xff, //0x00008f44 vmovdqu %ymm0, $-352(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xc0, 0xfe, 0xff, 0xff, //0x00008f4d vmovdqu %ymm0, $-320(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0xe0, 0xfe, 0xff, 0xff, //0x00008f56 vmovdqu %ymm0, $-288(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x00, 0xff, 0xff, 0xff, //0x00008f5f vmovdqu %ymm0, $-256(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008f68 vmovdqu %ymm0, $-224(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x00008f71 vmovdqu %ymm0, $-192(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x00008f7a vmovdqu %ymm0, $-160(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0x80, //0x00008f83 vmovdqu %ymm0, $-128(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008f89 vmovdqu %ymm0, $-96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x00008f8f vmovdqu %ymm0, $-64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008f95 vmovdqu %ymm0, $-32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00008f9b vmovdqu %ymm0, (%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x00008fa0 addq $512, %rcx + 0x48, 0x83, 0xc3, 0x04, //0x00008fa7 addq $4, %rbx + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00008fab jne LBB36_144 + //0x00008fb1 LBB36_145 + 0x4d, 0x85, 0xe4, //0x00008fb1 testq %r12, %r12 + 0x0f, 0x84, 0x4a, 0x00, 0x00, 0x00, //0x00008fb4 je LBB36_148 + 0x4c, 0x01, 0xd1, //0x00008fba addq %r10, %rcx + 0x4c, 0x01, 0xc1, //0x00008fbd addq %r8, %rcx + 0x48, 0x8b, 0x45, 0xd0, //0x00008fc0 movq $-48(%rbp), %rax + 0x48, 0x01, 0xc8, //0x00008fc4 addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x60, //0x00008fc7 addq $96, %rax + 0x49, 0xc1, 0xe4, 0x07, //0x00008fcb shlq $7, %r12 + 0x31, 0xc9, //0x00008fcf xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x47, 0xf7, 0xff, 0xff, //0x00008fd1 vmovdqa $-2233(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fd9 .p2align 4, 0x90 + //0x00008fe0 LBB36_147 + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xa0, //0x00008fe0 vmovdqu %ymm0, $-96(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xc0, //0x00008fe6 vmovdqu %ymm0, $-64(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x44, 0x08, 0xe0, //0x00008fec vmovdqu %ymm0, $-32(%rax,%rcx) + 0xc5, 0xfe, 0x7f, 0x04, 0x08, //0x00008ff2 vmovdqu %ymm0, (%rax,%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x00008ff7 subq $-128, %rcx + 0x49, 0x39, 0xcc, //0x00008ffb cmpq %rcx, %r12 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00008ffe jne LBB36_147 + //0x00009004 LBB36_148 + 0x4d, 0x39, 0xcf, //0x00009004 cmpq %r9, %r15 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x00009007 jne LBB36_150 + 0x48, 0x89, 0xf0, //0x0000900d movq %rsi, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x00009010 movq $-48(%rbp), %r13 + 0xe9, 0xca, 0x05, 0x00, 0x00, //0x00009014 jmp LBB36_155 + //0x00009019 LBB36_150 + 0x41, 0xf6, 0xc7, 0x70, //0x00009019 testb $112, %r15b + 0x49, 0x89, 0xf4, //0x0000901d movq %rsi, %r12 + 0x0f, 0x84, 0x89, 0x00, 0x00, 0x00, //0x00009020 je LBB36_151 + //0x00009026 LBB36_138 + 0x4d, 0x39, 0xee, //0x00009026 cmpq %r13, %r14 + 0x4d, 0x0f, 0x47, 0xee, //0x00009029 cmovaq %r14, %r13 + 0x4d, 0x29, 0xdd, //0x0000902d subq %r11, %r13 + 0x4c, 0x89, 0xe8, //0x00009030 movq %r13, %rax + 0x48, 0x83, 0xe0, 0xf0, //0x00009033 andq $-16, %rax + 0x48, 0x01, 0xc2, //0x00009037 addq %rax, %rdx + 0x4d, 0x01, 0xca, //0x0000903a addq %r9, %r10 + 0x4d, 0x01, 0xc2, //0x0000903d addq %r8, %r10 + 0x4c, 0x03, 0x55, 0xd0, //0x00009040 addq $-48(%rbp), %r10 + 0x48, 0x89, 0xc1, //0x00009044 movq %rax, %rcx + 0x4c, 0x29, 0xc9, //0x00009047 subq %r9, %rcx + 0x31, 0xdb, //0x0000904a xorl %ebx, %ebx + 0xc5, 0xf9, 0x6f, 0x05, 0xec, 0xf6, 0xff, 0xff, //0x0000904c vmovdqa $-2324(%rip), %xmm0 /* LCPI36_1+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009054 .p2align 4, 0x90 + //0x00009060 LBB36_139 + 0xc4, 0xc1, 0x7a, 0x7f, 0x04, 0x1a, //0x00009060 vmovdqu %xmm0, (%r10,%rbx) + 0x48, 0x83, 0xc3, 0x10, //0x00009066 addq $16, %rbx + 0x48, 0x39, 0xd9, //0x0000906a cmpq %rbx, %rcx + 0x0f, 0x85, 0xed, 0xff, 0xff, 0xff, //0x0000906d jne LBB36_139 + 0x49, 0x39, 0xc5, //0x00009073 cmpq %rax, %r13 + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009076 jne LBB36_152 + //0x0000907c LBB36_134 + 0x4c, 0x89, 0xe0, //0x0000907c movq %r12, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000907f movq $-48(%rbp), %r13 + 0xe9, 0x5b, 0x05, 0x00, 0x00, //0x00009083 jmp LBB36_155 + //0x00009088 LBB36_23 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00009088 cmpl $10000, %r11d + 0x4c, 0x89, 0xc9, //0x0000908f movq %r9, %rcx + 0x48, 0x83, 0xd9, 0x00, //0x00009092 sbbq $0, %rcx + 0x48, 0x83, 0xc1, 0x05, //0x00009096 addq $5, %rcx + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x0000909a cmpl $10000, %r11d + 0x0f, 0x83, 0x97, 0xfa, 0xff, 0xff, //0x000090a1 jae LBB36_17 + 0x48, 0x89, 0xc8, //0x000090a7 movq %rcx, %rax + 0xe9, 0x63, 0xfc, 0xff, 0xff, //0x000090aa jmp LBB36_25 + //0x000090af LBB36_151 + 0x4c, 0x01, 0xca, //0x000090af addq %r9, %rdx + //0x000090b2 LBB36_152 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000090b2 movq $-48(%rbp), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000090b6 .p2align 4, 0x90 + //0x000090c0 LBB36_153 + 0xc6, 0x02, 0x30, //0x000090c0 movb $48, (%rdx) + 0x48, 0x83, 0xc2, 0x01, //0x000090c3 addq $1, %rdx + 0x4c, 0x39, 0xe2, //0x000090c7 cmpq %r12, %rdx + 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000090ca jb LBB36_153 + 0x4c, 0x89, 0xe0, //0x000090d0 movq %r12, %rax + 0xe9, 0x0b, 0x05, 0x00, 0x00, //0x000090d3 jmp LBB36_155 + //0x000090d8 LBB36_76 + 0x48, 0x8b, 0x55, 0xd0, //0x000090d8 movq $-48(%rbp), %rdx + 0x49, 0x8d, 0x1c, 0x12, //0x000090dc leaq (%r10,%rdx), %rbx + 0x48, 0x81, 0xc3, 0xe2, 0x01, 0x00, 0x00, //0x000090e0 addq $482, %rbx + 0x49, 0x83, 0xe4, 0xfc, //0x000090e7 andq $-4, %r12 + 0x49, 0xf7, 0xdc, //0x000090eb negq %r12 + 0x31, 0xd2, //0x000090ee xorl %edx, %edx + 0xc5, 0xfd, 0x6f, 0x05, 0x28, 0xf6, 0xff, 0xff, //0x000090f0 vmovdqa $-2520(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + //0x000090f8 LBB36_77 + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xfe, 0xff, 0xff, //0x000090f8 vmovdqu %ymm0, $-480(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xfe, 0xff, 0xff, //0x00009101 vmovdqu %ymm0, $-448(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xfe, 0xff, 0xff, //0x0000910a vmovdqu %ymm0, $-416(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x80, 0xfe, 0xff, 0xff, //0x00009113 vmovdqu %ymm0, $-384(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xa0, 0xfe, 0xff, 0xff, //0x0000911c vmovdqu %ymm0, $-352(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xc0, 0xfe, 0xff, 0xff, //0x00009125 vmovdqu %ymm0, $-320(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0xe0, 0xfe, 0xff, 0xff, //0x0000912e vmovdqu %ymm0, $-288(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x00, 0xff, 0xff, 0xff, //0x00009137 vmovdqu %ymm0, $-256(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00009140 vmovdqu %ymm0, $-224(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00009149 vmovdqu %ymm0, $-192(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00009152 vmovdqu %ymm0, $-160(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0x80, //0x0000915b vmovdqu %ymm0, $-128(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xa0, //0x00009161 vmovdqu %ymm0, $-96(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xc0, //0x00009167 vmovdqu %ymm0, $-64(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x44, 0x13, 0xe0, //0x0000916d vmovdqu %ymm0, $-32(%rbx,%rdx) + 0xc5, 0xfe, 0x7f, 0x04, 0x13, //0x00009173 vmovdqu %ymm0, (%rbx,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x02, 0x00, 0x00, //0x00009178 addq $512, %rdx + 0x49, 0x83, 0xc4, 0x04, //0x0000917f addq $4, %r12 + 0x0f, 0x85, 0x6f, 0xff, 0xff, 0xff, //0x00009183 jne LBB36_77 + //0x00009189 LBB36_78 + 0x4d, 0x85, 0xff, //0x00009189 testq %r15, %r15 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x0000918c je LBB36_81 + 0x4c, 0x01, 0xd2, //0x00009192 addq %r10, %rdx + 0x48, 0x8b, 0x75, 0xd0, //0x00009195 movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf2, //0x00009199 addq %rsi, %rdx + 0x48, 0x83, 0xc2, 0x62, //0x0000919c addq $98, %rdx + 0x49, 0xc1, 0xe7, 0x07, //0x000091a0 shlq $7, %r15 + 0x31, 0xf6, //0x000091a4 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0x72, 0xf5, 0xff, 0xff, //0x000091a6 vmovdqa $-2702(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + //0x000091ae LBB36_80 + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xa0, //0x000091ae vmovdqu %ymm0, $-96(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xc0, //0x000091b4 vmovdqu %ymm0, $-64(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x44, 0x32, 0xe0, //0x000091ba vmovdqu %ymm0, $-32(%rdx,%rsi) + 0xc5, 0xfe, 0x7f, 0x04, 0x32, //0x000091c0 vmovdqu %ymm0, (%rdx,%rsi) + 0x48, 0x83, 0xee, 0x80, //0x000091c5 subq $-128, %rsi + 0x49, 0x39, 0xf7, //0x000091c9 cmpq %rsi, %r15 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000091cc jne LBB36_80 + //0x000091d2 LBB36_81 + 0x49, 0x89, 0xfc, //0x000091d2 movq %rdi, %r12 + 0x49, 0x01, 0xcc, //0x000091d5 addq %rcx, %r12 + 0x49, 0x39, 0xcb, //0x000091d8 cmpq %rcx, %r11 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x000091db je LBB36_84 + //0x000091e1 LBB36_82 + 0x44, 0x01, 0xc9, //0x000091e1 addl %r9d, %ecx + 0xf7, 0xd9, //0x000091e4 negl %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000091e6 .p2align 4, 0x90 + //0x000091f0 LBB36_83 + 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000091f0 movb $48, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x000091f5 addq $1, %r12 + 0x83, 0xc1, 0xff, //0x000091f9 addl $-1, %ecx + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000091fc jne LBB36_83 + //0x00009202 LBB36_84 + 0x4f, 0x8d, 0x3c, 0x04, //0x00009202 leaq (%r12,%r8), %r15 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00009206 cmpl $10000, %eax + 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x0000920b jb LBB36_85 + 0x89, 0xc2, //0x00009211 movl %eax, %edx + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00009213 movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xda, //0x00009218 imulq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x0000921c shrq $45, %rbx + 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00009220 imull $-10000, %ebx, %edx + 0x01, 0xc2, //0x00009226 addl %eax, %edx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00009228 je LBB36_87 + 0x89, 0xd0, //0x0000922e movl %edx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00009230 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00009237 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x0000923b imull $100, %eax, %esi + 0x29, 0xf2, //0x0000923e subl %esi, %edx + 0x48, 0x8d, 0x35, 0x99, 0x3f, 0x00, 0x00, //0x00009240 leaq $16281(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00009247 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000924b movw %dx, $-2(%r15) + 0x0f, 0xb7, 0x04, 0x46, //0x00009250 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00009254 movw %ax, $-4(%r15) + 0x45, 0x31, 0xdb, //0x00009259 xorl %r11d, %r11d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000925c jmp LBB36_89 + //0x00009261 LBB36_85 + 0x45, 0x31, 0xdb, //0x00009261 xorl %r11d, %r11d + 0x4c, 0x89, 0xfa, //0x00009264 movq %r15, %rdx + 0x89, 0xc3, //0x00009267 movl %eax, %ebx + 0x83, 0xfb, 0x64, //0x00009269 cmpl $100, %ebx + 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000926c jae LBB36_92 + //0x00009272 LBB36_91 + 0x89, 0xd8, //0x00009272 movl %ebx, %eax + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00009274 jmp LBB36_94 + //0x00009279 LBB36_87 + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00009279 movl $4, %r11d + //0x0000927f LBB36_89 + 0x49, 0x8d, 0x57, 0xfc, //0x0000927f leaq $-4(%r15), %rdx + 0x83, 0xfb, 0x64, //0x00009283 cmpl $100, %ebx + 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00009286 jb LBB36_91 + //0x0000928c LBB36_92 + 0x48, 0x83, 0xc2, 0xff, //0x0000928c addq $-1, %rdx + 0x48, 0x8d, 0x35, 0x49, 0x3f, 0x00, 0x00, //0x00009290 leaq $16201(%rip), %rsi /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009297 .p2align 4, 0x90 + //0x000092a0 LBB36_93 + 0x89, 0xd8, //0x000092a0 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x000092a2 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x000092a9 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x000092ad imull $100, %eax, %edi + 0x89, 0xd9, //0x000092b0 movl %ebx, %ecx + 0x29, 0xf9, //0x000092b2 subl %edi, %ecx + 0x0f, 0xb7, 0x0c, 0x4e, //0x000092b4 movzwl (%rsi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xff, //0x000092b8 movw %cx, $-1(%rdx) + 0x48, 0x83, 0xc2, 0xfe, //0x000092bc addq $-2, %rdx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000092c0 cmpl $9999, %ebx + 0x89, 0xc3, //0x000092c6 movl %eax, %ebx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000092c8 ja LBB36_93 + //0x000092ce LBB36_94 + 0x83, 0xf8, 0x0a, //0x000092ce cmpl $10, %eax + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000092d1 jb LBB36_96 + 0x89, 0xc0, //0x000092d7 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x00, 0x3f, 0x00, 0x00, //0x000092d9 leaq $16128(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000092e0 movzwl (%rcx,%rax,2), %eax + 0x4d, 0x89, 0xe2, //0x000092e4 movq %r12, %r10 + 0x66, 0x41, 0x89, 0x04, 0x24, //0x000092e7 movw %ax, (%r12) + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000092ec jmp LBB36_97 + //0x000092f1 LBB36_96 + 0x04, 0x30, //0x000092f1 addb $48, %al + 0x4d, 0x89, 0xe2, //0x000092f3 movq %r12, %r10 + 0x41, 0x88, 0x04, 0x24, //0x000092f6 movb %al, (%r12) + //0x000092fa LBB36_97 + 0x4d, 0x29, 0xdf, //0x000092fa subq %r11, %r15 + 0x4d, 0x29, 0xd8, //0x000092fd subq %r11, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x00009300 addq $1, %r8 + 0x43, 0x8d, 0x04, 0x33, //0x00009304 leal (%r11,%r14), %eax + 0xb1, 0x01, //0x00009308 movb $1, %cl + 0x28, 0xc1, //0x0000930a subb %al, %cl + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000930c movl $1, %edx + 0x44, 0x29, 0xf2, //0x00009311 subl %r14d, %edx + 0x44, 0x29, 0xda, //0x00009314 subl %r11d, %edx + 0x47, 0x8d, 0x24, 0x1e, //0x00009317 leal (%r14,%r11), %r12d + 0x41, 0x83, 0xc4, 0xfe, //0x0000931b addl $-2, %r12d + 0x45, 0x01, 0xde, //0x0000931f addl %r11d, %r14d + 0x41, 0x83, 0xc6, 0xff, //0x00009322 addl $-1, %r14d + 0x31, 0xdb, //0x00009326 xorl %ebx, %ebx + 0x44, 0x89, 0xe6, //0x00009328 movl %r12d, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000932b .p2align 4, 0x90 + //0x00009330 LBB36_98 + 0x80, 0xc1, 0x03, //0x00009330 addb $3, %cl + 0x83, 0xc6, 0x01, //0x00009333 addl $1, %esi + 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00009336 cmpb $48, $-1(%r15,%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x0000933c leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00009340 je LBB36_98 + 0x49, 0x8d, 0x04, 0x1f, //0x00009346 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000934a addq $1, %rax + 0x45, 0x85, 0xc9, //0x0000934e testl %r9d, %r9d + 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00009351 jle LBB36_100 + 0x45, 0x29, 0xdd, //0x00009357 subl %r11d, %r13d + 0x42, 0x8d, 0x3c, 0x2b, //0x0000935a leal (%rbx,%r13), %edi + 0x83, 0xc7, 0x01, //0x0000935e addl $1, %edi + 0x41, 0x39, 0xf9, //0x00009361 cmpl %edi, %r9d + 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00009364 jge LBB36_102 + 0x83, 0xc2, 0xff, //0x0000936a addl $-1, %edx + 0x48, 0x63, 0xc2, //0x0000936d movslq %edx, %rax + 0x48, 0x8d, 0x34, 0x18, //0x00009370 leaq (%rax,%rbx), %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00009374 addq $1, %rsi + 0x85, 0xf6, //0x00009378 testl %esi, %esi + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000937a movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000937e jle LBB36_120 + 0x41, 0x89, 0xf0, //0x00009384 movl %esi, %r8d + 0x49, 0x8d, 0x50, 0xff, //0x00009387 leaq $-1(%r8), %rdx + 0x48, 0x83, 0xfa, 0x03, //0x0000938b cmpq $3, %rdx + 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000938f jae LBB36_121 + 0x31, 0xd2, //0x00009395 xorl %edx, %edx + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00009397 jmp LBB36_117 + //0x0000939c LBB36_100 + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000939c movq $-48(%rbp), %r13 + 0xe9, 0x3e, 0x02, 0x00, 0x00, //0x000093a0 jmp LBB36_155 + //0x000093a5 LBB36_102 + 0x45, 0x89, 0xf6, //0x000093a5 movl %r14d, %r14d + 0x49, 0x29, 0xde, //0x000093a8 subq %rbx, %r14 + 0x45, 0x85, 0xf6, //0x000093ab testl %r14d, %r14d + 0x4c, 0x8b, 0x6d, 0xd0, //0x000093ae movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0x2b, 0x02, 0x00, 0x00, //0x000093b2 jle LBB36_155 + 0x45, 0x89, 0xe3, //0x000093b8 movl %r12d, %r11d + 0x4c, 0x89, 0xd9, //0x000093bb movq %r11, %rcx + 0x48, 0x29, 0xd9, //0x000093be subq %rbx, %rcx + 0x31, 0xd2, //0x000093c1 xorl %edx, %edx + 0x83, 0xf9, 0x7f, //0x000093c3 cmpl $127, %ecx + 0x0f, 0x82, 0x04, 0x02, 0x00, 0x00, //0x000093c6 jb LBB36_112 + 0x49, 0x29, 0xdb, //0x000093cc subq %rbx, %r11 + 0x41, 0x89, 0xc9, //0x000093cf movl %ecx, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x000093d2 addq $1, %r9 + 0x4c, 0x89, 0xca, //0x000093d6 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0x80, //0x000093d9 andq $-128, %rdx + 0x4d, 0x01, 0xc2, //0x000093dd addq %r8, %r10 + 0x89, 0xf0, //0x000093e0 movl %esi, %eax + 0x48, 0x83, 0xc0, 0x01, //0x000093e2 addq $1, %rax + 0x48, 0x83, 0xe0, 0x80, //0x000093e6 andq $-128, %rax + 0x4c, 0x01, 0xd0, //0x000093ea addq %r10, %rax + 0x48, 0x8d, 0x4a, 0x80, //0x000093ed leaq $-128(%rdx), %rcx + 0x49, 0x89, 0xc8, //0x000093f1 movq %rcx, %r8 + 0x49, 0xc1, 0xe8, 0x07, //0x000093f4 shrq $7, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000093f8 addq $1, %r8 + 0x48, 0x81, 0xf9, 0x80, 0x01, 0x00, 0x00, //0x000093fc cmpq $384, %rcx + 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x00009403 jae LBB36_106 + 0x31, 0xc9, //0x00009409 xorl %ecx, %ecx + 0xe9, 0x3f, 0x01, 0x00, 0x00, //0x0000940b jmp LBB36_108 + //0x00009410 LBB36_121 + 0x83, 0xe6, 0xfc, //0x00009410 andl $-4, %esi + 0x48, 0xf7, 0xde, //0x00009413 negq %rsi + 0x31, 0xd2, //0x00009416 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009418 .p2align 4, 0x90 + //0x00009420 LBB36_122 + 0x49, 0x8d, 0x3c, 0x17, //0x00009420 leaq (%r15,%rdx), %rdi + 0x8b, 0x44, 0x3b, 0xfd, //0x00009424 movl $-3(%rbx,%rdi), %eax + 0x89, 0x44, 0x3b, 0xfe, //0x00009428 movl %eax, $-2(%rbx,%rdi) + 0x48, 0x83, 0xc2, 0xfc, //0x0000942c addq $-4, %rdx + 0x48, 0x39, 0xd6, //0x00009430 cmpq %rdx, %rsi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009433 jne LBB36_122 + 0x48, 0xf7, 0xda, //0x00009439 negq %rdx + //0x0000943c LBB36_117 + 0x41, 0xf6, 0xc0, 0x03, //0x0000943c testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00009440 je LBB36_120 + 0x0f, 0xb6, 0xf9, //0x00009446 movzbl %cl, %edi + 0x83, 0xe7, 0x03, //0x00009449 andl $3, %edi + 0x48, 0xf7, 0xdf, //0x0000944c negq %rdi + 0x4c, 0x89, 0xf9, //0x0000944f movq %r15, %rcx + 0x48, 0x29, 0xd1, //0x00009452 subq %rdx, %rcx + 0x31, 0xd2, //0x00009455 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009457 .p2align 4, 0x90 + //0x00009460 LBB36_119 + 0x48, 0x8d, 0x34, 0x11, //0x00009460 leaq (%rcx,%rdx), %rsi + 0x0f, 0xb6, 0x04, 0x33, //0x00009464 movzbl (%rbx,%rsi), %eax + 0x88, 0x44, 0x33, 0x01, //0x00009468 movb %al, $1(%rbx,%rsi) + 0x48, 0x83, 0xc2, 0xff, //0x0000946c addq $-1, %rdx + 0x48, 0x39, 0xd7, //0x00009470 cmpq %rdx, %rdi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00009473 jne LBB36_119 + //0x00009479 LBB36_120 + 0x49, 0x63, 0xc1, //0x00009479 movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000947c movb $46, (%r10,%rax) + 0x49, 0x8d, 0x04, 0x1f, //0x00009481 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00009485 addq $2, %rax + 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00009489 jmp LBB36_155 + //0x0000948e LBB36_106 + 0x44, 0x89, 0xde, //0x0000948e movl %r11d, %esi + 0x48, 0x83, 0xc6, 0x01, //0x00009491 addq $1, %rsi + 0x48, 0x83, 0xe6, 0x80, //0x00009495 andq $-128, %rsi + 0x48, 0x83, 0xc6, 0x80, //0x00009499 addq $-128, %rsi + 0x48, 0xc1, 0xee, 0x07, //0x0000949d shrq $7, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x000094a1 addq $1, %rsi + 0x48, 0x83, 0xe6, 0xfc, //0x000094a5 andq $-4, %rsi + 0x48, 0xf7, 0xde, //0x000094a9 negq %rsi + 0x31, 0xc9, //0x000094ac xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0x6a, 0xf2, 0xff, 0xff, //0x000094ae vmovdqa $-3478(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + //0x000094b6 LBB36_107 + 0x49, 0x8d, 0x3c, 0x0f, //0x000094b6 leaq (%r15,%rcx), %rdi + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x01, //0x000094ba vmovdqu %ymm0, $1(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x21, //0x000094c0 vmovdqu %ymm0, $33(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x41, //0x000094c6 vmovdqu %ymm0, $65(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0x61, //0x000094cc vmovdqu %ymm0, $97(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000094d2 vmovdqu %ymm0, $129(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000094db vmovdqu %ymm0, $161(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000094e4 vmovdqu %ymm0, $193(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x000094ed vmovdqu %ymm0, $225(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x01, 0x01, 0x00, 0x00, //0x000094f6 vmovdqu %ymm0, $257(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x21, 0x01, 0x00, 0x00, //0x000094ff vmovdqu %ymm0, $289(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x41, 0x01, 0x00, 0x00, //0x00009508 vmovdqu %ymm0, $321(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x61, 0x01, 0x00, 0x00, //0x00009511 vmovdqu %ymm0, $353(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0x81, 0x01, 0x00, 0x00, //0x0000951a vmovdqu %ymm0, $385(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xa1, 0x01, 0x00, 0x00, //0x00009523 vmovdqu %ymm0, $417(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xc1, 0x01, 0x00, 0x00, //0x0000952c vmovdqu %ymm0, $449(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x84, 0x3b, 0xe1, 0x01, 0x00, 0x00, //0x00009535 vmovdqu %ymm0, $481(%rbx,%rdi) + 0x48, 0x81, 0xc1, 0x00, 0x02, 0x00, 0x00, //0x0000953e addq $512, %rcx + 0x48, 0x83, 0xc6, 0x04, //0x00009545 addq $4, %rsi + 0x0f, 0x85, 0x67, 0xff, 0xff, 0xff, //0x00009549 jne LBB36_107 + //0x0000954f LBB36_108 + 0x48, 0x01, 0xd8, //0x0000954f addq %rbx, %rax + 0x41, 0xf6, 0xc0, 0x03, //0x00009552 testb $3, %r8b + 0x0f, 0x84, 0x5c, 0x00, 0x00, 0x00, //0x00009556 je LBB36_111 + 0x41, 0x83, 0xc3, 0x01, //0x0000955c addl $1, %r11d + 0x41, 0x81, 0xe3, 0x80, 0x01, 0x00, 0x00, //0x00009560 andl $384, %r11d + 0x41, 0x83, 0xc3, 0x80, //0x00009567 addl $-128, %r11d + 0x41, 0xc1, 0xeb, 0x07, //0x0000956b shrl $7, %r11d + 0x41, 0x80, 0xc3, 0x01, //0x0000956f addb $1, %r11b + 0x45, 0x0f, 0xb6, 0xc3, //0x00009573 movzbl %r11b, %r8d + 0x41, 0x83, 0xe0, 0x03, //0x00009577 andl $3, %r8d + 0x49, 0xc1, 0xe0, 0x07, //0x0000957b shlq $7, %r8 + 0x4c, 0x01, 0xf9, //0x0000957f addq %r15, %rcx + 0x48, 0x83, 0xc1, 0x61, //0x00009582 addq $97, %rcx + 0x31, 0xf6, //0x00009586 xorl %esi, %esi + 0xc5, 0xfd, 0x6f, 0x05, 0x90, 0xf1, 0xff, 0xff, //0x00009588 vmovdqa $-3696(%rip), %ymm0 /* LCPI36_0+0(%rip) */ + //0x00009590 LBB36_110 + 0x48, 0x8d, 0x3c, 0x31, //0x00009590 leaq (%rcx,%rsi), %rdi + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xa0, //0x00009594 vmovdqu %ymm0, $-96(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xc0, //0x0000959a vmovdqu %ymm0, $-64(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x44, 0x3b, 0xe0, //0x000095a0 vmovdqu %ymm0, $-32(%rbx,%rdi) + 0xc5, 0xfe, 0x7f, 0x04, 0x3b, //0x000095a6 vmovdqu %ymm0, (%rbx,%rdi) + 0x48, 0x83, 0xee, 0x80, //0x000095ab subq $-128, %rsi + 0x49, 0x39, 0xf0, //0x000095af cmpq %rsi, %r8 + 0x0f, 0x85, 0xd8, 0xff, 0xff, 0xff, //0x000095b2 jne LBB36_110 + //0x000095b8 LBB36_111 + 0x49, 0x39, 0xd1, //0x000095b8 cmpq %rdx, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x000095bb je LBB36_155 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000095c1 .p2align 4, 0x90 + //0x000095d0 LBB36_112 + 0xc6, 0x00, 0x30, //0x000095d0 movb $48, (%rax) + 0x48, 0x83, 0xc0, 0x01, //0x000095d3 addq $1, %rax + 0x83, 0xc2, 0x01, //0x000095d7 addl $1, %edx + 0x44, 0x39, 0xf2, //0x000095da cmpl %r14d, %edx + 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x000095dd jl LBB36_112 + //0x000095e3 LBB36_155 + 0x44, 0x29, 0xe8, //0x000095e3 subl %r13d, %eax + //0x000095e6 LBB36_156 + 0x48, 0x83, 0xc4, 0x10, //0x000095e6 addq $16, %rsp + 0x5b, //0x000095ea popq %rbx + 0x41, 0x5c, //0x000095eb popq %r12 + 0x41, 0x5d, //0x000095ed popq %r13 + 0x41, 0x5e, //0x000095ef popq %r14 + 0x41, 0x5f, //0x000095f1 popq %r15 + 0x5d, //0x000095f3 popq %rbp + 0xc5, 0xf8, 0x77, //0x000095f4 vzeroupper + 0xc3, //0x000095f7 retq + //0x000095f8 LBB36_1 + 0x31, 0xc0, //0x000095f8 xorl %eax, %eax + 0xe9, 0xe7, 0xff, 0xff, 0xff, //0x000095fa jmp LBB36_156 + //0x000095ff LBB36_5 + 0x4c, 0x89, 0x4d, 0xc8, //0x000095ff movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x00009603 movq %rdi, $-48(%rbp) + 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x00009607 movl $-149, %r8d + 0x41, 0x89, 0xc3, //0x0000960d movl %eax, %r11d + 0xe9, 0xc8, 0xf1, 0xff, 0xff, //0x00009610 jmp LBB36_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009615 .p2align 4, 0x00 + //0x00009620 LCPI37_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x00009620 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x00009630 LCPI37_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00009630 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00009640 LCPI37_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00009640 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x00009650 LCPI37_6 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00009650 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00009660 LCPI37_7 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00009660 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00009670 LCPI37_8 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00009670 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00009680 .p2align 5, 0x00 + //0x00009680 LCPI37_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00009680 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, //0x00009690 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x000096a0 LCPI37_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x000096a0 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, //0x000096b0 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x000096c0 LCPI37_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000096c0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x000096d0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x000096e0 .p2align 4, 0x90 + //0x000096e0 _to_lower + 0x55, //0x000096e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000096e1 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x000096e4 cmpq $16, %rdx + 0x0f, 0x82, 0xec, 0x00, 0x00, 0x00, //0x000096e8 jb LBB37_1 + 0x4c, 0x8d, 0x42, 0xf0, //0x000096ee leaq $-16(%rdx), %r8 + 0x41, 0xf6, 0xc0, 0x10, //0x000096f2 testb $16, %r8b + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x000096f6 je LBB37_6 + 0x49, 0x83, 0xf8, 0x10, //0x000096fc cmpq $16, %r8 + 0x0f, 0x83, 0x54, 0x00, 0x00, 0x00, //0x00009700 jae LBB37_8 + //0x00009706 LBB37_2 + 0x4d, 0x85, 0xc0, //0x00009706 testq %r8, %r8 + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00009709 jne LBB37_3 + 0xe9, 0x89, 0x01, 0x00, 0x00, //0x0000970f jmp LBB37_28 + //0x00009714 LBB37_6 + 0xc5, 0xfa, 0x6f, 0x06, //0x00009714 vmovdqu (%rsi), %xmm0 + 0xc5, 0xf9, 0x64, 0x0d, 0x00, 0xff, 0xff, 0xff, //0x00009718 vpcmpgtb $-256(%rip), %xmm0, %xmm1 /* LCPI37_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0x08, 0xff, 0xff, 0xff, //0x00009720 vmovdqa $-248(%rip), %xmm2 /* LCPI37_1+0(%rip) */ + 0xc5, 0xe9, 0x64, 0xd0, //0x00009728 vpcmpgtb %xmm0, %xmm2, %xmm2 + 0xc5, 0xe9, 0xdb, 0xc9, //0x0000972c vpand %xmm1, %xmm2, %xmm1 + 0xc5, 0xf1, 0xdb, 0x0d, 0x08, 0xff, 0xff, 0xff, //0x00009730 vpand $-248(%rip), %xmm1, %xmm1 /* LCPI37_2+0(%rip) */ + 0xc5, 0xf1, 0x71, 0xf1, 0x05, //0x00009738 vpsllw $5, %xmm1, %xmm1 + 0xc5, 0xf1, 0xfc, 0xc0, //0x0000973d vpaddb %xmm0, %xmm1, %xmm0 + 0xc5, 0xfa, 0x7f, 0x07, //0x00009741 vmovdqu %xmm0, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x00009745 addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x00009749 addq $16, %rdi + 0x4c, 0x89, 0xc2, //0x0000974d movq %r8, %rdx + 0x49, 0x83, 0xf8, 0x10, //0x00009750 cmpq $16, %r8 + 0x0f, 0x82, 0xac, 0xff, 0xff, 0xff, //0x00009754 jb LBB37_2 + //0x0000975a LBB37_8 + 0xc5, 0xf9, 0x6f, 0x05, 0xbe, 0xfe, 0xff, 0xff, //0x0000975a vmovdqa $-322(%rip), %xmm0 /* LCPI37_0+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xc6, 0xfe, 0xff, 0xff, //0x00009762 vmovdqa $-314(%rip), %xmm1 /* LCPI37_1+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xce, 0xfe, 0xff, 0xff, //0x0000976a vmovdqa $-306(%rip), %xmm2 /* LCPI37_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009772 .p2align 4, 0x90 + //0x00009780 LBB37_9 + 0xc5, 0xfa, 0x6f, 0x1e, //0x00009780 vmovdqu (%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x00009784 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x00009788 vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x0000978c vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x00009790 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x00009794 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x00009799 vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1f, //0x0000979d vmovdqu %xmm3, (%rdi) + 0xc5, 0xfa, 0x6f, 0x5e, 0x10, //0x000097a1 vmovdqu $16(%rsi), %xmm3 + 0xc5, 0xe1, 0x64, 0xe0, //0x000097a6 vpcmpgtb %xmm0, %xmm3, %xmm4 + 0xc5, 0xf1, 0x64, 0xeb, //0x000097aa vpcmpgtb %xmm3, %xmm1, %xmm5 + 0xc5, 0xd1, 0xdb, 0xe4, //0x000097ae vpand %xmm4, %xmm5, %xmm4 + 0xc5, 0xd9, 0xdb, 0xe2, //0x000097b2 vpand %xmm2, %xmm4, %xmm4 + 0xc5, 0xd9, 0x71, 0xf4, 0x05, //0x000097b6 vpsllw $5, %xmm4, %xmm4 + 0xc5, 0xd9, 0xfc, 0xdb, //0x000097bb vpaddb %xmm3, %xmm4, %xmm3 + 0xc5, 0xfa, 0x7f, 0x5f, 0x10, //0x000097bf vmovdqu %xmm3, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x000097c4 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x000097c8 addq $32, %rdi + 0x48, 0x83, 0xc2, 0xe0, //0x000097cc addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x0f, //0x000097d0 cmpq $15, %rdx + 0x0f, 0x87, 0xa6, 0xff, 0xff, 0xff, //0x000097d4 ja LBB37_9 + //0x000097da LBB37_1 + 0x49, 0x89, 0xd0, //0x000097da movq %rdx, %r8 + 0x4d, 0x85, 0xc0, //0x000097dd testq %r8, %r8 + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x000097e0 je LBB37_28 + //0x000097e6 LBB37_3 + 0x49, 0x83, 0xf8, 0x10, //0x000097e6 cmpq $16, %r8 + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000097ea jb LBB37_4 + 0x4a, 0x8d, 0x04, 0x06, //0x000097f0 leaq (%rsi,%r8), %rax + 0x48, 0x39, 0xc7, //0x000097f4 cmpq %rax, %rdi + 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000097f7 jae LBB37_12 + 0x4a, 0x8d, 0x04, 0x07, //0x000097fd leaq (%rdi,%r8), %rax + 0x48, 0x39, 0xc6, //0x00009801 cmpq %rax, %rsi + 0x0f, 0x83, 0x98, 0x00, 0x00, 0x00, //0x00009804 jae LBB37_12 + //0x0000980a LBB37_4 + 0x49, 0x89, 0xf3, //0x0000980a movq %rsi, %r11 + 0x4d, 0x89, 0xc1, //0x0000980d movq %r8, %r9 + 0x48, 0x89, 0xfa, //0x00009810 movq %rdi, %rdx + //0x00009813 LBB37_17 + 0x41, 0xf6, 0xc1, 0x01, //0x00009813 testb $1, %r9b + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00009817 jne LBB37_24 + 0x4d, 0x89, 0xc8, //0x0000981d movq %r9, %r8 + 0x49, 0x83, 0xf9, 0x01, //0x00009820 cmpq $1, %r9 + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00009824 jne LBB37_26 + 0xe9, 0x6e, 0x00, 0x00, 0x00, //0x0000982a jmp LBB37_28 + //0x0000982f LBB37_24 + 0x41, 0x0f, 0xb6, 0x03, //0x0000982f movzbl (%r11), %eax + 0x8d, 0x70, 0xbf, //0x00009833 leal $-65(%rax), %esi + 0x8d, 0x78, 0x20, //0x00009836 leal $32(%rax), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00009839 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x0000983d movzbl %dil, %esi + 0x0f, 0x43, 0xf0, //0x00009841 cmovael %eax, %esi + 0x4d, 0x8d, 0x41, 0xff, //0x00009844 leaq $-1(%r9), %r8 + 0x40, 0x88, 0x32, //0x00009848 movb %sil, (%rdx) + 0x49, 0x83, 0xc3, 0x01, //0x0000984b addq $1, %r11 + 0x48, 0x83, 0xc2, 0x01, //0x0000984f addq $1, %rdx + 0x49, 0x83, 0xf9, 0x01, //0x00009853 cmpq $1, %r9 + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00009857 je LBB37_28 + //0x0000985d LBB37_26 + 0x31, 0xf6, //0x0000985d xorl %esi, %esi + 0x90, //0x0000985f .p2align 4, 0x90 + //0x00009860 LBB37_27 + 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00009860 movzbl (%r11,%rsi), %edi + 0x8d, 0x47, 0xbf, //0x00009865 leal $-65(%rdi), %eax + 0x8d, 0x4f, 0x20, //0x00009868 leal $32(%rdi), %ecx + 0x3c, 0x1a, //0x0000986b cmpb $26, %al + 0x0f, 0xb6, 0xc1, //0x0000986d movzbl %cl, %eax + 0x0f, 0x43, 0xc7, //0x00009870 cmovael %edi, %eax + 0x88, 0x04, 0x32, //0x00009873 movb %al, (%rdx,%rsi) + 0x41, 0x0f, 0xb6, 0x44, 0x33, 0x01, //0x00009876 movzbl $1(%r11,%rsi), %eax + 0x8d, 0x48, 0xbf, //0x0000987c leal $-65(%rax), %ecx + 0x8d, 0x78, 0x20, //0x0000987f leal $32(%rax), %edi + 0x80, 0xf9, 0x1a, //0x00009882 cmpb $26, %cl + 0x40, 0x0f, 0xb6, 0xcf, //0x00009885 movzbl %dil, %ecx + 0x0f, 0x43, 0xc8, //0x00009889 cmovael %eax, %ecx + 0x88, 0x4c, 0x32, 0x01, //0x0000988c movb %cl, $1(%rdx,%rsi) + 0x48, 0x83, 0xc6, 0x02, //0x00009890 addq $2, %rsi + 0x49, 0x39, 0xf0, //0x00009894 cmpq %rsi, %r8 + 0x0f, 0x85, 0xc3, 0xff, 0xff, 0xff, //0x00009897 jne LBB37_27 + //0x0000989d LBB37_28 + 0x5d, //0x0000989d popq %rbp + 0xc5, 0xf8, 0x77, //0x0000989e vzeroupper + 0xc3, //0x000098a1 retq + //0x000098a2 LBB37_12 + 0x49, 0x81, 0xf8, 0x80, 0x00, 0x00, 0x00, //0x000098a2 cmpq $128, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x000098a9 jae LBB37_19 + 0x31, 0xc0, //0x000098af xorl %eax, %eax + 0xe9, 0xd3, 0x00, 0x00, 0x00, //0x000098b1 jmp LBB37_14 + //0x000098b6 LBB37_19 + 0x4c, 0x89, 0xc0, //0x000098b6 movq %r8, %rax + 0x48, 0x83, 0xe0, 0x80, //0x000098b9 andq $-128, %rax + 0x31, 0xc9, //0x000098bd xorl %ecx, %ecx + 0xc5, 0xfd, 0x6f, 0x05, 0xb9, 0xfd, 0xff, 0xff, //0x000098bf vmovdqa $-583(%rip), %ymm0 /* LCPI37_3+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0xd1, 0xfd, 0xff, 0xff, //0x000098c7 vmovdqa $-559(%rip), %ymm1 /* LCPI37_4+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x15, 0xe9, 0xfd, 0xff, 0xff, //0x000098cf vmovdqa $-535(%rip), %ymm2 /* LCPI37_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000098d7 .p2align 4, 0x90 + //0x000098e0 LBB37_20 + 0xc5, 0xfe, 0x6f, 0x1c, 0x0e, //0x000098e0 vmovdqu (%rsi,%rcx), %ymm3 + 0xc5, 0xfe, 0x6f, 0x64, 0x0e, 0x20, //0x000098e5 vmovdqu $32(%rsi,%rcx), %ymm4 + 0xc5, 0xfe, 0x6f, 0x6c, 0x0e, 0x40, //0x000098eb vmovdqu $64(%rsi,%rcx), %ymm5 + 0xc5, 0xfe, 0x6f, 0x74, 0x0e, 0x60, //0x000098f1 vmovdqu $96(%rsi,%rcx), %ymm6 + 0xc5, 0xe5, 0xfc, 0xf8, //0x000098f7 vpaddb %ymm0, %ymm3, %ymm7 + 0xc5, 0x5d, 0xfc, 0xc0, //0x000098fb vpaddb %ymm0, %ymm4, %ymm8 + 0xc5, 0x55, 0xfc, 0xc8, //0x000098ff vpaddb %ymm0, %ymm5, %ymm9 + 0xc5, 0x4d, 0xfc, 0xd0, //0x00009903 vpaddb %ymm0, %ymm6, %ymm10 + 0xc5, 0x45, 0xda, 0xd9, //0x00009907 vpminub %ymm1, %ymm7, %ymm11 + 0xc5, 0xa5, 0x74, 0xff, //0x0000990b vpcmpeqb %ymm7, %ymm11, %ymm7 + 0xc5, 0x3d, 0xda, 0xd9, //0x0000990f vpminub %ymm1, %ymm8, %ymm11 + 0xc4, 0x41, 0x3d, 0x74, 0xc3, //0x00009913 vpcmpeqb %ymm11, %ymm8, %ymm8 + 0xc5, 0x35, 0xda, 0xd9, //0x00009918 vpminub %ymm1, %ymm9, %ymm11 + 0xc4, 0x41, 0x35, 0x74, 0xcb, //0x0000991c vpcmpeqb %ymm11, %ymm9, %ymm9 + 0xc5, 0x2d, 0xda, 0xd9, //0x00009921 vpminub %ymm1, %ymm10, %ymm11 + 0xc4, 0x41, 0x2d, 0x74, 0xd3, //0x00009925 vpcmpeqb %ymm11, %ymm10, %ymm10 + 0xc5, 0x65, 0xfc, 0xda, //0x0000992a vpaddb %ymm2, %ymm3, %ymm11 + 0xc5, 0x5d, 0xfc, 0xe2, //0x0000992e vpaddb %ymm2, %ymm4, %ymm12 + 0xc5, 0x55, 0xfc, 0xea, //0x00009932 vpaddb %ymm2, %ymm5, %ymm13 + 0xc5, 0x4d, 0xfc, 0xf2, //0x00009936 vpaddb %ymm2, %ymm6, %ymm14 + 0xc4, 0xc3, 0x65, 0x4c, 0xdb, 0x70, //0x0000993a vpblendvb %ymm7, %ymm11, %ymm3, %ymm3 + 0xc4, 0xc3, 0x5d, 0x4c, 0xe4, 0x80, //0x00009940 vpblendvb %ymm8, %ymm12, %ymm4, %ymm4 + 0xc4, 0xc3, 0x55, 0x4c, 0xed, 0x90, //0x00009946 vpblendvb %ymm9, %ymm13, %ymm5, %ymm5 + 0xc4, 0xc3, 0x4d, 0x4c, 0xf6, 0xa0, //0x0000994c vpblendvb %ymm10, %ymm14, %ymm6, %ymm6 + 0xc5, 0xfe, 0x7f, 0x1c, 0x0f, //0x00009952 vmovdqu %ymm3, (%rdi,%rcx) + 0xc5, 0xfe, 0x7f, 0x64, 0x0f, 0x20, //0x00009957 vmovdqu %ymm4, $32(%rdi,%rcx) + 0xc5, 0xfe, 0x7f, 0x6c, 0x0f, 0x40, //0x0000995d vmovdqu %ymm5, $64(%rdi,%rcx) + 0xc5, 0xfe, 0x7f, 0x74, 0x0f, 0x60, //0x00009963 vmovdqu %ymm6, $96(%rdi,%rcx) + 0x48, 0x83, 0xe9, 0x80, //0x00009969 subq $-128, %rcx + 0x48, 0x39, 0xc8, //0x0000996d cmpq %rcx, %rax + 0x0f, 0x85, 0x6a, 0xff, 0xff, 0xff, //0x00009970 jne LBB37_20 + 0x49, 0x39, 0xc0, //0x00009976 cmpq %rax, %r8 + 0x0f, 0x84, 0x1e, 0xff, 0xff, 0xff, //0x00009979 je LBB37_28 + 0x41, 0xf6, 0xc0, 0x70, //0x0000997f testb $112, %r8b + 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00009983 je LBB37_23 + //0x00009989 LBB37_14 + 0x4d, 0x89, 0xc2, //0x00009989 movq %r8, %r10 + 0x49, 0x83, 0xe2, 0xf0, //0x0000998c andq $-16, %r10 + 0x4e, 0x8d, 0x1c, 0x16, //0x00009990 leaq (%rsi,%r10), %r11 + 0x45, 0x89, 0xc1, //0x00009994 movl %r8d, %r9d + 0x41, 0x83, 0xe1, 0x0f, //0x00009997 andl $15, %r9d + 0x4a, 0x8d, 0x14, 0x17, //0x0000999b leaq (%rdi,%r10), %rdx + 0xc5, 0xf9, 0x6f, 0x05, 0xa9, 0xfc, 0xff, 0xff, //0x0000999f vmovdqa $-855(%rip), %xmm0 /* LCPI37_6+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x0d, 0xb1, 0xfc, 0xff, 0xff, //0x000099a7 vmovdqa $-847(%rip), %xmm1 /* LCPI37_7+0(%rip) */ + 0xc5, 0xf9, 0x6f, 0x15, 0xb9, 0xfc, 0xff, 0xff, //0x000099af vmovdqa $-839(%rip), %xmm2 /* LCPI37_8+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000099b7 .p2align 4, 0x90 + //0x000099c0 LBB37_15 + 0xc5, 0xfa, 0x6f, 0x1c, 0x06, //0x000099c0 vmovdqu (%rsi,%rax), %xmm3 + 0xc5, 0xe1, 0xfc, 0xe0, //0x000099c5 vpaddb %xmm0, %xmm3, %xmm4 + 0xc5, 0xd9, 0xda, 0xe9, //0x000099c9 vpminub %xmm1, %xmm4, %xmm5 + 0xc5, 0xd9, 0x74, 0xe5, //0x000099cd vpcmpeqb %xmm5, %xmm4, %xmm4 + 0xc5, 0xe1, 0xfc, 0xea, //0x000099d1 vpaddb %xmm2, %xmm3, %xmm5 + 0xc4, 0xe3, 0x61, 0x4c, 0xdd, 0x40, //0x000099d5 vpblendvb %xmm4, %xmm5, %xmm3, %xmm3 + 0xc5, 0xfa, 0x7f, 0x1c, 0x07, //0x000099db vmovdqu %xmm3, (%rdi,%rax) + 0x48, 0x83, 0xc0, 0x10, //0x000099e0 addq $16, %rax + 0x49, 0x39, 0xc2, //0x000099e4 cmpq %rax, %r10 + 0x0f, 0x85, 0xd3, 0xff, 0xff, 0xff, //0x000099e7 jne LBB37_15 + 0x4d, 0x39, 0xd0, //0x000099ed cmpq %r10, %r8 + 0x0f, 0x85, 0x1d, 0xfe, 0xff, 0xff, //0x000099f0 jne LBB37_17 + 0xe9, 0xa2, 0xfe, 0xff, 0xff, //0x000099f6 jmp LBB37_28 + //0x000099fb LBB37_23 + 0x48, 0x01, 0xc7, //0x000099fb addq %rax, %rdi + 0x41, 0x83, 0xe0, 0x7f, //0x000099fe andl $127, %r8d + 0x48, 0x01, 0xc6, //0x00009a02 addq %rax, %rsi + 0xe9, 0x00, 0xfe, 0xff, 0xff, //0x00009a05 jmp LBB37_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009a0a .p2align 4, 0x90 + //0x00009a10 _format_significand + 0x55, //0x00009a10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009a11 movq %rsp, %rbp + 0x41, 0x56, //0x00009a14 pushq %r14 + 0x53, //0x00009a16 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00009a17 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00009a1a addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00009a1d movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00009a20 shrq $32, %rax + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00009a24 jne LBB38_2 + 0x45, 0x31, 0xc9, //0x00009a2a xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00009a2d movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00009a30 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009a33 cmpl $10000, %edx + 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00009a39 jae LBB38_8 + //0x00009a3f LBB38_7 + 0x89, 0xd7, //0x00009a3f movl %edx, %edi + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00009a41 jmp LBB38_10 + //0x00009a46 LBB38_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00009a46 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00009a50 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00009a53 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00009a56 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00009a5a imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00009a60 addl %edi, %ecx + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00009a62 je LBB38_3 + 0x89, 0xc8, //0x00009a68 movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00009a6a movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00009a70 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00009a74 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00009a78 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00009a7e subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00009a80 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00009a83 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00009a87 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00009a8b imull $10000, %edi, %edi + 0x29, 0xf8, //0x00009a91 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00009a93 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00009a96 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00009a99 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00009aa0 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00009aa4 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00009aa8 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00009aaa movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00009aae movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00009ab1 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00009ab4 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00009aba shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00009abd imull $100, %edi, %ecx + 0x29, 0xc8, //0x00009ac0 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00009ac2 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x13, 0x37, 0x00, 0x00, //0x00009ac6 leaq $14099(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00009acd movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00009ad2 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00009ad7 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00009adc movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00009ae1 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00009ae6 movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00009aeb movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00009aef movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00009af4 xorl %r9d, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00009af7 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009afb cmpl $10000, %edx + 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00009b01 jb LBB38_7 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00009b07 jmp LBB38_8 + //0x00009b0c LBB38_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00009b0c movl $8, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00009b12 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00009b16 cmpl $10000, %edx + 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00009b1c jb LBB38_7 + //0x00009b22 LBB38_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00009b22 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0xb1, 0x36, 0x00, 0x00, //0x00009b28 leaq $14001(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00009b2f .p2align 4, 0x90 + //0x00009b30 LBB38_9 + 0x89, 0xd7, //0x00009b30 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00009b32 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00009b36 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00009b3a imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00009b40 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00009b42 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00009b49 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00009b4d imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00009b50 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00009b52 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009b57 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00009b5c movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00009b61 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00009b66 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00009b6a cmpl $99999999, %edx + 0x89, 0xfa, //0x00009b70 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00009b72 ja LBB38_9 + //0x00009b78 LBB38_10 + 0x83, 0xff, 0x64, //0x00009b78 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00009b7b jae LBB38_11 + 0x83, 0xff, 0x0a, //0x00009b81 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00009b84 jb LBB38_14 + //0x00009b8a LBB38_13 + 0x89, 0xf8, //0x00009b8a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0x4d, 0x36, 0x00, 0x00, //0x00009b8c leaq $13901(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00009b93 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00009b97 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00009b9c jmp LBB38_15 + //0x00009ba1 LBB38_11 + 0x0f, 0xb7, 0xc7, //0x00009ba1 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00009ba4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00009ba7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00009bad shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00009bb0 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00009bb3 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00009bb5 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x21, 0x36, 0x00, 0x00, //0x00009bb8 leaq $13857(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00009bbf movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00009bc3 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00009bc8 addq $-2, %r14 + 0x89, 0xc7, //0x00009bcc movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00009bce cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00009bd1 jae LBB38_13 + //0x00009bd7 LBB38_14 + 0x40, 0x80, 0xc7, 0x30, //0x00009bd7 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00009bdb movb %dil, (%rsi) + //0x00009bde LBB38_15 + 0x4d, 0x29, 0xc8, //0x00009bde subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00009be1 movq %r8, %rax + 0x5b, //0x00009be4 popq %rbx + 0x41, 0x5e, //0x00009be5 popq %r14 + 0x5d, //0x00009be7 popq %rbp + 0xc3, //0x00009be8 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009be9 .p2align 4, 0x90 + //0x00009bf0 _left_shift + 0x55, //0x00009bf0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009bf1 movq %rsp, %rbp + 0x41, 0x57, //0x00009bf4 pushq %r15 + 0x41, 0x56, //0x00009bf6 pushq %r14 + 0x53, //0x00009bf8 pushq %rbx + 0x89, 0xf1, //0x00009bf9 movl %esi, %ecx + 0x4c, 0x6b, 0xf1, 0x68, //0x00009bfb imulq $104, %rcx, %r14 + 0x48, 0x8d, 0x15, 0xca, 0x8f, 0x00, 0x00, //0x00009bff leaq $36810(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x45, 0x8b, 0x04, 0x16, //0x00009c06 movl (%r14,%rdx), %r8d + 0x4c, 0x8b, 0x1f, //0x00009c0a movq (%rdi), %r11 + 0x4c, 0x63, 0x4f, 0x10, //0x00009c0d movslq $16(%rdi), %r9 + 0x45, 0x89, 0xca, //0x00009c11 movl %r9d, %r10d + 0x4d, 0x85, 0xc9, //0x00009c14 testq %r9, %r9 + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00009c17 je LBB39_1 + 0x49, 0x8d, 0x34, 0x16, //0x00009c1d leaq (%r14,%rdx), %rsi + 0x48, 0x83, 0xc6, 0x04, //0x00009c21 addq $4, %rsi + 0x31, 0xdb, //0x00009c25 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009c27 .p2align 4, 0x90 + //0x00009c30 LBB39_3 + 0x0f, 0xb6, 0x04, 0x1e, //0x00009c30 movzbl (%rsi,%rbx), %eax + 0x84, 0xc0, //0x00009c34 testb %al, %al + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00009c36 je LBB39_10 + 0x41, 0x38, 0x04, 0x1b, //0x00009c3c cmpb %al, (%r11,%rbx) + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00009c40 jne LBB39_5 + 0x48, 0x83, 0xc3, 0x01, //0x00009c46 addq $1, %rbx + 0x49, 0x39, 0xd9, //0x00009c4a cmpq %rbx, %r9 + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00009c4d jne LBB39_3 + 0x44, 0x89, 0xce, //0x00009c53 movl %r9d, %esi + 0x4c, 0x01, 0xf2, //0x00009c56 addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00009c59 cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00009c5e jne LBB39_9 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00009c64 jmp LBB39_10 + //0x00009c69 LBB39_1 + 0x31, 0xf6, //0x00009c69 xorl %esi, %esi + 0x4c, 0x01, 0xf2, //0x00009c6b addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00009c6e cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00009c73 je LBB39_10 + //0x00009c79 LBB39_9 + 0x41, 0x83, 0xc0, 0xff, //0x00009c79 addl $-1, %r8d + //0x00009c7d LBB39_10 + 0x45, 0x85, 0xd2, //0x00009c7d testl %r10d, %r10d + 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00009c80 jle LBB39_25 + 0x43, 0x8d, 0x04, 0x10, //0x00009c86 leal (%r8,%r10), %eax + 0x4c, 0x63, 0xf8, //0x00009c8a movslq %eax, %r15 + 0x41, 0x83, 0xc1, 0xff, //0x00009c8d addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x00009c91 addq $-1, %r15 + 0x31, 0xd2, //0x00009c95 xorl %edx, %edx + 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009c97 movabsq $-3689348814741910323, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ca1 .p2align 4, 0x90 + //0x00009cb0 LBB39_12 + 0x44, 0x89, 0xc8, //0x00009cb0 movl %r9d, %eax + 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00009cb3 movsbq (%r11,%rax), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00009cb8 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x00009cbc shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x00009cbf addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00009cc2 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x00009cc5 mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x00009cc8 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009ccc leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009cd0 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00009cd4 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00009cd7 subq %rbx, %rax + 0x4c, 0x39, 0x7f, 0x08, //0x00009cda cmpq %r15, $8(%rdi) + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x00009cde jbe LBB39_18 + 0x04, 0x30, //0x00009ce4 addb $48, %al + 0x43, 0x88, 0x04, 0x3b, //0x00009ce6 movb %al, (%r11,%r15) + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00009cea jmp LBB39_20 + 0x90, //0x00009cef .p2align 4, 0x90 + //0x00009cf0 LBB39_18 + 0x48, 0x85, 0xc0, //0x00009cf0 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009cf3 je LBB39_20 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009cf9 movl $1, $28(%rdi) + //0x00009d00 LBB39_20 + 0x49, 0x83, 0xfa, 0x02, //0x00009d00 cmpq $2, %r10 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x00009d04 jl LBB39_14 + 0x49, 0x83, 0xc2, 0xff, //0x00009d0a addq $-1, %r10 + 0x4c, 0x8b, 0x1f, //0x00009d0e movq (%rdi), %r11 + 0x41, 0x83, 0xc1, 0xff, //0x00009d11 addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x00009d15 addq $-1, %r15 + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00009d19 jmp LBB39_12 + //0x00009d1e LBB39_14 + 0x48, 0x83, 0xfe, 0x0a, //0x00009d1e cmpq $10, %rsi + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x00009d22 jae LBB39_15 + //0x00009d28 LBB39_25 + 0x48, 0x63, 0x4f, 0x10, //0x00009d28 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x00009d2c movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x00009d2f addq %rcx, %rax + 0x89, 0x47, 0x10, //0x00009d32 movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x00009d35 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x00009d39 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00009d3c ja LBB39_27 + 0x89, 0x4f, 0x10, //0x00009d42 movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x00009d45 movl %ecx, %eax + //0x00009d47 LBB39_27 + 0x44, 0x01, 0x47, 0x14, //0x00009d47 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x00009d4b testl %eax, %eax + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x00009d4d jle LBB39_31 + 0x48, 0x8b, 0x0f, //0x00009d53 movq (%rdi), %rcx + 0x89, 0xc2, //0x00009d56 movl %eax, %edx + 0x48, 0x83, 0xc2, 0x01, //0x00009d58 addq $1, %rdx + 0x83, 0xc0, 0xff, //0x00009d5c addl $-1, %eax + 0x90, //0x00009d5f .p2align 4, 0x90 + //0x00009d60 LBB39_29 + 0x89, 0xc6, //0x00009d60 movl %eax, %esi + 0x80, 0x3c, 0x31, 0x30, //0x00009d62 cmpb $48, (%rcx,%rsi) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00009d66 jne LBB39_33 + 0x89, 0x47, 0x10, //0x00009d6c movl %eax, $16(%rdi) + 0x48, 0x83, 0xc2, 0xff, //0x00009d6f addq $-1, %rdx + 0x83, 0xc0, 0xff, //0x00009d73 addl $-1, %eax + 0x48, 0x83, 0xfa, 0x01, //0x00009d76 cmpq $1, %rdx + 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x00009d7a jg LBB39_29 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00009d80 jmp LBB39_32 + //0x00009d85 LBB39_31 + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00009d85 jne LBB39_33 + //0x00009d8b LBB39_32 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009d8b movl $0, $20(%rdi) + //0x00009d92 LBB39_33 + 0x5b, //0x00009d92 popq %rbx + 0x41, 0x5e, //0x00009d93 popq %r14 + 0x41, 0x5f, //0x00009d95 popq %r15 + 0x5d, //0x00009d97 popq %rbp + 0xc3, //0x00009d98 retq + //0x00009d99 LBB39_15 + 0x45, 0x01, 0xc1, //0x00009d99 addl %r8d, %r9d + 0x49, 0x63, 0xf1, //0x00009d9c movslq %r9d, %rsi + 0x48, 0x83, 0xc6, 0xff, //0x00009d9f addq $-1, %rsi + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00009da3 jmp LBB39_16 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009da8 .p2align 4, 0x90 + //0x00009db0 LBB39_17 + 0x04, 0x30, //0x00009db0 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00009db2 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00009db5 movb %al, (%rbx,%rsi) + //0x00009db8 LBB39_24 + 0x48, 0x83, 0xc6, 0xff, //0x00009db8 addq $-1, %rsi + 0x48, 0x83, 0xf9, 0x09, //0x00009dbc cmpq $9, %rcx + 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00009dc0 jbe LBB39_25 + //0x00009dc6 LBB39_16 + 0x48, 0x89, 0xd1, //0x00009dc6 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00009dc9 movq %rdx, %rax + 0x49, 0xf7, 0xe6, //0x00009dcc mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x00009dcf shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009dd3 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009dd7 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x00009ddb movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x00009dde subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00009de1 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00009de5 ja LBB39_17 + 0x48, 0x85, 0xc0, //0x00009deb testq %rax, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x00009dee je LBB39_24 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009df4 movl $1, $28(%rdi) + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00009dfb jmp LBB39_24 + //0x00009e00 LBB39_5 + 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x00009e00 jl LBB39_9 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x00009e06 jmp LBB39_10 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009e0b .p2align 4, 0x90 + //0x00009e10 _right_shift + 0x55, //0x00009e10 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009e11 movq %rsp, %rbp + 0x53, //0x00009e14 pushq %rbx + 0x89, 0xf1, //0x00009e15 movl %esi, %ecx + 0x44, 0x8b, 0x47, 0x10, //0x00009e17 movl $16(%rdi), %r8d + 0x31, 0xd2, //0x00009e1b xorl %edx, %edx + 0x45, 0x85, 0xc0, //0x00009e1d testl %r8d, %r8d + 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x00009e20 movl $0, %r11d + 0x45, 0x0f, 0x4f, 0xd8, //0x00009e26 cmovgl %r8d, %r11d + 0x31, 0xc0, //0x00009e2a xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x00009e2c .p2align 4, 0x90 + //0x00009e30 LBB40_1 + 0x49, 0x39, 0xd3, //0x00009e30 cmpq %rdx, %r11 + 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00009e33 je LBB40_2 + 0x48, 0x8d, 0x04, 0x80, //0x00009e39 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x00009e3d movq (%rdi), %rsi + 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x00009e40 movsbq (%rsi,%rdx), %rsi + 0x48, 0x8d, 0x04, 0x46, //0x00009e45 leaq (%rsi,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x00009e49 addq $-48, %rax + 0x48, 0x83, 0xc2, 0x01, //0x00009e4d addq $1, %rdx + 0x48, 0x89, 0xc6, //0x00009e51 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009e54 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x00009e57 testq %rsi, %rsi + 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x00009e5a je LBB40_1 + 0x41, 0x89, 0xd3, //0x00009e60 movl %edx, %r11d + //0x00009e63 LBB40_7 + 0x8b, 0x57, 0x14, //0x00009e63 movl $20(%rdi), %edx + 0x44, 0x29, 0xda, //0x00009e66 subl %r11d, %edx + 0x83, 0xc2, 0x01, //0x00009e69 addl $1, %edx + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00009e6c movq $-1, %r9 + 0x49, 0xd3, 0xe1, //0x00009e73 shlq %cl, %r9 + 0x89, 0x57, 0x14, //0x00009e76 movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd1, //0x00009e79 notq %r9 + 0x45, 0x31, 0xd2, //0x00009e7c xorl %r10d, %r10d + 0x45, 0x39, 0xc3, //0x00009e7f cmpl %r8d, %r11d + 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009e82 jge LBB40_10 + 0x4d, 0x63, 0xc3, //0x00009e88 movslq %r11d, %r8 + 0x48, 0x8b, 0x37, //0x00009e8b movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x00009e8e xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009e91 .p2align 4, 0x90 + //0x00009ea0 LBB40_9 + 0x48, 0x89, 0xc2, //0x00009ea0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009ea3 shrq %cl, %rdx + 0x4c, 0x21, 0xc8, //0x00009ea6 andq %r9, %rax + 0x80, 0xc2, 0x30, //0x00009ea9 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x00009eac movb %dl, (%rsi,%r10) + 0x48, 0x8b, 0x37, //0x00009eb0 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x06, //0x00009eb3 leaq (%rsi,%r8), %rdx + 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009eb7 movsbq (%r10,%rdx), %r11 + 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x00009ebc leaq $1(%r8,%r10), %rbx + 0x49, 0x83, 0xc2, 0x01, //0x00009ec1 addq $1, %r10 + 0x48, 0x8d, 0x04, 0x80, //0x00009ec5 leaq (%rax,%rax,4), %rax + 0x49, 0x8d, 0x04, 0x43, //0x00009ec9 leaq (%r11,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x00009ecd addq $-48, %rax + 0x48, 0x63, 0x57, 0x10, //0x00009ed1 movslq $16(%rdi), %rdx + 0x48, 0x39, 0xd3, //0x00009ed5 cmpq %rdx, %rbx + 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x00009ed8 jl LBB40_9 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00009ede jmp LBB40_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009ee3 .p2align 4, 0x90 + //0x00009ef0 LBB40_12 + 0x40, 0x80, 0xc6, 0x30, //0x00009ef0 addb $48, %sil + 0x48, 0x8b, 0x1f, //0x00009ef4 movq (%rdi), %rbx + 0x40, 0x88, 0x34, 0x13, //0x00009ef7 movb %sil, (%rbx,%rdx) + 0x83, 0xc2, 0x01, //0x00009efb addl $1, %edx + 0x41, 0x89, 0xd2, //0x00009efe movl %edx, %r10d + //0x00009f01 LBB40_15 + 0x48, 0x01, 0xc0, //0x00009f01 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009f04 leaq (%rax,%rax,4), %rax + //0x00009f08 LBB40_10 + 0x48, 0x85, 0xc0, //0x00009f08 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x00009f0b je LBB40_16 + 0x48, 0x89, 0xc6, //0x00009f11 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x00009f14 shrq %cl, %rsi + 0x4c, 0x21, 0xc8, //0x00009f17 andq %r9, %rax + 0x49, 0x63, 0xd2, //0x00009f1a movslq %r10d, %rdx + 0x48, 0x39, 0x57, 0x08, //0x00009f1d cmpq %rdx, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x00009f21 ja LBB40_12 + 0x48, 0x85, 0xf6, //0x00009f27 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x00009f2a je LBB40_15 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009f30 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x00009f37 jmp LBB40_15 + //0x00009f3c LBB40_16 + 0x44, 0x89, 0x57, 0x10, //0x00009f3c movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x00009f40 testl %r10d, %r10d + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x00009f43 jle LBB40_20 + 0x48, 0x8b, 0x07, //0x00009f49 movq (%rdi), %rax + 0x44, 0x89, 0xd1, //0x00009f4c movl %r10d, %ecx + 0x48, 0x83, 0xc1, 0x01, //0x00009f4f addq $1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x00009f53 addl $-1, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009f57 .p2align 4, 0x90 + //0x00009f60 LBB40_18 + 0x44, 0x89, 0xd2, //0x00009f60 movl %r10d, %edx + 0x80, 0x3c, 0x10, 0x30, //0x00009f63 cmpb $48, (%rax,%rdx) + 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009f67 jne LBB40_22 + 0x44, 0x89, 0x57, 0x10, //0x00009f6d movl %r10d, $16(%rdi) + 0x48, 0x83, 0xc1, 0xff, //0x00009f71 addq $-1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x00009f75 addl $-1, %r10d + 0x48, 0x83, 0xf9, 0x01, //0x00009f79 cmpq $1, %rcx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x00009f7d jg LBB40_18 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009f83 jmp LBB40_21 + //0x00009f88 LBB40_2 + 0x48, 0x85, 0xc0, //0x00009f88 testq %rax, %rax + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x00009f8b je LBB40_23 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009f91 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009fa0 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009fa3 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009fa6 testq %rdx, %rdx + 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009fa9 jne LBB40_7 + //0x00009faf LBB40_4 + 0x48, 0x01, 0xc0, //0x00009faf addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009fb2 leaq (%rax,%rax,4), %rax + 0x41, 0x83, 0xc3, 0x01, //0x00009fb6 addl $1, %r11d + 0x48, 0x89, 0xc2, //0x00009fba movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009fbd shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009fc0 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009fc3 je LBB40_4 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009fc9 jmp LBB40_7 + //0x00009fce LBB40_20 + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x00009fce je LBB40_21 + //0x00009fd4 LBB40_22 + 0x5b, //0x00009fd4 popq %rbx + 0x5d, //0x00009fd5 popq %rbp + 0xc3, //0x00009fd6 retq + //0x00009fd7 LBB40_21 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009fd7 movl $0, $20(%rdi) + 0x5b, //0x00009fde popq %rbx + 0x5d, //0x00009fdf popq %rbp + 0xc3, //0x00009fe0 retq + //0x00009fe1 LBB40_23 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009fe1 movl $0, $16(%rdi) + 0x5b, //0x00009fe8 popq %rbx + 0x5d, //0x00009fe9 popq %rbp + 0xc3, //0x00009fea retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009feb .p2align 5, 0x00 + //0x0000a000 LCPI41_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x0000a000 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x0000a010 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x0000a020 LCPI41_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x0000a020 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x0000a030 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x0000a040 .p2align 4, 0x90 + //0x0000a040 _advance_string_default + 0x55, //0x0000a040 pushq %rbp + 0x48, 0x89, 0xe5, //0x0000a041 movq %rsp, %rbp + 0x41, 0x57, //0x0000a044 pushq %r15 + 0x41, 0x56, //0x0000a046 pushq %r14 + 0x41, 0x55, //0x0000a048 pushq %r13 + 0x41, 0x54, //0x0000a04a pushq %r12 + 0x53, //0x0000a04c pushq %rbx + 0x4c, 0x8b, 0x7f, 0x08, //0x0000a04d movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x0000a051 subq %rsi, %r15 + 0x0f, 0x84, 0xec, 0x02, 0x00, 0x00, //0x0000a054 je LBB41_17 + 0x4c, 0x8b, 0x0f, //0x0000a05a movq (%rdi), %r9 + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x0000a05d movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x0000a064 cmpq $64, %r15 + 0x0f, 0x82, 0x73, 0x01, 0x00, 0x00, //0x0000a068 jb LBB41_18 + 0x48, 0x89, 0xf7, //0x0000a06e movq %rsi, %rdi + 0x48, 0xf7, 0xd7, //0x0000a071 notq %rdi + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a074 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x0000a07b xorl %r14d, %r14d + 0xc5, 0xfd, 0x6f, 0x05, 0x7a, 0xff, 0xff, 0xff, //0x0000a07e vmovdqa $-134(%rip), %ymm0 /* LCPI41_0+0(%rip) */ + 0xc5, 0xfd, 0x6f, 0x0d, 0x92, 0xff, 0xff, 0xff, //0x0000a086 vmovdqa $-110(%rip), %ymm1 /* LCPI41_1+0(%rip) */ + 0x49, 0xba, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000a08e movabsq $-6148914691236517206, %r10 + 0x49, 0xbb, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000a098 movabsq $6148914691236517205, %r11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000a0a2 .p2align 4, 0x90 + //0x0000a0b0 LBB41_3 + 0xc4, 0xc1, 0x7e, 0x6f, 0x14, 0x31, //0x0000a0b0 vmovdqu (%r9,%rsi), %ymm2 + 0xc4, 0xc1, 0x7e, 0x6f, 0x5c, 0x31, 0x20, //0x0000a0b6 vmovdqu $32(%r9,%rsi), %ymm3 + 0xc5, 0xed, 0x74, 0xe0, //0x0000a0bd vpcmpeqb %ymm0, %ymm2, %ymm4 + 0xc5, 0x7d, 0xd7, 0xe4, //0x0000a0c1 vpmovmskb %ymm4, %r12d + 0xc5, 0xe5, 0x74, 0xe0, //0x0000a0c5 vpcmpeqb %ymm0, %ymm3, %ymm4 + 0xc5, 0xfd, 0xd7, 0xcc, //0x0000a0c9 vpmovmskb %ymm4, %ecx + 0xc5, 0xed, 0x74, 0xd1, //0x0000a0cd vpcmpeqb %ymm1, %ymm2, %ymm2 + 0xc5, 0xfd, 0xd7, 0xc2, //0x0000a0d1 vpmovmskb %ymm2, %eax + 0xc5, 0xe5, 0x74, 0xd1, //0x0000a0d5 vpcmpeqb %ymm1, %ymm3, %ymm2 + 0xc5, 0xfd, 0xd7, 0xda, //0x0000a0d9 vpmovmskb %ymm2, %ebx + 0x48, 0xc1, 0xe1, 0x20, //0x0000a0dd shlq $32, %rcx + 0x49, 0x09, 0xcc, //0x0000a0e1 orq %rcx, %r12 + 0x48, 0xc1, 0xe3, 0x20, //0x0000a0e4 shlq $32, %rbx + 0x48, 0x09, 0xd8, //0x0000a0e8 orq %rbx, %rax + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000a0eb jne LBB41_7 + 0x4d, 0x85, 0xf6, //0x0000a0f1 testq %r14, %r14 + 0x0f, 0x85, 0x3b, 0x00, 0x00, 0x00, //0x0000a0f4 jne LBB41_9 + 0x45, 0x31, 0xf6, //0x0000a0fa xorl %r14d, %r14d + 0x4d, 0x85, 0xe4, //0x0000a0fd testq %r12, %r12 + 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x0000a100 jne LBB41_10 + //0x0000a106 LBB41_6 + 0x49, 0x83, 0xc7, 0xc0, //0x0000a106 addq $-64, %r15 + 0x48, 0x83, 0xc7, 0xc0, //0x0000a10a addq $-64, %rdi + 0x48, 0x83, 0xc6, 0x40, //0x0000a10e addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x0000a112 cmpq $63, %r15 + 0x0f, 0x87, 0x94, 0xff, 0xff, 0xff, //0x0000a116 ja LBB41_3 + 0xe9, 0x67, 0x00, 0x00, 0x00, //0x0000a11c jmp LBB41_12 + //0x0000a121 LBB41_7 + 0x49, 0x83, 0xf8, 0xff, //0x0000a121 cmpq $-1, %r8 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x0000a125 jne LBB41_9 + 0x4c, 0x0f, 0xbc, 0xc0, //0x0000a12b bsfq %rax, %r8 + 0x49, 0x01, 0xf0, //0x0000a12f addq %rsi, %r8 + 0x4c, 0x89, 0x02, //0x0000a132 movq %r8, (%rdx) + //0x0000a135 LBB41_9 + 0x4c, 0x89, 0xf1, //0x0000a135 movq %r14, %rcx + 0x48, 0xf7, 0xd1, //0x0000a138 notq %rcx + 0x48, 0x21, 0xc1, //0x0000a13b andq %rax, %rcx + 0x4c, 0x8d, 0x2c, 0x09, //0x0000a13e leaq (%rcx,%rcx), %r13 + 0x4d, 0x09, 0xf5, //0x0000a142 orq %r14, %r13 + 0x4c, 0x89, 0xeb, //0x0000a145 movq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x0000a148 notq %rbx + 0x48, 0x21, 0xc3, //0x0000a14b andq %rax, %rbx + 0x4c, 0x21, 0xd3, //0x0000a14e andq %r10, %rbx + 0x45, 0x31, 0xf6, //0x0000a151 xorl %r14d, %r14d + 0x48, 0x01, 0xcb, //0x0000a154 addq %rcx, %rbx + 0x41, 0x0f, 0x92, 0xc6, //0x0000a157 setb %r14b + 0x48, 0x01, 0xdb, //0x0000a15b addq %rbx, %rbx + 0x4c, 0x31, 0xdb, //0x0000a15e xorq %r11, %rbx + 0x4c, 0x21, 0xeb, //0x0000a161 andq %r13, %rbx + 0x48, 0xf7, 0xd3, //0x0000a164 notq %rbx + 0x49, 0x21, 0xdc, //0x0000a167 andq %rbx, %r12 + 0x4d, 0x85, 0xe4, //0x0000a16a testq %r12, %r12 + 0x0f, 0x84, 0x93, 0xff, 0xff, 0xff, //0x0000a16d je LBB41_6 + //0x0000a173 LBB41_10 + 0x49, 0x0f, 0xbc, 0xc4, //0x0000a173 bsfq %r12, %rax + 0x48, 0x29, 0xf8, //0x0000a177 subq %rdi, %rax + //0x0000a17a LBB41_11 + 0x5b, //0x0000a17a popq %rbx + 0x41, 0x5c, //0x0000a17b popq %r12 + 0x41, 0x5d, //0x0000a17d popq %r13 + 0x41, 0x5e, //0x0000a17f popq %r14 + 0x41, 0x5f, //0x0000a181 popq %r15 + 0x5d, //0x0000a183 popq %rbp + 0xc5, 0xf8, 0x77, //0x0000a184 vzeroupper + 0xc3, //0x0000a187 retq + //0x0000a188 LBB41_12 + 0x4c, 0x01, 0xce, //0x0000a188 addq %r9, %rsi + 0x49, 0x83, 0xff, 0x20, //0x0000a18b cmpq $32, %r15 + 0x0f, 0x82, 0xc3, 0x00, 0x00, 0x00, //0x0000a18f jb LBB41_23 + //0x0000a195 LBB41_13 + 0xc5, 0xfe, 0x6f, 0x06, //0x0000a195 vmovdqu (%rsi), %ymm0 + 0xc5, 0xfd, 0x74, 0x0d, 0x5f, 0xfe, 0xff, 0xff, //0x0000a199 vpcmpeqb $-417(%rip), %ymm0, %ymm1 /* LCPI41_0+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xf9, //0x0000a1a1 vpmovmskb %ymm1, %edi + 0xc5, 0xfd, 0x74, 0x05, 0x73, 0xfe, 0xff, 0xff, //0x0000a1a5 vpcmpeqb $-397(%rip), %ymm0, %ymm0 /* LCPI41_1+0(%rip) */ + 0xc5, 0xfd, 0xd7, 0xc0, //0x0000a1ad vpmovmskb %ymm0, %eax + 0x85, 0xc0, //0x0000a1b1 testl %eax, %eax + 0x0f, 0x85, 0x44, 0x00, 0x00, 0x00, //0x0000a1b3 jne LBB41_19 + 0x4d, 0x85, 0xf6, //0x0000a1b9 testq %r14, %r14 + 0x0f, 0x85, 0x55, 0x00, 0x00, 0x00, //0x0000a1bc jne LBB41_21 + 0x45, 0x31, 0xf6, //0x0000a1c2 xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x0000a1c5 testq %rdi, %rdi + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x0000a1c8 je LBB41_22 + //0x0000a1ce LBB41_16 + 0x48, 0x0f, 0xbc, 0xc7, //0x0000a1ce bsfq %rdi, %rax + 0x4c, 0x29, 0xce, //0x0000a1d2 subq %r9, %rsi + 0x48, 0x01, 0xf0, //0x0000a1d5 addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000a1d8 addq $1, %rax + 0xe9, 0x99, 0xff, 0xff, 0xff, //0x0000a1dc jmp LBB41_11 + //0x0000a1e1 LBB41_18 + 0x4c, 0x01, 0xce, //0x0000a1e1 addq %r9, %rsi + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a1e4 movq $-1, %r8 + 0x45, 0x31, 0xf6, //0x0000a1eb xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x0000a1ee cmpq $32, %r15 + 0x0f, 0x83, 0x9d, 0xff, 0xff, 0xff, //0x0000a1f2 jae LBB41_13 + 0xe9, 0x5b, 0x00, 0x00, 0x00, //0x0000a1f8 jmp LBB41_23 + //0x0000a1fd LBB41_19 + 0x49, 0x83, 0xf8, 0xff, //0x0000a1fd cmpq $-1, %r8 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000a201 jne LBB41_21 + 0x48, 0x89, 0xf1, //0x0000a207 movq %rsi, %rcx + 0x4c, 0x29, 0xc9, //0x0000a20a subq %r9, %rcx + 0x4c, 0x0f, 0xbc, 0xc0, //0x0000a20d bsfq %rax, %r8 + 0x49, 0x01, 0xc8, //0x0000a211 addq %rcx, %r8 + 0x4c, 0x89, 0x02, //0x0000a214 movq %r8, (%rdx) + //0x0000a217 LBB41_21 + 0x44, 0x89, 0xf1, //0x0000a217 movl %r14d, %ecx + 0xf7, 0xd1, //0x0000a21a notl %ecx + 0x21, 0xc1, //0x0000a21c andl %eax, %ecx + 0x8d, 0x1c, 0x09, //0x0000a21e leal (%rcx,%rcx), %ebx + 0x45, 0x8d, 0x14, 0x4e, //0x0000a221 leal (%r14,%rcx,2), %r10d + 0xf7, 0xd3, //0x0000a225 notl %ebx + 0x21, 0xc3, //0x0000a227 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x0000a229 andl $-1431655766, %ebx + 0x45, 0x31, 0xf6, //0x0000a22f xorl %r14d, %r14d + 0x01, 0xcb, //0x0000a232 addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc6, //0x0000a234 setb %r14b + 0x01, 0xdb, //0x0000a238 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x0000a23a xorl $1431655765, %ebx + 0x44, 0x21, 0xd3, //0x0000a240 andl %r10d, %ebx + 0xf7, 0xd3, //0x0000a243 notl %ebx + 0x21, 0xdf, //0x0000a245 andl %ebx, %edi + 0x48, 0x85, 0xff, //0x0000a247 testq %rdi, %rdi + 0x0f, 0x85, 0x7e, 0xff, 0xff, 0xff, //0x0000a24a jne LBB41_16 + //0x0000a250 LBB41_22 + 0x48, 0x83, 0xc6, 0x20, //0x0000a250 addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x0000a254 addq $-32, %r15 + //0x0000a258 LBB41_23 + 0x4d, 0x85, 0xf6, //0x0000a258 testq %r14, %r14 + 0x0f, 0x85, 0xb0, 0x00, 0x00, 0x00, //0x0000a25b jne LBB41_37 + 0x4d, 0x85, 0xff, //0x0000a261 testq %r15, %r15 + 0x0f, 0x84, 0x9c, 0x00, 0x00, 0x00, //0x0000a264 je LBB41_36 + //0x0000a26a LBB41_25 + 0x4d, 0x89, 0xca, //0x0000a26a movq %r9, %r10 + 0x49, 0xf7, 0xd2, //0x0000a26d notq %r10 + 0x49, 0x83, 0xc2, 0x01, //0x0000a270 addq $1, %r10 + //0x0000a274 LBB41_26 + 0x31, 0xc0, //0x0000a274 xorl %eax, %eax + //0x0000a276 LBB41_27 + 0x48, 0x89, 0xc7, //0x0000a276 movq %rax, %rdi + 0x0f, 0xb6, 0x1c, 0x06, //0x0000a279 movzbl (%rsi,%rax), %ebx + 0x80, 0xfb, 0x22, //0x0000a27d cmpb $34, %bl + 0x0f, 0x84, 0x79, 0x00, 0x00, 0x00, //0x0000a280 je LBB41_35 + 0x80, 0xfb, 0x5c, //0x0000a286 cmpb $92, %bl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x0000a289 je LBB41_30 + 0x48, 0x8d, 0x47, 0x01, //0x0000a28f leaq $1(%rdi), %rax + 0x49, 0x39, 0xc7, //0x0000a293 cmpq %rax, %r15 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x0000a296 jne LBB41_27 + 0xe9, 0x4e, 0x00, 0x00, 0x00, //0x0000a29c jmp LBB41_34 + //0x0000a2a1 LBB41_30 + 0x49, 0x8d, 0x4f, 0xff, //0x0000a2a1 leaq $-1(%r15), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a2a5 movq $-1, %rax + 0x48, 0x39, 0xf9, //0x0000a2ac cmpq %rdi, %rcx + 0x0f, 0x84, 0xc5, 0xfe, 0xff, 0xff, //0x0000a2af je LBB41_11 + 0x49, 0x83, 0xf8, 0xff, //0x0000a2b5 cmpq $-1, %r8 + 0x0f, 0x85, 0x0a, 0x00, 0x00, 0x00, //0x0000a2b9 jne LBB41_33 + 0x4d, 0x8d, 0x04, 0x32, //0x0000a2bf leaq (%r10,%rsi), %r8 + 0x49, 0x01, 0xf8, //0x0000a2c3 addq %rdi, %r8 + 0x4c, 0x89, 0x02, //0x0000a2c6 movq %r8, (%rdx) + //0x0000a2c9 LBB41_33 + 0x48, 0x01, 0xfe, //0x0000a2c9 addq %rdi, %rsi + 0x48, 0x83, 0xc6, 0x02, //0x0000a2cc addq $2, %rsi + 0x4c, 0x89, 0xf9, //0x0000a2d0 movq %r15, %rcx + 0x48, 0x29, 0xf9, //0x0000a2d3 subq %rdi, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x0000a2d6 addq $-2, %rcx + 0x49, 0x83, 0xc7, 0xfe, //0x0000a2da addq $-2, %r15 + 0x49, 0x39, 0xff, //0x0000a2de cmpq %rdi, %r15 + 0x49, 0x89, 0xcf, //0x0000a2e1 movq %rcx, %r15 + 0x0f, 0x85, 0x8a, 0xff, 0xff, 0xff, //0x0000a2e4 jne LBB41_26 + 0xe9, 0x8b, 0xfe, 0xff, 0xff, //0x0000a2ea jmp LBB41_11 + //0x0000a2ef LBB41_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a2ef movq $-1, %rax + 0x80, 0xfb, 0x22, //0x0000a2f6 cmpb $34, %bl + 0x0f, 0x85, 0x7b, 0xfe, 0xff, 0xff, //0x0000a2f9 jne LBB41_11 + //0x0000a2ff LBB41_35 + 0x48, 0x01, 0xfe, //0x0000a2ff addq %rdi, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x0000a302 addq $1, %rsi + //0x0000a306 LBB41_36 + 0x4c, 0x29, 0xce, //0x0000a306 subq %r9, %rsi + 0x48, 0x89, 0xf0, //0x0000a309 movq %rsi, %rax + 0xe9, 0x69, 0xfe, 0xff, 0xff, //0x0000a30c jmp LBB41_11 + //0x0000a311 LBB41_37 + 0x4d, 0x85, 0xff, //0x0000a311 testq %r15, %r15 + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x0000a314 je LBB41_17 + 0x49, 0x83, 0xf8, 0xff, //0x0000a31a cmpq $-1, %r8 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000a31e jne LBB41_40 + 0x4d, 0x89, 0xc8, //0x0000a324 movq %r9, %r8 + 0x49, 0xf7, 0xd0, //0x0000a327 notq %r8 + 0x49, 0x01, 0xf0, //0x0000a32a addq %rsi, %r8 + 0x4c, 0x89, 0x02, //0x0000a32d movq %r8, (%rdx) + //0x0000a330 LBB41_40 + 0x48, 0x83, 0xc6, 0x01, //0x0000a330 addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x0000a334 addq $-1, %r15 + 0x4d, 0x85, 0xff, //0x0000a338 testq %r15, %r15 + 0x0f, 0x85, 0x29, 0xff, 0xff, 0xff, //0x0000a33b jne LBB41_25 + 0xe9, 0xc0, 0xff, 0xff, 0xff, //0x0000a341 jmp LBB41_36 + //0x0000a346 LBB41_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000a346 movq $-1, %rax + 0xe9, 0x28, 0xfe, 0xff, 0xff, //0x0000a34d jmp LBB41_11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000a352 .p2align 4, 0x90 + //0x0000a360 _unescape + 0x55, //0x0000a360 pushq %rbp + 0x48, 0x89, 0xe5, //0x0000a361 movq %rsp, %rbp + 0x41, 0x57, //0x0000a364 pushq %r15 + 0x41, 0x56, //0x0000a366 pushq %r14 + 0x41, 0x55, //0x0000a368 pushq %r13 + 0x41, 0x54, //0x0000a36a pushq %r12 + 0x53, //0x0000a36c pushq %rbx + 0x50, //0x0000a36d pushq %rax + 0x4c, 0x8b, 0x2f, //0x0000a36e movq (%rdi), %r13 + 0x4c, 0x29, 0xee, //0x0000a371 subq %r13, %rsi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x0000a374 movq $-1, %rbx + 0x48, 0x85, 0xf6, //0x0000a37b testq %rsi, %rsi + 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000a37e jle LBB42_13 + 0x49, 0x89, 0xd6, //0x0000a384 movq %rdx, %r14 + 0x49, 0x89, 0xff, //0x0000a387 movq %rdi, %r15 + 0x49, 0x8d, 0x45, 0x01, //0x0000a38a leaq $1(%r13), %rax + 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000a38e movzbl $1(%r13), %ecx + 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x0000a393 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x0000a39a movb (%rcx,%rdx), %cl + 0x80, 0xf9, 0xff, //0x0000a39d cmpb $-1, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x0000a3a0 je LBB42_4 + 0x84, 0xc9, //0x0000a3a6 testb %cl, %cl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x0000a3a8 jne LBB42_6 + 0x49, 0x89, 0x07, //0x0000a3ae movq %rax, (%r15) + 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x0000a3b1 movq $-3, %rbx + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x0000a3b8 jmp LBB42_13 + //0x0000a3bd LBB42_4 + 0x48, 0x83, 0xfe, 0x03, //0x0000a3bd cmpq $3, %rsi + 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x0000a3c1 jg LBB42_7 + 0x49, 0x89, 0x07, //0x0000a3c7 movq %rax, (%r15) + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x0000a3ca jmp LBB42_13 + //0x0000a3cf LBB42_6 + 0x41, 0x88, 0x0e, //0x0000a3cf movb %cl, (%r14) + 0x49, 0x83, 0x07, 0x02, //0x0000a3d2 addq $2, (%r15) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000a3d6 movl $1, %ebx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x0000a3db jmp LBB42_13 + //0x0000a3e0 LBB42_7 + 0x41, 0x8b, 0x4d, 0x02, //0x0000a3e0 movl $2(%r13), %ecx + 0x89, 0xc8, //0x0000a3e4 movl %ecx, %eax + 0xf7, 0xd0, //0x0000a3e6 notl %eax + 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000a3e8 leal $-808464432(%rcx), %edx + 0x25, 0x80, 0x80, 0x80, 0x80, //0x0000a3ee andl $-2139062144, %eax + 0x85, 0xd0, //0x0000a3f3 testl %edx, %eax + 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x0000a3f5 jne LBB42_11 + 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x0000a3fb leal $421075225(%rcx), %edx + 0x09, 0xca, //0x0000a401 orl %ecx, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x0000a403 testl $-2139062144, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x0000a409 jne LBB42_11 + 0x89, 0xca, //0x0000a40f movl %ecx, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x0000a411 andl $2139062143, %edx + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x0000a417 movl $-1061109568, %edi + 0x29, 0xd7, //0x0000a41c subl %edx, %edi + 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000a41e leal $1179010630(%rdx), %ebx + 0x21, 0xc7, //0x0000a424 andl %eax, %edi + 0x85, 0xdf, //0x0000a426 testl %ebx, %edi + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x0000a428 jne LBB42_11 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000a42e movl $-522133280, %edi + 0x29, 0xd7, //0x0000a433 subl %edx, %edi + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x0000a435 addl $960051513, %edx + 0x21, 0xf8, //0x0000a43b andl %edi, %eax + 0x85, 0xd0, //0x0000a43d testl %edx, %eax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000a43f je LBB42_14 + //0x0000a445 LBB42_11 + 0x49, 0x83, 0xc5, 0x02, //0x0000a445 addq $2, %r13 + 0x4d, 0x89, 0x2f, //0x0000a449 movq %r13, (%r15) + //0x0000a44c LBB42_12 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000a44c movq $-2, %rbx + //0x0000a453 LBB42_13 + 0x48, 0x89, 0xd8, //0x0000a453 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000a456 addq $8, %rsp + 0x5b, //0x0000a45a popq %rbx + 0x41, 0x5c, //0x0000a45b popq %r12 + 0x41, 0x5d, //0x0000a45d popq %r13 + 0x41, 0x5e, //0x0000a45f popq %r14 + 0x41, 0x5f, //0x0000a461 popq %r15 + 0x5d, //0x0000a463 popq %rbp + 0xc3, //0x0000a464 retq + //0x0000a465 LBB42_14 + 0x0f, 0xc9, //0x0000a465 bswapl %ecx + 0x89, 0xc8, //0x0000a467 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000a469 shrl $4, %eax + 0xf7, 0xd0, //0x0000a46c notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000a46e andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x0000a473 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000a476 andl $252645135, %ecx + 0x01, 0xc1, //0x0000a47c addl %eax, %ecx + 0x89, 0xc8, //0x0000a47e movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000a480 shrl $4, %eax + 0x09, 0xc8, //0x0000a483 orl %ecx, %eax + 0x89, 0xc1, //0x0000a485 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x0000a487 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000a48a andl $65280, %ecx + 0x44, 0x0f, 0xb6, 0xe0, //0x0000a490 movzbl %al, %r12d + 0x41, 0x09, 0xcc, //0x0000a494 orl %ecx, %r12d + 0x49, 0x8d, 0x55, 0x06, //0x0000a497 leaq $6(%r13), %rdx + 0x49, 0x89, 0x17, //0x0000a49b movq %rdx, (%r15) + 0x41, 0x83, 0xfc, 0x7f, //0x0000a49e cmpl $127, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x0000a4a2 jbe LBB42_18 + 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x0000a4a8 cmpl $2047, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x0000a4af jbe LBB42_19 + 0x89, 0xc7, //0x0000a4b5 movl %eax, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x0000a4b7 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x0000a4bd cmpl $14155776, %edi + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x0000a4c3 je LBB42_20 + 0xc1, 0xe9, 0x0c, //0x0000a4c9 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x0000a4cc orb $-32, %cl + 0x41, 0x88, 0x0e, //0x0000a4cf movb %cl, (%r14) + 0x41, 0xc1, 0xec, 0x06, //0x0000a4d2 shrl $6, %r12d + 0x41, 0x80, 0xe4, 0x3f, //0x0000a4d6 andb $63, %r12b + 0x41, 0x80, 0xcc, 0x80, //0x0000a4da orb $-128, %r12b + 0x45, 0x88, 0x66, 0x01, //0x0000a4de movb %r12b, $1(%r14) + 0x24, 0x3f, //0x0000a4e2 andb $63, %al + 0x0c, 0x80, //0x0000a4e4 orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x0000a4e6 movb %al, $2(%r14) + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x0000a4ea movl $3, %ebx + 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x0000a4ef jmp LBB42_13 + //0x0000a4f4 LBB42_18 + 0x41, 0x88, 0x06, //0x0000a4f4 movb %al, (%r14) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x0000a4f7 movl $1, %ebx + 0xe9, 0x52, 0xff, 0xff, 0xff, //0x0000a4fc jmp LBB42_13 + //0x0000a501 LBB42_19 + 0x41, 0xc1, 0xec, 0x06, //0x0000a501 shrl $6, %r12d + 0x41, 0x80, 0xcc, 0xc0, //0x0000a505 orb $-64, %r12b + 0x45, 0x88, 0x26, //0x0000a509 movb %r12b, (%r14) + 0x24, 0x3f, //0x0000a50c andb $63, %al + 0x0c, 0x80, //0x0000a50e orb $-128, %al + 0x41, 0x88, 0x46, 0x01, //0x0000a510 movb %al, $1(%r14) + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x0000a514 movl $2, %ebx + 0xe9, 0x35, 0xff, 0xff, 0xff, //0x0000a519 jmp LBB42_13 + //0x0000a51e LBB42_20 + 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000a51e movq $-4, %rbx + 0x48, 0x83, 0xfe, 0x06, //0x0000a525 cmpq $6, %rsi + 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x0000a529 jl LBB42_13 + 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000a52f cmpl $56319, %r12d + 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x0000a536 ja LBB42_13 + 0x80, 0x3a, 0x5c, //0x0000a53c cmpb $92, (%rdx) + 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000a53f jne LBB42_13 + 0x41, 0x80, 0x7d, 0x07, 0x75, //0x0000a545 cmpb $117, $7(%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000a54a jne LBB42_13 + 0x49, 0x8d, 0x7d, 0x08, //0x0000a550 leaq $8(%r13), %rdi + 0x48, 0x89, 0x7d, 0xd0, //0x0000a554 movq %rdi, $-48(%rbp) + 0xe8, 0x13, 0x87, 0xff, 0xff, //0x0000a558 callq _unhex16_is + 0x84, 0xc0, //0x0000a55d testb %al, %al + 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000a55f je LBB42_27 + 0x48, 0x8b, 0x45, 0xd0, //0x0000a565 movq $-48(%rbp), %rax + 0x8b, 0x08, //0x0000a569 movl (%rax), %ecx + 0x0f, 0xc9, //0x0000a56b bswapl %ecx + 0x89, 0xc8, //0x0000a56d movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000a56f shrl $4, %eax + 0xf7, 0xd0, //0x0000a572 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000a574 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x0000a579 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000a57c andl $252645135, %ecx + 0x01, 0xc1, //0x0000a582 addl %eax, %ecx + 0x89, 0xc8, //0x0000a584 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000a586 shrl $4, %eax + 0x09, 0xc8, //0x0000a589 orl %ecx, %eax + 0x89, 0xc1, //0x0000a58b movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000a58d andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x0000a593 cmpl $14417920, %ecx + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000a599 jne LBB42_28 + 0x89, 0xc1, //0x0000a59f movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x0000a5a1 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000a5a4 andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x0000a5aa movzbl %al, %eax + 0x09, 0xc8, //0x0000a5ad orl %ecx, %eax + 0x41, 0xc1, 0xe4, 0x0a, //0x0000a5af shll $10, %r12d + 0x42, 0x8d, 0x0c, 0x20, //0x0000a5b3 leal (%rax,%r12), %ecx + 0x44, 0x01, 0xe0, //0x0000a5b7 addl %r12d, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x0000a5ba addl $-56613888, %eax + 0x89, 0xc2, //0x0000a5bf movl %eax, %edx + 0xc1, 0xea, 0x12, //0x0000a5c1 shrl $18, %edx + 0x80, 0xca, 0xf0, //0x0000a5c4 orb $-16, %dl + 0x41, 0x88, 0x16, //0x0000a5c7 movb %dl, (%r14) + 0x89, 0xc2, //0x0000a5ca movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x0000a5cc shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x0000a5cf andb $63, %dl + 0x80, 0xca, 0x80, //0x0000a5d2 orb $-128, %dl + 0x41, 0x88, 0x56, 0x01, //0x0000a5d5 movb %dl, $1(%r14) + 0xc1, 0xe8, 0x06, //0x0000a5d9 shrl $6, %eax + 0x24, 0x3f, //0x0000a5dc andb $63, %al + 0x0c, 0x80, //0x0000a5de orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x0000a5e0 movb %al, $2(%r14) + 0x80, 0xe1, 0x3f, //0x0000a5e4 andb $63, %cl + 0x80, 0xc9, 0x80, //0x0000a5e7 orb $-128, %cl + 0x41, 0x88, 0x4e, 0x03, //0x0000a5ea movb %cl, $3(%r14) + 0x49, 0x83, 0xc5, 0x0c, //0x0000a5ee addq $12, %r13 + 0x4d, 0x89, 0x2f, //0x0000a5f2 movq %r13, (%r15) + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x0000a5f5 movl $4, %ebx + 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x0000a5fa jmp LBB42_13 + //0x0000a5ff LBB42_27 + 0x48, 0x8b, 0x45, 0xd0, //0x0000a5ff movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x0000a603 movq %rax, (%r15) + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x0000a606 jmp LBB42_12 + //0x0000a60b LBB42_28 + 0x48, 0x8b, 0x45, 0xd0, //0x0000a60b movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x0000a60f movq %rax, (%r15) + 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x0000a612 jmp LBB42_13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000a617 .p2align 4, 0x00 + //0x0000a620 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x0000a620 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x0000a628 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x0000a630 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x0000a638 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x0000a640 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x0000a648 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x0000a650 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x0000a658 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x0000a660 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x0000a668 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x0000a670 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x0000a678 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x0000a680 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x0000a688 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x0000a690 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x0000a698 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x0000a6a0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x0000a6a8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x0000a6b0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x0000a6b8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x0000a6c0 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x0000a6c8 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x0000a6d0 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x0000a6d8 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x0000a6e0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x0000a6e8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x0000a6f0 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x0000a6f8 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x0000a700 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x0000a708 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x0000a710 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x0000a718 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x0000a720 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x0000a728 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x0000a730 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x0000a738 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x0000a740 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x0000a748 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x0000a750 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x0000a758 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x0000a760 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x0000a768 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x0000a770 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x0000a778 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x0000a780 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x0000a788 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x0000a790 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x0000a798 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x0000a7a0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x0000a7a8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x0000a7b0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x0000a7b8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x0000a7c0 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x0000a7c8 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x0000a7d0 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x0000a7d8 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x0000a7e0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x0000a7e8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x0000a7f0 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x0000a7f8 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x0000a800 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x0000a808 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x0000a810 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x0000a818 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x0000a820 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x0000a828 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x0000a830 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x0000a838 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x0000a840 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x0000a848 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x0000a850 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x0000a858 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x0000a860 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x0000a868 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x0000a870 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x0000a878 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x0000a880 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x0000a888 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x0000a890 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x0000a898 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x0000a8a0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x0000a8a8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x0000a8b0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x0000a8b8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x0000a8c0 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x0000a8c8 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x0000a8d0 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x0000a8d8 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x0000a8e0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x0000a8e8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x0000a8f0 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x0000a8f8 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x0000a900 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x0000a908 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x0000a910 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x0000a918 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x0000a920 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x0000a928 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x0000a930 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x0000a938 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x0000a940 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x0000a948 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x0000a950 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x0000a958 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x0000a960 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x0000a968 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x0000a970 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x0000a978 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x0000a980 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x0000a988 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x0000a990 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x0000a998 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000a9a0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000a9a8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000a9b0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000a9b8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000a9c0 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000a9c8 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000a9d0 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000a9d8 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000a9e0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000a9e8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000a9f0 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000a9f8 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000aa00 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000aa08 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000aa10 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000aa18 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000aa20 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000aa28 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000aa30 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000aa38 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000aa40 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000aa48 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000aa50 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000aa58 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000aa60 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000aa68 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000aa70 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000aa78 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000aa80 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000aa88 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000aa90 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000aa98 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000aaa0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000aaa8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000aab0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000aab8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000aac0 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000aac8 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000aad0 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000aad8 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000aae0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000aae8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000aaf0 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000aaf8 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000ab00 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000ab08 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000ab10 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000ab18 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000ab20 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000ab28 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000ab30 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000ab38 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000ab40 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000ab48 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000ab50 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000ab58 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000ab60 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000ab68 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000ab70 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000ab78 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000ab80 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000ab88 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000ab90 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000ab98 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000aba0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000aba8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000abb0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000abb8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000abc0 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000abc8 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000abd0 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000abd8 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000abe0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000abe8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000abf0 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000abf8 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000ac00 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000ac08 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000ac10 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000ac18 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000ac20 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000ac28 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000ac30 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000ac38 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000ac40 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000ac48 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000ac50 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000ac58 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000ac60 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000ac68 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000ac70 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000ac78 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000ac80 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000ac88 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000ac90 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000ac98 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000aca0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000aca8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000acb0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000acb8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000acc0 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000acc8 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000acd0 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000acd8 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000ace0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000ace8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000acf0 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000acf8 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000ad00 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000ad08 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000ad10 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000ad18 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000ad20 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000ad28 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000ad30 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000ad38 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000ad40 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000ad48 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000ad50 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000ad58 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000ad60 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000ad68 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000ad70 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000ad78 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000ad80 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000ad88 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000ad90 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000ad98 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000ada0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000ada8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000adb0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000adb8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000adc0 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000adc8 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000add0 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000add8 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000ade0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000ade8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000adf0 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000adf8 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000ae00 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000ae08 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000ae10 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000ae18 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000ae20 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000ae28 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000ae30 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000ae38 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000ae40 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000ae48 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000ae50 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000ae58 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000ae60 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000ae68 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000ae70 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000ae78 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000ae80 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000ae88 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000ae90 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000ae98 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000aea0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000aea8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000aeb0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000aeb8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000aec0 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000aec8 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000aed0 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000aed8 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000aee0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000aee8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000aef0 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000aef8 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000af00 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000af08 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000af10 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000af18 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000af20 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000af28 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000af30 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000af38 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000af40 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000af48 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000af50 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000af58 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000af60 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000af68 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000af70 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000af78 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000af80 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000af88 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000af90 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000af98 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000afa0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000afa8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000afb0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000afb8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000afc0 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000afc8 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000afd0 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000afd8 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000afe0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000afe8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000aff0 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000aff8 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000b000 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000b008 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000b010 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000b018 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000b020 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000b028 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000b030 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000b038 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000b040 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000b048 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000b050 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000b058 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000b060 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000b068 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000b070 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000b078 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000b080 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000b088 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000b090 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000b098 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000b0a0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000b0a8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000b0b0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000b0b8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000b0c0 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000b0c8 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000b0d0 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000b0d8 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000b0e0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000b0e8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000b0f0 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000b0f8 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000b100 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000b108 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000b110 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000b118 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000b120 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000b128 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000b130 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000b138 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000b140 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000b148 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000b150 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000b158 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000b160 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000b168 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000b170 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000b178 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000b180 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000b188 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000b190 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000b198 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000b1a0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000b1a8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000b1b0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000b1b8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000b1c0 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000b1c8 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000b1d0 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000b1d8 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000b1e0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000b1e8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000b1f0 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000b1f8 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000b200 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000b208 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000b210 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000b218 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000b220 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000b228 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000b230 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000b238 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000b240 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000b248 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000b250 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000b258 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000b260 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000b268 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000b270 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000b278 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000b280 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000b288 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000b290 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000b298 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000b2a0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000b2a8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000b2b0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000b2b8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000b2c0 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000b2c8 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000b2d0 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000b2d8 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000b2e0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000b2e8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000b2f0 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000b2f8 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000b300 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000b308 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000b310 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000b318 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000b320 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000b328 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000b330 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000b338 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000b340 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000b348 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000b350 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000b358 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000b360 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000b368 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000b370 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000b378 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000b380 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000b388 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000b390 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000b398 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000b3a0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000b3a8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000b3b0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000b3b8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000b3c0 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000b3c8 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000b3d0 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000b3d8 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000b3e0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000b3e8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000b3f0 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000b3f8 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000b400 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000b408 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000b410 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000b418 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000b420 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000b428 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000b430 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000b438 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000b440 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000b448 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000b450 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000b458 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000b460 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000b468 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000b470 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000b478 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000b480 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000b488 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000b490 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000b498 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000b4a0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000b4a8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000b4b0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000b4b8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000b4c0 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000b4c8 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000b4d0 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000b4d8 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000b4e0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000b4e8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000b4f0 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000b4f8 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000b500 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000b508 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000b510 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000b518 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000b520 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000b528 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000b530 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000b538 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000b540 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000b548 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000b550 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000b558 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000b560 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000b568 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000b570 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000b578 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000b580 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000b588 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000b590 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000b598 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000b5a0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000b5a8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000b5b0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000b5b8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000b5c0 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000b5c8 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000b5d0 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000b5d8 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000b5e0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000b5e8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000b5f0 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000b5f8 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000b600 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000b608 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000b610 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000b618 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000b620 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000b628 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000b630 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000b638 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000b640 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000b648 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000b650 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000b658 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000b660 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000b668 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000b670 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000b678 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000b680 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000b688 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000b690 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000b698 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000b6a0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000b6a8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000b6b0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000b6b8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000b6c0 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000b6c8 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000b6d0 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000b6d8 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000b6e0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000b6e8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000b6f0 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000b6f8 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000b700 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000b708 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000b710 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000b718 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000b720 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000b728 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000b730 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000b738 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000b740 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000b748 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000b750 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000b758 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000b760 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000b768 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000b770 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000b778 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000b780 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000b788 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000b790 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000b798 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000b7a0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000b7a8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000b7b0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000b7b8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000b7c0 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000b7c8 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000b7d0 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000b7d8 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000b7e0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000b7e8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000b7f0 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000b7f8 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000b800 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000b808 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000b810 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000b818 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000b820 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000b828 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000b830 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000b838 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000b840 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000b848 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000b850 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000b858 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000b860 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000b868 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000b870 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000b878 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000b880 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000b888 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000b890 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000b898 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000b8a0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000b8a8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000b8b0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000b8b8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000b8c0 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000b8c8 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000b8d0 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000b8d8 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000b8e0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000b8e8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000b8f0 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000b8f8 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000b900 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000b908 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000b910 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000b918 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000b920 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000b928 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000b930 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000b938 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000b940 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000b948 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000b950 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000b958 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000b960 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000b968 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000b970 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000b978 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000b980 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000b988 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000b990 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000b998 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000b9a0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000b9a8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000b9b0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000b9b8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000b9c0 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000b9c8 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000b9d0 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000b9d8 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000b9e0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000b9e8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000b9f0 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000b9f8 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ba00 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ba08 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ba10 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ba18 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ba20 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ba28 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ba30 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ba38 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ba40 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ba48 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ba50 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ba58 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ba60 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ba68 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ba70 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ba78 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ba80 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ba88 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000ba90 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000ba98 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000baa0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000baa8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000bab0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000bab8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000bac0 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000bac8 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000bad0 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000bad8 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000bae0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000bae8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000baf0 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000baf8 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000bb00 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000bb08 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000bb10 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000bb18 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000bb20 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000bb28 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000bb30 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000bb38 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000bb40 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000bb48 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000bb50 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000bb58 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000bb60 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000bb68 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000bb70 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000bb78 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000bb80 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000bb88 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000bb90 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000bb98 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000bba0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000bba8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000bbb0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000bbb8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000bbc0 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000bbc8 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000bbd0 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, //0x0000bbe0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000bbe8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bbf0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000bbf8 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc00 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000bc08 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc10 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000bc18 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc20 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000bc28 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc30 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000bc38 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc40 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000bc48 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc50 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000bc58 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc60 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000bc68 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc70 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000bc78 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc80 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000bc88 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bc90 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000bc98 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bca0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000bca8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcb0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000bcb8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcc0 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000bcc8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcd0 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000bcd8 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bce0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000bce8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bcf0 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000bcf8 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd00 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000bd08 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd10 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000bd18 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd20 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000bd28 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd30 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000bd38 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd40 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000bd48 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd50 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000bd58 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd60 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000bd68 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd70 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000bd78 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd80 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000bd88 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000bd90 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000bd98 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000bda0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000bda8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000bdb0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000bdb8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000bdc0 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000bdc8 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000bdd0 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000bdd8 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000bde0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000bde8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000bdf0 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000bdf8 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000be00 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000be08 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000be10 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000be18 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000be20 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000be28 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000be30 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000be38 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000be40 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000be48 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000be50 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000be58 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000be60 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000be68 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000be70 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000be78 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000be80 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000be88 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000be90 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000be98 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000bea0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000bea8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000beb0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000beb8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000bec0 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000bec8 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000bed0 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000bed8 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000bee0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000bee8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000bef0 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000bef8 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000bf00 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000bf08 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000bf10 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000bf18 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000bf20 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000bf28 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000bf30 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000bf38 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000bf40 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000bf48 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000bf50 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000bf58 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000bf60 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000bf68 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000bf70 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000bf78 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000bf80 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000bf88 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000bf90 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000bf98 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000bfa0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000bfa8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000bfb0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000bfb8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000bfc0 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000bfc8 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000bfd0 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000bfd8 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000bfe0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000bfe8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000bff0 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000bff8 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000c000 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000c008 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000c010 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000c018 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000c020 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000c028 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000c030 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000c038 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000c040 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000c048 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000c050 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000c058 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000c060 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000c068 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000c070 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000c078 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000c080 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000c088 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000c090 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000c098 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000c0a0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000c0a8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000c0b0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000c0b8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000c0c0 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000c0c8 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000c0d0 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000c0d8 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000c0e0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000c0e8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000c0f0 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000c0f8 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000c100 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000c108 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000c110 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000c118 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000c120 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000c128 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000c130 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000c138 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000c140 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000c148 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000c150 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000c158 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000c160 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000c168 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000c170 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000c178 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000c180 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000c188 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000c190 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000c198 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000c1a0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000c1a8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000c1b0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000c1b8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000c1c0 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000c1c8 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000c1d0 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000c1d8 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000c1e0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000c1e8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000c1f0 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000c1f8 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000c200 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000c208 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000c210 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000c218 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000c220 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000c228 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000c230 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000c238 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000c240 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000c248 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000c250 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000c258 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000c260 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000c268 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000c270 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000c278 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000c280 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000c288 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000c290 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000c298 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000c2a0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000c2a8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000c2b0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000c2b8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000c2c0 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000c2c8 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000c2d0 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000c2d8 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000c2e0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000c2e8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000c2f0 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000c2f8 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000c300 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000c308 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000c310 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000c318 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000c320 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000c328 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000c330 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000c338 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000c340 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000c348 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000c350 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000c358 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000c360 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000c368 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000c370 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000c378 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000c380 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000c388 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000c390 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000c398 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000c3a0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000c3a8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000c3b0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000c3b8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000c3c0 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000c3c8 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000c3d0 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000c3d8 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000c3e0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000c3e8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000c3f0 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000c3f8 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000c400 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000c408 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000c410 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000c418 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000c420 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000c428 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000c430 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000c438 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000c440 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000c448 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000c450 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000c458 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000c460 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000c468 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000c470 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000c478 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000c480 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000c488 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000c490 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000c498 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000c4a0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000c4a8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000c4b0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000c4b8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000c4c0 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000c4c8 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000c4d0 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000c4d8 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000c4e0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000c4e8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000c4f0 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000c4f8 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000c500 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000c508 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000c510 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000c518 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000c520 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000c528 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000c530 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000c538 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000c540 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000c548 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000c550 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000c558 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000c560 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000c568 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000c570 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000c578 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000c580 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000c588 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000c590 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000c598 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000c5a0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000c5a8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000c5b0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000c5b8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000c5c0 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000c5c8 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000c5d0 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000c5d8 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000c5e0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000c5e8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000c5f0 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000c5f8 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000c600 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000c608 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000c610 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000c618 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000c620 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000c628 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000c630 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000c638 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000c640 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000c648 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000c650 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000c658 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000c660 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000c668 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000c670 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000c678 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000c680 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000c688 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000c690 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000c698 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000c6a0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000c6a8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000c6b0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000c6b8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000c6c0 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000c6c8 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000c6d0 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000c6d8 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000c6e0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000c6e8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000c6f0 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000c6f8 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000c700 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000c708 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000c710 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000c718 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000c720 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000c728 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000c730 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000c738 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000c740 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000c748 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000c750 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000c758 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000c760 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000c768 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000c770 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000c778 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000c780 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000c788 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000c790 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000c798 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000c7a0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000c7a8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000c7b0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000c7b8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000c7c0 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000c7c8 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000c7d0 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000c7d8 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000c7e0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000c7e8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000c7f0 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000c7f8 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000c800 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000c808 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000c810 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000c818 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000c820 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000c828 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000c830 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000c838 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000c840 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000c848 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000c850 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000c858 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000c860 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000c868 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000c870 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000c878 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000c880 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000c888 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000c890 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000c898 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000c8a0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000c8a8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000c8b0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000c8b8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000c8c0 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000c8c8 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000c8d0 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000c8d8 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000c8e0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000c8e8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000c8f0 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000c8f8 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000c900 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000c908 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000c910 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000c918 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000c920 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000c928 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000c930 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000c938 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000c940 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000c948 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000c950 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000c958 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000c960 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000c968 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000c970 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000c978 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000c980 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000c988 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000c990 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000c998 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000c9a0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000c9a8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000c9b0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000c9b8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000c9c0 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000c9c8 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000c9d0 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000c9d8 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000c9e0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000c9e8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000c9f0 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000c9f8 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000ca00 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000ca08 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000ca10 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000ca18 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000ca20 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000ca28 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000ca30 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000ca38 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000ca40 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000ca48 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000ca50 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000ca58 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000ca60 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000ca68 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000ca70 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000ca78 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000ca80 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000ca88 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000ca90 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000ca98 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000caa0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000caa8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000cab0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000cab8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000cac0 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000cac8 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000cad0 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000cad8 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000cae0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000cae8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000caf0 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000caf8 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000cb00 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000cb08 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000cb10 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000cb18 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000cb20 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000cb28 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000cb30 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000cb38 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000cb40 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000cb48 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000cb50 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000cb58 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000cb60 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000cb68 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000cb70 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000cb78 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000cb80 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000cb88 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000cb90 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000cb98 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000cba0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000cba8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000cbb0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000cbb8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000cbc0 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000cbc8 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000cbd0 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000cbd8 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000cbe0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000cbe8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000cbf0 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000cbf8 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000cc00 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000cc08 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000cc10 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000cc18 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000cc20 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000cc28 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000cc30 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000cc38 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000cc40 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000cc48 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000cc50 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000cc58 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000cc60 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000cc68 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000cc70 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000cc78 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000cc80 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000cc88 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000cc90 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000cc98 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000cca0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000cca8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000ccb0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000ccb8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000ccc0 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000ccc8 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000ccd0 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000ccd8 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000cce0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000cce8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ccf0 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ccf8 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000cd00 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000cd08 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000cd10 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000cd18 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000cd20 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000cd28 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000cd30 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000cd38 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000cd40 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000cd48 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000cd50 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000cd58 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000cd60 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000cd68 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000cd70 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000cd78 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000cd80 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000cd88 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000cd90 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000cd98 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000cda0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000cda8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000cdb0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000cdb8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000cdc0 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000cdc8 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000cdd0 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000cdd8 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000cde0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000cde8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000cdf0 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000cdf8 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000ce00 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000ce08 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000ce10 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000ce18 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000ce20 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000ce28 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000ce30 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000ce38 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000ce40 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000ce48 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000ce50 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000ce58 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000ce60 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000ce68 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000ce70 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000ce78 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000ce80 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000ce88 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000ce90 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000ce98 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000cea0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000cea8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000ceb0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000ceb8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000cec0 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000cec8 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000ced0 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000ced8 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000cee0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000cee8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000cef0 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000cef8 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000cf00 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000cf08 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000cf10 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000cf18 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000cf20 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000cf28 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000cf30 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000cf38 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000cf40 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000cf48 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000cf50 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000cf58 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000cf60 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000cf68 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000cf70 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000cf78 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000cf80 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000cf88 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000cf90 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000cf98 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000cfa0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000cfa8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000cfb0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000cfb8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000cfc0 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000cfc8 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000cfd0 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000cfd8 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000cfe0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000cfe8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000cff0 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000cff8 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000d000 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000d008 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000d010 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000d018 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000d020 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000d028 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000d030 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000d038 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000d040 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000d048 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000d050 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000d058 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000d060 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000d068 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000d070 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000d078 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000d080 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000d088 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000d090 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000d098 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000d0a0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000d0a8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000d0b0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000d0b8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000d0c0 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000d0c8 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000d0d0 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000d0d8 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000d0e0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000d0e8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000d0f0 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000d0f8 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000d100 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000d108 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000d110 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000d118 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000d120 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000d128 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000d130 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000d138 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000d140 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000d148 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000d150 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000d158 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000d160 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000d168 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000d170 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000d178 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000d180 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000d188 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000d190 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000d198 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000d1b0 .p2align 4, 0x00 + //0x0000d1b0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000d1b0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000d1b4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000d1b8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000d1bc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000d1c0 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000d1c4 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000d1c8 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000d1cc .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000d1d0 .long 26 + //0x0000d1d4 .p2align 2, 0x00 + //0x0000d1d4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000d1d4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d1d8 .p2align 4, 0x00 + //0x0000d1e0 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000d1e0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000d1f0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000d200 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000d210 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000d220 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000d230 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000d240 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000d250 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000d260 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000d270 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000d280 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000d290 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000d2a0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d2a8 .p2align 4, 0x00 + //0x0000d2b0 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000d2b0 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000d2b8 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000d2c0 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000d2c8 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000d2d0 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000d2d8 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000d2e0 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000d2e8 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000d2f0 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000d2f8 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000d300 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000d308 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000d310 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000d318 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000d320 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000d328 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000d330 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000d338 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000d340 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000d348 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000d350 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000d358 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000d360 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000d368 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000d370 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000d378 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000d380 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000d388 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000d390 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000d398 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000d3a0 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000d3a8 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000d3b0 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000d3b8 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000d3c0 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000d3c8 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000d3d0 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000d3d8 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000d3e0 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000d3e8 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000d3f0 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000d3f8 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000d400 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000d408 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000d410 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000d418 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000d420 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000d428 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000d430 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000d438 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000d440 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000d448 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000d450 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000d458 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000d460 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000d468 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000d470 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000d478 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000d480 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000d488 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000d490 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000d498 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000d4a0 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000d4a8 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000d4b0 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000d4b8 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000d4c0 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000d4c8 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000d4d0 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000d4d8 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000d4e0 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000d4e8 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000d4f0 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000d4f8 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000d500 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000d508 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000d510 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000d518 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000d520 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000d528 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000d530 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000d538 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000d540 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000d548 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000d550 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000d558 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000d560 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000d568 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000d570 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000d578 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000d580 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000d588 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000d590 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000d598 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000d5a0 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000d5a8 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000d5b0 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000d5b8 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000d5c0 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000d5c8 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000d5d0 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000d5d8 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000d5e0 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000d5e8 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000d5f0 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000d5f8 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000d600 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000d608 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000d610 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000d618 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000d620 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000d628 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000d630 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000d638 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000d640 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000d648 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000d650 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000d658 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000d660 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000d668 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000d670 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000d678 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000d680 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000d688 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000d690 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000d698 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000d6a0 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000d6a8 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000d6b0 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000d6b8 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000d6c0 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000d6c8 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000d6d0 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000d6d8 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000d6e0 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000d6e8 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000d6f0 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000d6f8 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000d700 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000d708 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000d710 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000d718 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000d720 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000d728 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000d730 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000d738 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000d740 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000d748 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000d750 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000d758 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000d760 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000d768 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000d770 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000d778 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000d780 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000d788 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000d790 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000d798 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000d7a0 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000d7a8 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000d7b0 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000d7b8 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000d7c0 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000d7c8 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000d7d0 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000d7d8 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000d7e0 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000d7e8 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000d7f0 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000d7f8 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000d800 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000d808 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000d810 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000d818 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000d820 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000d828 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000d830 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000d838 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000d840 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000d848 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000d850 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000d858 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000d860 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000d868 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000d870 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000d878 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000d880 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000d888 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000d890 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000d898 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000d8a0 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000d8a8 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000d8b0 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000d8b8 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000d8c0 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000d8c8 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000d8d0 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000d8d8 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000d8e0 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000d8e8 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000d8f0 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000d8f8 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000d900 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000d908 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000d910 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000d918 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000d920 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000d928 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000d930 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000d938 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000d940 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000d948 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000d950 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000d958 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000d960 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000d968 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000d970 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000d978 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000d980 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000d988 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000d990 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000d998 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000d9a0 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000d9a8 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000d9b0 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000d9b8 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000d9c0 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000d9c8 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000d9d0 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000d9d8 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000d9e0 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000d9e8 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000d9f0 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000d9f8 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000da00 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000da08 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000da10 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000da18 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000da20 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000da28 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000da30 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000da38 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000da40 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000da48 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000da50 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000da58 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000da60 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000da68 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000da70 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000da78 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000da80 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000da88 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000da90 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000da98 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000daa0 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000daa8 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000dab0 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000dab8 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000dac0 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000dac8 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000dad0 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000dad8 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000dae0 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000dae8 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000daf0 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000daf8 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000db00 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000db08 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000db10 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000db18 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000db20 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000db28 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000db30 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000db38 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000db40 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000db48 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000db50 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000db58 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000db60 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000db68 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000db70 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000db78 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000db80 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000db88 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000db90 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000db98 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000dba0 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000dba8 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000dbb0 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000dbb8 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000dbc0 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000dbc8 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000dbd0 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000dbd8 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000dbe0 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000dbe8 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000dbf0 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000dbf8 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000dc00 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000dc08 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000dc10 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000dc18 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000dc20 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000dc28 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000dc30 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000dc38 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000dc40 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000dc48 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000dc50 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000dc58 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000dc60 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000dc68 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000dc70 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000dc78 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000dc80 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000dc88 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000dc90 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000dc98 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000dca0 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000dca8 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000dcb0 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000dcb8 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000dcc0 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000dcc8 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000dcd0 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000dcd8 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000dce0 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000dce8 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000dcf0 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000dcf8 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000dd00 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000dd08 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000dd10 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000dd18 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000dd20 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000dd28 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000dd30 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000dd38 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000dd40 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000dd48 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000dd50 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000dd58 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000dd60 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000dd68 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000dd70 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000dd78 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000dd80 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000dd88 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000dd90 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000dd98 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000dda0 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000dda8 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000ddb0 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000ddb8 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000ddc0 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000ddc8 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000ddd0 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000ddd8 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000dde0 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000dde8 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000ddf0 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000ddf8 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000de00 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000de08 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000de10 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000de18 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000de20 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000de28 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000de30 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000de38 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000de40 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000de48 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000de50 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000de58 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000de60 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000de68 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000de70 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000de78 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000de80 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000de88 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000de90 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000de98 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000dea0 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000dea8 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000deb0 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000deb8 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000dec0 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000dec8 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000ded0 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000ded8 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000dee0 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000dee8 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000def0 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000def8 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000df00 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000df08 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000df10 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000df18 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000df20 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000df28 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000df30 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000df38 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000df40 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000df48 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000df50 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000df58 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000df60 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000df68 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000df70 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000df78 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000df80 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000df88 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000df90 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000df98 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000dfa0 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000dfa8 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000dfb0 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000dfb8 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000dfc0 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000dfc8 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000dfd0 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000dfd8 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000dfe0 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000dfe8 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000dff0 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000dff8 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000e000 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000e008 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000e010 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000e018 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000e020 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000e028 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000e030 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000e038 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000e040 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000e048 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000e050 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000e058 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000e060 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000e068 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000e070 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000e078 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000e080 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000e088 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000e090 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000e098 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000e0a0 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000e0a8 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000e0b0 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000e0b8 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000e0c0 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000e0c8 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000e0d0 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000e0d8 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000e0e0 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000e0e8 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000e0f0 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000e0f8 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000e100 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000e108 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000e110 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000e118 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000e120 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000e128 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000e130 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000e138 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000e140 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000e148 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000e150 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000e158 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000e160 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000e168 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000e170 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000e178 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000e180 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000e188 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000e190 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000e198 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000e1a0 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000e1a8 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000e1b0 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000e1b8 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000e1c0 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000e1c8 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000e1d0 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000e1d8 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000e1e0 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000e1e8 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000e1f0 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000e1f8 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000e200 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000e208 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000e210 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000e218 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000e220 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000e228 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000e230 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000e238 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000e240 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000e248 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000e250 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000e258 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000e260 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000e268 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000e270 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000e278 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000e280 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000e288 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000e290 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000e298 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000e2a0 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000e2a8 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000e2b0 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000e2b8 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000e2c0 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000e2c8 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000e2d0 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000e2d8 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000e2e0 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000e2e8 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000e2f0 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000e2f8 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000e300 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000e308 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000e310 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000e318 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000e320 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000e328 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000e330 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000e338 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000e340 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000e348 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000e350 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000e358 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000e360 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000e368 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000e370 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000e378 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000e380 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000e388 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000e390 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000e398 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000e3a0 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000e3a8 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000e3b0 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000e3b8 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000e3c0 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000e3c8 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000e3d0 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000e3d8 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000e3e0 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000e3e8 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000e3f0 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000e3f8 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000e400 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000e408 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000e410 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000e418 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000e420 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000e428 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000e430 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000e438 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000e440 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000e448 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000e450 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000e458 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000e460 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000e468 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000e470 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000e478 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000e480 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000e488 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000e490 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000e498 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000e4a0 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000e4a8 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000e4b0 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000e4b8 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000e4c0 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000e4c8 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000e4d0 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000e4d8 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000e4e0 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000e4e8 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000e4f0 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e4f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000e500 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e508 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000e510 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e518 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000e520 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e528 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000e530 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e538 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000e540 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e548 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000e550 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e558 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000e560 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e568 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000e570 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e578 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000e580 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e588 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000e590 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e598 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000e5a0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000e5b0 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000e5c0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5c8 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000e5d0 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5d8 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000e5e0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5e8 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000e5f0 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e5f8 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000e600 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e608 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000e610 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e618 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000e620 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e628 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000e630 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e638 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000e640 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e648 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000e650 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e658 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000e660 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e668 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000e670 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e678 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000e680 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e688 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000e690 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e698 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000e6a0 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000e6a8 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000e6b0 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000e6b8 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000e6c0 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000e6c8 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000e6d0 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000e6d8 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000e6e0 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000e6e8 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000e6f0 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000e6f8 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000e700 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000e708 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000e710 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000e718 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000e720 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000e728 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000e730 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000e738 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000e740 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000e748 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000e750 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000e758 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000e760 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000e768 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000e770 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000e778 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000e780 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000e788 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000e790 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000e798 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000e7a0 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000e7a8 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000e7b0 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000e7b8 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000e7c0 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000e7c8 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000e7d0 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000e7d8 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000e7e0 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000e7e8 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000e7f0 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000e7f8 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000e800 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000e808 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000e810 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000e818 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000e820 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000e828 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000e830 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000e838 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000e840 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000e848 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000e850 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000e858 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000e860 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000e868 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000e870 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000e878 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000e880 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000e888 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000e890 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000e898 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000e8a0 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000e8a8 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000e8b0 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000e8b8 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000e8c0 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000e8c8 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000e8d0 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000e8d8 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000e8e0 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000e8e8 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000e8f0 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000e8f8 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000e900 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000e908 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000e910 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000e918 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000e920 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000e928 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000e930 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000e938 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000e940 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000e948 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000e950 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000e958 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000e960 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000e968 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000e970 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000e978 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000e980 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000e988 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000e990 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000e998 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000e9a0 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000e9a8 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000e9b0 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000e9b8 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000e9c0 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000e9c8 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000e9d0 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000e9d8 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000e9e0 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000e9e8 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000e9f0 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000e9f8 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000ea00 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000ea08 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000ea10 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000ea18 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000ea20 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000ea28 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000ea30 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000ea38 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000ea40 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000ea48 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000ea50 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000ea58 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000ea60 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000ea68 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000ea70 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000ea78 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000ea80 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000ea88 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000ea90 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000ea98 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000eaa0 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000eaa8 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000eab0 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000eab8 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000eac0 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000eac8 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000ead0 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000ead8 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000eae0 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000eae8 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000eaf0 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000eaf8 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000eb00 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000eb08 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000eb10 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000eb18 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000eb20 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000eb28 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000eb30 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000eb38 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000eb40 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000eb48 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000eb50 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000eb58 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000eb60 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000eb68 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000eb70 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000eb78 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000eb80 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000eb88 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000eb90 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000eb98 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000eba0 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000eba8 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000ebb0 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000ebb8 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000ebc0 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000ebc8 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000ebd0 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000ebd8 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000ebe0 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000ebe8 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000ebf0 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000ebf8 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000ec00 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000ec08 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000ec10 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000ec18 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000ec20 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000ec28 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000ec30 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000ec38 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000ec40 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000ec48 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000ec50 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000ec58 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000ec60 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000ec68 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000ec70 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000ec78 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000ec80 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000ec88 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000ec90 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000ec98 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000eca0 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000eca8 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000ecb0 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000ecb8 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000ecc0 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000ecc8 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000ecd0 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000ecd8 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000ece0 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000ece8 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000ecf0 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000ecf8 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000ed00 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000ed08 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000ed10 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000ed18 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000ed20 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000ed28 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000ed30 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000ed38 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000ed40 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000ed48 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000ed50 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000ed58 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000ed60 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000ed68 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000ed70 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000ed78 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000ed80 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000ed88 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000ed90 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000ed98 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000eda0 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000eda8 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000edb0 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000edb8 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000edc0 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000edc8 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000edd0 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000edd8 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000ede0 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000ede8 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000edf0 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000edf8 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000ee00 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000ee08 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000ee10 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000ee18 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000ee20 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000ee28 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000ee30 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000ee38 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000ee40 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000ee48 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000ee50 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000ee58 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000ee60 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000ee68 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000ee70 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000ee78 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000ee80 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000ee88 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000ee90 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000ee98 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000eea0 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000eea8 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000eeb0 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000eeb8 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000eec0 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000eec8 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000eed0 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000eed8 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000eee0 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000eee8 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000eef0 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000eef8 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000ef00 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000ef08 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000ef10 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000ef18 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000ef20 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000ef28 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000ef30 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000ef38 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ef40 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ef48 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000ef50 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000ef58 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000ef60 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000ef68 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000ef70 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000ef78 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000ef80 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000ef88 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000ef90 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000ef98 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000efa0 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000efa8 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000efb0 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000efb8 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000efc0 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000efc8 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000efd0 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000efd8 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000efe0 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000efe8 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000eff0 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000eff8 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000f000 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000f008 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000f010 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000f018 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000f020 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000f028 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000f030 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000f038 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000f040 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000f048 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000f050 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000f058 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000f060 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000f068 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000f070 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000f078 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000f080 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000f088 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000f090 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000f098 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000f0a0 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000f0a8 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000f0b0 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000f0b8 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000f0c0 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000f0c8 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000f0d0 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000f0d8 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000f0e0 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000f0e8 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000f0f0 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000f0f8 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000f100 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000f108 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000f110 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000f118 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000f120 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000f128 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000f130 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000f138 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000f140 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000f148 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000f150 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000f158 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000f160 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000f168 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000f170 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000f178 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000f180 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000f188 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000f190 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000f198 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000f1a0 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000f1a8 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000f1b0 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000f1b8 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000f1c0 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000f1c8 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000f1d0 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000f1d8 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000f1e0 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000f1e8 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000f1f0 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000f1f8 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000f200 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000f208 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000f210 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000f218 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000f220 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000f228 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000f230 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000f238 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000f240 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000f248 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000f250 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000f258 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000f260 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000f268 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000f270 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000f278 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000f280 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000f288 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000f290 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000f298 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000f2a0 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000f2a8 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000f2b0 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000f2b8 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000f2c0 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000f2c8 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000f2d0 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000f2d8 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000f2e0 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000f2e8 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000f2f0 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000f2f8 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000f300 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000f308 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000f310 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000f318 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000f320 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000f328 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000f330 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000f338 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000f340 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000f348 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000f350 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000f358 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000f360 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000f368 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000f370 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000f378 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000f380 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000f388 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000f390 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000f398 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000f3a0 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000f3a8 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000f3b0 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000f3b8 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000f3c0 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000f3c8 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000f3d0 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000f3d8 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000f3e0 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000f3e8 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000f3f0 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000f3f8 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000f400 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000f408 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000f410 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000f418 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000f420 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000f428 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000f430 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000f438 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000f440 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000f448 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000f450 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000f458 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000f460 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000f468 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000f470 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000f478 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000f480 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000f488 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000f490 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000f498 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000f4a0 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000f4a8 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000f4b0 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000f4b8 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000f4c0 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000f4c8 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000f4d0 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000f4d8 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000f4e0 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000f4e8 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000f4f0 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000f4f8 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000f500 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000f508 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000f510 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000f518 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000f520 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000f528 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000f530 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000f538 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000f540 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000f548 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000f550 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000f558 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000f560 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000f568 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000f570 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000f578 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000f580 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000f588 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000f590 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000f598 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000f5a0 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000f5a8 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000f5b0 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000f5b8 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000f5c0 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000f5c8 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000f5d0 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000f5d8 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000f5e0 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000f5e8 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000f5f0 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000f5f8 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000f600 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000f608 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000f610 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000f618 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000f620 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000f628 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000f630 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000f638 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000f640 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000f648 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000f650 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000f658 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000f660 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000f668 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000f670 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000f678 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000f680 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000f688 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000f690 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000f698 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000f6a0 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000f6a8 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000f6b0 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000f6b8 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000f6c0 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000f6c8 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000f6d0 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000f6d8 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000f6e0 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000f6e8 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000f6f0 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000f6f8 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000f700 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000f708 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000f710 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000f718 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000f720 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000f728 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000f730 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000f738 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000f740 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000f748 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000f750 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000f758 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000f760 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000f768 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000f770 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000f778 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000f780 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000f788 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000f790 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000f798 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000f7a0 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000f7a8 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000f7b0 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000f7b8 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000f7c0 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000f7c8 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000f7d0 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000f7d8 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000f7e0 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000f7e8 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000f7f0 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000f7f8 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000f800 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000f808 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000f810 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000f818 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000f820 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000f828 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000f830 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000f838 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000f840 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000f848 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000f850 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000f858 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000f860 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000f868 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000f870 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000f878 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000f880 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000f888 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000f890 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000f898 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000f8a0 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000f8a8 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000f8b0 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000f8b8 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000f8c0 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000f8c8 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000f8d0 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000f8d8 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000f8e0 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000f8e8 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000f8f0 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000f8f8 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000f900 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000f908 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000f910 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000f918 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000f920 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000f928 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000f930 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000f938 .quad 7784369436827535058 + //0x0000f940 .p2align 4, 0x00 + //0x0000f940 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000f940 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, //0x0000f950 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, //0x0000f960 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, //0x0000f970 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, //0x0000f980 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, //0x0000f990 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, //0x0000f9a0 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, //0x0000f9b0 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, //0x0000f9c0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000f9d0 .p2align 4, 0x00 + //0x0000f9d0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9d0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000f9d8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9e0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000f9e8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f9f0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000f9f8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000fa08 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000fa18 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000fa28 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000fa38 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000fa48 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000fa58 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa60 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa68 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa70 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa78 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000fa88 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fa90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000fa98 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faa8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fab0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000fab8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fac0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000fac8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fad0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000fad8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fae0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000fae8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000faf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000faf8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000fb08 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000fb18 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000fb28 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000fb38 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000fb48 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000fb58 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000fb68 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000fb78 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000fb88 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fb90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000fb98 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fba0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000fba8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000fbb8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000fbc8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf0 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fbf8 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, //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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff98 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, //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' + 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' + //0x000109d0 .p2align 4, 0x00 + //0x000109d0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109d0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x000109d8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109e0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x000109e8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000109f0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x000109f8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x00010a08 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x00010a18 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x00010a28 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x00010a38 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x00010a48 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x00010a58 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a60 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a68 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a70 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a78 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x00010a88 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010a90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x00010a98 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010aa8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ab0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x00010ab8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ac0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x00010ac8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ad0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x00010ad8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ae0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x00010ae8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010af0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x00010af8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x00010b08 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x00010b18 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x00010b28 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x00010b38 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x00010b48 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x00010b58 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x00010b68 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x00010b78 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x00010b88 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010b90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x00010b98 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ba0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x00010ba8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x00010bb8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x00010bc8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010bf0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x00010bf8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f90 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00010f98 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\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' + 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' + 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' + //0x000119d0 .p2align 4, 0x00 + //0x000119d0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000119d0 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, //0x000119e0 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, //0x000119f0 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, //0x00011a00 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, //0x00011a10 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, //0x00011a20 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, //0x00011a2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011aad QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011abd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00011acd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00011ad0 .p2align 4, 0x00 + //0x00011ad0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ad0 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, //0x00011ae0 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, //0x00011af0 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, //0x00011b00 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, //0x00011b10 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, //0x00011b20 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, //0x00011b30 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, //0x00011b40 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, //0x00011b46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011b96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011ba6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bb6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011bc6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00011bd0 .p2align 4, 0x00 + //0x00011bd0 __HtmlQuoteTab + 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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011e30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011e38 QUAD $0x000036323030755c // .asciz 8, '\\u0026\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011f90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00011f98 QUAD $0x000063333030755c // .asciz 8, '\\u003c\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011fb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x00011fb8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\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' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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' + 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, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012600 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012610 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012620 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012630 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012640 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, //0x00012650 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00012658 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012660 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00012668 QUAD $0x000039323032755c // .asciz 8, '\\u2029\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012670 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012680 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012690 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000126f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012700 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012710 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012720 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012730 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012740 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012750 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012760 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012770 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012780 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012790 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000127f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012800 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012810 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012820 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012830 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012840 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012850 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012860 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012870 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012880 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012890 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012900 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012910 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012920 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012930 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012940 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012950 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012960 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012970 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012980 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012990 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129b0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129c0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129d0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129e0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129f0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012aa0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ab0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ac0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ad0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ae0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012af0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b30 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b40 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b50 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b60 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b70 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b80 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b90 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ba0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bb0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bc0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00012bd0 .p2align 4, 0x00 + //0x00012bd0 _LSHIFT_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bd0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012be0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bf0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c00 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c10 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c20 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c30 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012c38 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c3c 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, //0x00012c4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012c9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012ca0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ca4 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, //0x00012cb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cc4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012cd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ce4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012d04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012d08 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d0c 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, //0x00012d1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012d6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012d70 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d74 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, //0x00012d84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012da4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012db4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012dd4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012dd8 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ddc 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, //0x00012dec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012dfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012e3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, //0x00012e40 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e44 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, //0x00012e54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 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, //0x00012ea4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012ea8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eac 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, //0x00012ebc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ecc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012edc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012f10 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f14 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, //0x00012f24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012f74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, //0x00012f78 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f7c 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, //0x00012f8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00012fdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00012fe0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012fe4 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, //0x00012ff4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013004 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013014 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013024 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013044 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00013048 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001304c 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, //0x0001305c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001306c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001307c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001308c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001309c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000130ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x000130b0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130b4 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, //0x000130c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000130f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013114 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x04, 0x00, 0x00, 0x00, //0x00013118 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001311c 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, //0x0001312c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001313c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001314c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001315c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001317c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00013180 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013184 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, //0x00013194 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000131e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x000131e8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131ec 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, //0x000131fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001320c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001321c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001322c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001324c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x05, 0x00, 0x00, 0x00, //0x00013250 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013254 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, //0x00013264 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013274 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013284 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013294 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000132b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x000132b8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000132bc 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, //0x000132cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001331c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00013320 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00013324 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, //0x00013334 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013344 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013354 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013364 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013384 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00013388 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001338c 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, //0x0001339c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000133ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000133f0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000133f4 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, //0x00013404 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013414 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013424 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013434 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013454 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00013458 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001345c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001346c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001347c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001348c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001349c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000134bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000134c0 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000134c4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013504 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013524 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00013528 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001352c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001353c 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, //0x0001354c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001355c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001356c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001357c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001358c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00013590 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00013594 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135a4 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, //0x000135b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000135f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x000135f8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000135fc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001360c 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, //0x0001361c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001362c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001363c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001364c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001365c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x08, 0x00, 0x00, 0x00, //0x00013660 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00013664 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013674 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, //0x00013684 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013694 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000136c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x000136c8 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x000136cc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136dc 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, //0x000136ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001370c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001371c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001372c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013730 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00013734 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013744 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, //0x00013754 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013764 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013774 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013784 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013794 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00013798 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x0001379c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ac 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, //0x000137bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000137fc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013800 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00013804 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013814 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, //0x00013824 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013834 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013844 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013854 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013864 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013868 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x0001386c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001387c 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, //0x0001388c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001389c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000138cc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x000138d0 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x000138d4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000138e4 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, //0x000138f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013904 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013914 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013924 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013934 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00013938 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x0001393c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001394c 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, //0x0001395c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001396c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001397c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001398c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001399c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x000139a0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x000139a4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139b4 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, //0x000139c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000139f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013a04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013a08 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00013a0c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a1c 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, //0x00013a2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013a6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00013a70 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00013a74 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013a84 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, //0x00013a94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ab4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ac4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013ad4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013ad8 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00013adc QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013aec 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, //0x00013afc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b0c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013b3c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013b40 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00013b44 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b54 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, //0x00013b64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b74 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013b94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013ba4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00013ba8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00013bac QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013bbc 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, //0x00013bcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bdc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013bfc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013c0c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013c10 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013c14 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013c24 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, //0x00013c34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c44 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c54 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013c64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013c74 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013c78 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x00013c7c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00013c8c 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, //0x00013c9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013cbc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ccc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013cdc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013ce0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x00013ce4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x00013cf4 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, //0x00013d04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d14 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d24 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d34 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013d44 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013d48 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x00013d4c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x00013d5c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d7c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d8c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013d9c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013dac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013db0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x00013db4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x00013dc4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013dd4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013de4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013df4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e04 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013e14 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013e18 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x00013e1c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x00013e2c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e4c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e5c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013e6c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013e7c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013e80 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013e84 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00013e94 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ea4 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, //0x00013eb4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ec4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ed4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013ee4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013ee8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x00013eec QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x00013efc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f0c 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, //0x00013f1c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f2c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f3c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013f4c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013f50 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013f54 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013f64 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f74 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, //0x00013f84 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013f94 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fa4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00013fb4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013fb8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x00013fbc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x00013fcc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013fdc 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, //0x00013fec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013ffc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001400c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001401c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00014020 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00014024 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00014034 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014044 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, //0x00014054 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014064 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014074 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00014084 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00014088 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001408c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001409c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140ac 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, //0x000140bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000140dc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000140ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000140f0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000140f4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00014104 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014114 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, //0x00014124 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014134 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014144 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00014154 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00014158 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001415c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001416c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001417c 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, //0x0001418c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001419c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000141ac QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000141bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000141c0 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000141c4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000141d4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000141e4 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, //0x000141f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014204 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014214 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00014224 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00014228 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001422c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001423c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001424c 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, //0x0001425c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001426c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001427c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001428c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00014290 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00014294 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000142a4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142b4 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, //0x000142c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000142e4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000142f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000142f8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000142fc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001430c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001431c 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, //0x0001432c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001433c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001434c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001435c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00014360 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00014364 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00014374 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014384 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, //0x00014394 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143a4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143b4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x000143c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000143c8 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000143cc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000143dc QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000143ec 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, //0x000143fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001440c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001441c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x0001442c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00014430 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00014434 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00014444 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014454 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, //0x00014464 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014474 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014484 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, //0x00014494 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014498 .p2align 4, 0x00 + //0x000144a0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000144a0 .quad 0x3ff0000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000144a8 .quad 0x4024000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000144b0 .quad 0x4059000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000144b8 .quad 0x408f400000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000144c0 .quad 0x40c3880000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000144c8 .quad 0x40f86a0000000000 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000144d0 .quad 0x412e848000000000 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000144d8 .quad 0x416312d000000000 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000144e0 .quad 0x4197d78400000000 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000144e8 .quad 0x41cdcd6500000000 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000144f0 .quad 0x4202a05f20000000 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000144f8 .quad 0x42374876e8000000 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00014500 .quad 0x426d1a94a2000000 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00014508 .quad 0x42a2309ce5400000 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00014510 .quad 0x42d6bcc41e900000 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00014518 .quad 0x430c6bf526340000 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00014520 .quad 0x4341c37937e08000 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00014528 .quad 0x4376345785d8a000 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00014530 .quad 0x43abc16d674ec800 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00014538 .quad 0x43e158e460913d00 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00014540 .quad 0x4415af1d78b58c40 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00014548 .quad 0x444b1ae4d6e2ef50 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00014550 .quad 0x4480f0cf064dd592 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00014558 .p2align 4, 0x00 + //0x00014560 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00014560 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00014568 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00014570 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00014578 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00014580 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00014588 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00014590 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00014598 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000145a0 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000145a8 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000145b0 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000145b8 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000145c0 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000145c8 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000145d0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000145d8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000145e0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000145e8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000145f0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000145f8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00014600 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00014608 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00014610 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00014618 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00014620 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00014628 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00014630 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00014638 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00014640 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00014648 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00014650 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00014658 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00014660 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00014668 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00014670 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00014678 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00014680 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00014688 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00014690 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00014698 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x000146a0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x000146a8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x000146b0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x000146b8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x000146c0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x000146c8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x000146d0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x000146d8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x000146e0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x000146e8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x000146f0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x000146f8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00014700 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00014708 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00014710 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00014718 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00014720 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00014728 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00014730 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00014738 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00014740 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00014748 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00014750 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00014758 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00014760 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00014768 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00014770 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00014778 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00014780 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00014788 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00014790 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00014798 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x000147a0 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x000147a8 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x000147b0 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x000147b8 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x000147c0 .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 11e517231..41441f513 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 bfd2f52db..000000000 --- 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 7ed9e4704..c619d8afa 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 cb060909d..c4acc7524 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) - } - } - - 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 +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 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 40cbf1613..5839da99c 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 -//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 __f32toa(out *byte, val float32) (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 __lspace(sp unsafe.Pointer, nb int, off int) (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 __quote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int, flags uint64) (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 __html_escape(sp unsafe.Pointer, nb int, dp unsafe.Pointer, dn *int) (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 __unquote(sp unsafe.Pointer, nb int, dp unsafe.Pointer, ep *int, flags uint64) (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 __value(s unsafe.Pointer, n int, p int, v *types.JsonState, 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 __vstring(s *string, p *int, v *types.JsonState, flags uint64) +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 __vnumber(s *string, p *int, v *types.JsonState) +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 __vsigned(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 __vunsigned(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 __skip_one(s *string, p *int, m *types.StateMachine, flags uint64) (ret int) +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_fast(s *string, p *int) (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_array(s *string, p *int, m *types.StateMachine, flags uint64) (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_object(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_number(s *string, p *int) (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 __validate_one(s *string, p *int, m *types.StateMachine) (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 __get_by_path(s *string, p *int, path *[]interface{}, 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 __validate_utf8(s *string, p *int, 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_fast(s *string) (ret int) \ No newline at end of file +func validate_utf8_fast(s *string) (ret int) { + return __validate_utf8_fast(rt.NoEscape(unsafe.Pointer(s))) +} + +//go:nosplit +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/native_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl index bd9ce0c73..48e47cf61 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,66 +520,74 @@ 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) } +func TestNative_SkipNumberInJson(t *testing.T) { + p := 0x13 + s := "{\"h\":\"1.00000\",\"i\":true,\"pass3\":1}" + q := skip_number(&s, &p) + assert.Equal(t, 0x13, p) + assert.Equal(t, -2, q) +} + 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 +598,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 898bad431..000000000 --- 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 2682825ed..f87dac89d 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,667 @@ package sse -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr - -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 +import ( + `github.com/bytedance/sonic/loader` ) const ( - _stack__f32toa = 48 + _entry__f32toa = 31344 + _entry__f64toa = 128 + _entry__format_significand = 36272 + _entry__format_integer = 3280 + _entry__fsm_exec = 18832 + _entry__advance_string = 15024 + _entry__advance_string_default = 37808 + _entry__do_skip_number = 21376 + _entry__get_by_path = 26768 + _entry__skip_one_fast = 22896 + _entry__unescape = 38752 + _entry__unhex16_is = 9584 + _entry__html_escape = 9776 + _entry__i64toa = 3712 + _entry__u64toa = 3984 + _entry__lspace = 16 + _entry__quote = 5472 + _entry__skip_array = 18800 + _entry__skip_number = 22496 + _entry__skip_object = 21024 + _entry__skip_one = 22672 + _entry__unquote = 7248 + _entry__validate_one = 22720 + _entry__validate_utf8 = 30096 + _entry__validate_utf8_fast = 30784 + _entry__value = 13072 + _entry__vnumber = 16400 + _entry__atof_eisel_lemire64 = 11072 + _entry__atof_native = 12464 + _entry__decimal_to_f64 = 11472 + _entry__left_shift = 36752 + _entry__right_shift = 37296 + _entry__vsigned = 18048 + _entry__vstring = 14848 + _entry__vunsigned = 18416 +) + +const ( + _stack__f32toa = 64 _stack__f64toa = 80 - _stack__get_by_path = 240 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 160 + _stack__advance_string = 72 + _stack__advance_string_default = 56 + _stack__do_skip_number = 32 + _stack__get_by_path = 264 + _stack__skip_one_fast = 136 + _stack__unescape = 64 + _stack__unhex16_is = 8 _stack__html_escape = 64 _stack__i64toa = 16 - _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__unquote = 88 - _stack__validate_one = 128 + _stack__lspace = 8 + _stack__quote = 80 + _stack__skip_array = 168 + _stack__skip_number = 88 + _stack__skip_object = 168 + _stack__skip_one = 168 + _stack__unquote = 112 + _stack__validate_one = 168 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 - _stack__value = 328 - _stack__vnumber = 240 + _stack__value = 352 + _stack__vnumber = 264 + _stack__atof_eisel_lemire64 = 40 + _stack__atof_native = 144 + _stack__decimal_to_f64 = 88 + _stack__left_shift = 32 + _stack__right_shift = 16 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 -) - -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 + _stack__vstring = 128 + _stack__vunsigned = 24 ) 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 + _size__f32toa = 3696 + _size__f64toa = 3152 + _size__format_significand = 480 + _size__format_integer = 432 + _size__fsm_exec = 1656 + _size__advance_string = 1328 + _size__advance_string_default = 944 + _size__do_skip_number = 908 + _size__get_by_path = 3328 + _size__skip_one_fast = 3348 + _size__unescape = 704 + _size__unhex16_is = 128 + _size__html_escape = 1296 + _size__i64toa = 272 + _size__u64toa = 1440 + _size__lspace = 96 + _size__quote = 1760 + _size__skip_array = 32 + _size__skip_number = 160 + _size__skip_object = 32 + _size__skip_one = 32 + _size__unquote = 2336 + _size__validate_one = 48 + _size__validate_utf8 = 688 + _size__validate_utf8_fast = 544 + _size__value = 1268 + _size__vnumber = 1648 + _size__atof_eisel_lemire64 = 400 + _size__atof_native = 608 + _size__decimal_to_f64 = 992 + _size__left_shift = 544 + _size__right_shift = 480 + _size__vsigned = 368 + _size__vstring = 128 + _size__vunsigned = 368 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3638, 64}, + {3642, 48}, + {3643, 40}, + {3645, 32}, + {3647, 24}, + {3649, 16}, + {3651, 8}, + {3652, 0}, + {3682, 64}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3033, 56}, + {3037, 48}, + {3038, 40}, + {3040, 32}, + {3042, 24}, + {3044, 16}, + {3046, 8}, + {3047, 0}, + {3138, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {468, 24}, + {469, 16}, + {471, 8}, + {473, 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}, + {1317, 88}, + {1321, 48}, + {1322, 40}, + {1324, 32}, + {1326, 24}, + {1328, 16}, + {1330, 8}, + {1331, 0}, + {1656, 88}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {587, 72}, + {591, 48}, + {592, 40}, + {594, 32}, + {596, 24}, + {598, 16}, + {600, 8}, + {601, 0}, + {1325, 72}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {402, 56}, + {406, 48}, + {407, 40}, + {409, 32}, + {411, 24}, + {413, 16}, + {415, 8}, + {416, 0}, + {936, 56}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {771, 32}, + {772, 24}, + {774, 16}, + {776, 8}, + {777, 0}, + {908, 32}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {3278, 104}, + {3282, 48}, + {3283, 40}, + {3285, 32}, + {3287, 24}, + {3289, 16}, + {3291, 8}, + {3292, 0}, + {3317, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {600, 136}, + {604, 48}, + {605, 40}, + {607, 32}, + {609, 24}, + {611, 16}, + {613, 8}, + {614, 0}, + {3348, 136}, + } + _pcsp__unescape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {246, 56}, + {250, 48}, + {251, 40}, + {253, 32}, + {255, 24}, + {257, 16}, + {259, 8}, + {260, 0}, + {695, 56}, + } + _pcsp__unhex16_is = [][2]uint32{ + {1, 0}, + {35, 8}, + {36, 0}, + {62, 8}, + {63, 0}, + {97, 8}, + {98, 0}, + {121, 8}, + {123, 0}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1281, 64}, + {1285, 48}, + {1286, 40}, + {1288, 32}, + {1290, 24}, + {1292, 16}, + {1294, 8}, + {1296, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {1, 0}, + {171, 8}, + {172, 0}, + {207, 8}, + {208, 0}, + {222, 8}, + {223, 0}, + {247, 8}, + {248, 0}, + {253, 8}, + {259, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {13, 0}, + {162, 8}, + {163, 0}, + {175, 8}, + {240, 0}, + {498, 8}, + {499, 0}, + {519, 8}, + {608, 0}, + {882, 8}, + {976, 0}, + {1434, 8}, + {1436, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {85, 8}, + {87, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1701, 80}, + {1705, 48}, + {1706, 40}, + {1708, 32}, + {1710, 24}, + {1712, 16}, + {1714, 8}, + {1715, 0}, + {1750, 80}, + } + _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}, + {12, 40}, + {13, 48}, + {107, 56}, + {111, 48}, + {112, 40}, + {114, 32}, + {116, 24}, + {118, 16}, + {120, 8}, + {121, 0}, + {145, 56}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1614, 104}, + {1618, 48}, + {1619, 40}, + {1621, 32}, + {1623, 24}, + {1625, 16}, + {1627, 8}, + {1628, 0}, + {2329, 104}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {31, 8}, + {37, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {639, 48}, + {643, 40}, + {644, 32}, + {646, 24}, + {648, 16}, + {650, 8}, + {651, 0}, + {682, 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}, + {439, 88}, + {443, 48}, + {444, 40}, + {446, 32}, + {448, 24}, + {450, 16}, + {452, 8}, + {453, 0}, + {1268, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {150, 120}, + {154, 48}, + {155, 40}, + {157, 32}, + {159, 24}, + {161, 16}, + {163, 8}, + {164, 0}, + {1642, 120}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {315, 40}, + {316, 32}, + {318, 24}, + {320, 16}, + {322, 8}, + {323, 0}, + {387, 40}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {596, 56}, + {600, 8}, + {602, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {951, 56}, + {955, 48}, + {956, 40}, + {958, 32}, + {960, 24}, + {962, 16}, + {964, 8}, + {965, 0}, + {977, 56}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {418, 32}, + {419, 24}, + {421, 16}, + {423, 8}, + {424, 0}, + {539, 32}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {452, 16}, + {453, 8}, + {454, 0}, + {462, 16}, + {463, 8}, + {464, 0}, + {472, 16}, + {473, 8}, + {475, 0}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {111, 16}, + {112, 8}, + {113, 0}, + {124, 16}, + {125, 8}, + {126, 0}, + {278, 16}, + {279, 8}, + {280, 0}, + {284, 16}, + {285, 8}, + {286, 0}, + {340, 16}, + {341, 8}, + {342, 0}, + {353, 16}, + {354, 8}, + {356, 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}, + {4, 8}, + {6, 16}, + {72, 24}, + {73, 16}, + {75, 8}, + {76, 0}, + {87, 24}, + {88, 16}, + {90, 8}, + {91, 0}, + {114, 24}, + {115, 16}, + {117, 8}, + {118, 0}, + {281, 24}, + {282, 16}, + {284, 8}, + {285, 0}, + {336, 24}, + {337, 16}, + {339, 8}, + {340, 0}, + {348, 24}, + {349, 16}, + {351, 8}, + {353, 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}, + {"_unescape", _entry__unescape, _size__unescape, _stack__unescape, _pcsp__unescape}, + {"_unhex16_is", _entry__unhex16_is, _size__unhex16_is, _stack__unhex16_is, _pcsp__unhex16_is}, + {"_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}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_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 000000000..95142757a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_text_amd64.go @@ -0,0 +1,14681 @@ +// +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, 0x89, 0xd0, //0x00000014 movq %rdx, %rax + 0x48, 0x39, 0xd6, //0x00000017 cmpq %rdx, %rsi + 0x0f, 0x84, 0x39, 0x00, 0x00, 0x00, //0x0000001a je LBB0_1 + 0x4c, 0x8d, 0x04, 0x37, //0x00000020 leaq (%rdi,%rsi), %r8 + 0x48, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00000024 movabsq $4294977024, %rdx + 0x90, 0x90, //0x0000002e .p2align 4, 0x90 + //0x00000030 LBB0_3 + 0x0f, 0xbe, 0x0c, 0x07, //0x00000030 movsbl (%rdi,%rax), %ecx + 0x83, 0xf9, 0x20, //0x00000034 cmpl $32, %ecx + 0x0f, 0x87, 0x28, 0x00, 0x00, 0x00, //0x00000037 ja LBB0_7 + 0x48, 0x0f, 0xa3, 0xca, //0x0000003d btq %rcx, %rdx + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00000041 jae LBB0_7 + 0x48, 0x83, 0xc0, 0x01, //0x00000047 addq $1, %rax + 0x48, 0x39, 0xc6, //0x0000004b cmpq %rax, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000004e jne LBB0_3 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00000054 jmp LBB0_6 + //0x00000059 LBB0_1 + 0x48, 0x01, 0xf8, //0x00000059 addq %rdi, %rax + 0x49, 0x89, 0xc0, //0x0000005c movq %rax, %r8 + //0x0000005f LBB0_6 + 0x49, 0x29, 0xf8, //0x0000005f subq %rdi, %r8 + 0x4c, 0x89, 0xc0, //0x00000062 movq %r8, %rax + //0x00000065 LBB0_7 + 0x5d, //0x00000065 popq %rbp + 0xc3, //0x00000066 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00000067 .p2align 4, 0x00 + //0x00000070 LCPI1_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000070 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00000080 .p2align 4, 0x90 + //0x00000080 _f64toa + 0x55, //0x00000080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000081 movq %rsp, %rbp + 0x41, 0x57, //0x00000084 pushq %r15 + 0x41, 0x56, //0x00000086 pushq %r14 + 0x41, 0x55, //0x00000088 pushq %r13 + 0x41, 0x54, //0x0000008a pushq %r12 + 0x53, //0x0000008c pushq %rbx + 0x50, //0x0000008d pushq %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc2, //0x0000008e movq %xmm0, %rdx + 0x48, 0x89, 0xd0, //0x00000093 movq %rdx, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x00000096 shrq $52, %rax + 0x25, 0xff, 0x07, 0x00, 0x00, //0x0000009a andl $2047, %eax + 0x3d, 0xff, 0x07, 0x00, 0x00, //0x0000009f cmpl $2047, %eax + 0x0f, 0x84, 0xee, 0x0b, 0x00, 0x00, //0x000000a4 je LBB1_130 + 0x48, 0x89, 0xfe, //0x000000aa movq %rdi, %rsi + 0xc6, 0x07, 0x2d, //0x000000ad movb $45, (%rdi) + 0x49, 0x89, 0xd5, //0x000000b0 movq %rdx, %r13 + 0x49, 0xc1, 0xed, 0x3f, //0x000000b3 shrq $63, %r13 + 0x4e, 0x8d, 0x3c, 0x2f, //0x000000b7 leaq (%rdi,%r13), %r15 + 0x48, 0x8d, 0x0c, 0x55, 0x00, 0x00, 0x00, 0x00, //0x000000bb leaq (,%rdx,2), %rcx + 0x48, 0x85, 0xc9, //0x000000c3 testq %rcx, %rcx + 0x0f, 0x84, 0x85, 0x02, 0x00, 0x00, //0x000000c6 je LBB1_6 + 0x48, 0xbf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x000000cc movabsq $4503599627370495, %rdi + 0x48, 0x21, 0xfa, //0x000000d6 andq %rdi, %rdx + 0x85, 0xc0, //0x000000d9 testl %eax, %eax + 0x0f, 0x84, 0xbe, 0x0b, 0x00, 0x00, //0x000000db je LBB1_131 + 0x48, 0x83, 0xc7, 0x01, //0x000000e1 addq $1, %rdi + 0x48, 0x09, 0xd7, //0x000000e5 orq %rdx, %rdi + 0x44, 0x8d, 0x88, 0xcd, 0xfb, 0xff, 0xff, //0x000000e8 leal $-1075(%rax), %r9d + 0x8d, 0x88, 0x01, 0xfc, 0xff, 0xff, //0x000000ef leal $-1023(%rax), %ecx + 0x83, 0xf9, 0x34, //0x000000f5 cmpl $52, %ecx + 0x0f, 0x87, 0x1d, 0x00, 0x00, 0x00, //0x000000f8 ja LBB1_7 + 0xb9, 0x33, 0x04, 0x00, 0x00, //0x000000fe movl $1075, %ecx + 0x29, 0xc1, //0x00000103 subl %eax, %ecx + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00000105 movq $-1, %rbx + 0x48, 0xd3, 0xe3, //0x0000010c shlq %cl, %rbx + 0x48, 0xf7, 0xd3, //0x0000010f notq %rbx + 0x48, 0x85, 0xdf, //0x00000112 testq %rbx, %rdi + 0x0f, 0x84, 0x0a, 0x04, 0x00, 0x00, //0x00000115 je LBB1_43 + //0x0000011b LBB1_7 + 0x48, 0x89, 0x75, 0xd0, //0x0000011b movq %rsi, $-48(%rbp) + //0x0000011f LBB1_8 + 0x48, 0x85, 0xd2, //0x0000011f testq %rdx, %rdx + 0x0f, 0x94, 0xc1, //0x00000122 sete %cl + 0x83, 0xf8, 0x02, //0x00000125 cmpl $2, %eax + 0x0f, 0x93, 0xc0, //0x00000128 setae %al + 0x20, 0xc8, //0x0000012b andb %cl, %al + 0x4c, 0x8d, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, //0x0000012d leaq (,%rdi,4), %r8 + 0x0f, 0xb6, 0xc0, //0x00000135 movzbl %al, %eax + 0x41, 0x69, 0xc9, 0x13, 0x44, 0x13, 0x00, //0x00000138 imull $1262611, %r9d, %ecx + 0x44, 0x8d, 0x91, 0x01, 0x01, 0xf8, 0xff, //0x0000013f leal $-524031(%rcx), %r10d + 0x84, 0xc0, //0x00000146 testb %al, %al + 0x44, 0x0f, 0x44, 0xd1, //0x00000148 cmovel %ecx, %r10d + 0x48, 0x8d, 0x1c, 0xb8, //0x0000014c leaq (%rax,%rdi,4), %rbx + 0x48, 0x83, 0xc3, 0xfe, //0x00000150 addq $-2, %rbx + 0x41, 0xc1, 0xfa, 0x16, //0x00000154 sarl $22, %r10d + 0x41, 0x69, 0xca, 0xb1, 0x6c, 0xe5, 0xff, //0x00000158 imull $-1741647, %r10d, %ecx + 0xc1, 0xe9, 0x13, //0x0000015f shrl $19, %ecx + 0x44, 0x01, 0xc9, //0x00000162 addl %r9d, %ecx + 0xbe, 0x24, 0x01, 0x00, 0x00, //0x00000165 movl $292, %esi + 0x44, 0x29, 0xd6, //0x0000016a subl %r10d, %esi + 0x48, 0xc1, 0xe6, 0x04, //0x0000016d shlq $4, %rsi + 0x80, 0xc1, 0x01, //0x00000171 addb $1, %cl + 0x48, 0xd3, 0xe3, //0x00000174 shlq %cl, %rbx + 0x4c, 0x8d, 0x1d, 0x32, 0xc5, 0x00, 0x00, //0x00000177 leaq $50482(%rip), %r11 /* _pow10_ceil_sig.g+0(%rip) */ + 0x4e, 0x8b, 0x64, 0x1e, 0x08, //0x0000017e movq $8(%rsi,%r11), %r12 + 0x48, 0x89, 0xd8, //0x00000183 movq %rbx, %rax + 0x49, 0xf7, 0xe4, //0x00000186 mulq %r12 + 0x49, 0x89, 0xd1, //0x00000189 movq %rdx, %r9 + 0x4e, 0x8b, 0x34, 0x1e, //0x0000018c movq (%rsi,%r11), %r14 + 0x48, 0x89, 0xd8, //0x00000190 movq %rbx, %rax + 0x49, 0xf7, 0xe6, //0x00000193 mulq %r14 + 0x48, 0x89, 0xd3, //0x00000196 movq %rdx, %rbx + 0x4c, 0x01, 0xc8, //0x00000199 addq %r9, %rax + 0x48, 0x83, 0xd3, 0x00, //0x0000019c adcq $0, %rbx + 0x45, 0x31, 0xdb, //0x000001a0 xorl %r11d, %r11d + 0x48, 0x83, 0xf8, 0x02, //0x000001a3 cmpq $2, %rax + 0x41, 0x0f, 0x93, 0xc3, //0x000001a7 setae %r11b + 0x49, 0xd3, 0xe0, //0x000001ab shlq %cl, %r8 + 0x48, 0x8d, 0x34, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x000001ae leaq $2(,%rdi,4), %rsi + 0x4c, 0x89, 0xc0, //0x000001b6 movq %r8, %rax + 0x49, 0xf7, 0xe4, //0x000001b9 mulq %r12 + 0x49, 0x89, 0xd1, //0x000001bc movq %rdx, %r9 + 0x49, 0x09, 0xdb, //0x000001bf orq %rbx, %r11 + 0x4c, 0x89, 0xc0, //0x000001c2 movq %r8, %rax + 0x49, 0xf7, 0xe6, //0x000001c5 mulq %r14 + 0x49, 0x89, 0xd0, //0x000001c8 movq %rdx, %r8 + 0x4c, 0x01, 0xc8, //0x000001cb addq %r9, %rax + 0x49, 0x83, 0xd0, 0x00, //0x000001ce adcq $0, %r8 + 0x31, 0xdb, //0x000001d2 xorl %ebx, %ebx + 0x48, 0x83, 0xf8, 0x02, //0x000001d4 cmpq $2, %rax + 0x0f, 0x93, 0xc3, //0x000001d8 setae %bl + 0x48, 0xd3, 0xe6, //0x000001db shlq %cl, %rsi + 0x48, 0x89, 0xf0, //0x000001de movq %rsi, %rax + 0x49, 0xf7, 0xe4, //0x000001e1 mulq %r12 + 0x48, 0x89, 0xd1, //0x000001e4 movq %rdx, %rcx + 0x48, 0x89, 0xf0, //0x000001e7 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x000001ea mulq %r14 + 0x4c, 0x09, 0xc3, //0x000001ed orq %r8, %rbx + 0x48, 0x01, 0xc8, //0x000001f0 addq %rcx, %rax + 0x48, 0x83, 0xd2, 0x00, //0x000001f3 adcq $0, %rdx + 0x31, 0xc9, //0x000001f7 xorl %ecx, %ecx + 0x48, 0x83, 0xf8, 0x02, //0x000001f9 cmpq $2, %rax + 0x0f, 0x93, 0xc1, //0x000001fd setae %cl + 0x48, 0x09, 0xd1, //0x00000200 orq %rdx, %rcx + 0x83, 0xe7, 0x01, //0x00000203 andl $1, %edi + 0x49, 0x01, 0xfb, //0x00000206 addq %rdi, %r11 + 0x48, 0x29, 0xf9, //0x00000209 subq %rdi, %rcx + 0x48, 0x83, 0xfb, 0x28, //0x0000020c cmpq $40, %rbx + 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00000210 jb LBB1_10 + 0x48, 0xba, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00000216 movabsq $-3689348814741910323, %rdx + 0x4c, 0x89, 0xc0, //0x00000220 movq %r8, %rax + 0x48, 0xf7, 0xe2, //0x00000223 mulq %rdx + 0x48, 0x89, 0xd7, //0x00000226 movq %rdx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x00000229 shrq $5, %rdi + 0x48, 0x8d, 0x04, 0xfd, 0x00, 0x00, 0x00, 0x00, //0x0000022d leaq (,%rdi,8), %rax + 0x48, 0x8d, 0x14, 0x80, //0x00000235 leaq (%rax,%rax,4), %rdx + 0x49, 0x39, 0xd3, //0x00000239 cmpq %rdx, %r11 + 0x40, 0x0f, 0x97, 0xc6, //0x0000023c seta %sil + 0x48, 0x8d, 0x14, 0x80, //0x00000240 leaq (%rax,%rax,4), %rdx + 0x48, 0x83, 0xc2, 0x28, //0x00000244 addq $40, %rdx + 0x31, 0xc0, //0x00000248 xorl %eax, %eax + 0x48, 0x39, 0xca, //0x0000024a cmpq %rcx, %rdx + 0x0f, 0x96, 0xc2, //0x0000024d setbe %dl + 0x40, 0x38, 0xd6, //0x00000250 cmpb %dl, %sil + 0x0f, 0x84, 0xa3, 0x02, 0x00, 0x00, //0x00000253 je LBB1_22 + //0x00000259 LBB1_10 + 0x4c, 0x89, 0xc6, //0x00000259 movq %r8, %rsi + 0x48, 0xc1, 0xee, 0x02, //0x0000025c shrq $2, %rsi + 0x4c, 0x89, 0xc2, //0x00000260 movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xfc, //0x00000263 andq $-4, %rdx + 0x49, 0x39, 0xd3, //0x00000267 cmpq %rdx, %r11 + 0x41, 0x0f, 0x97, 0xc1, //0x0000026a seta %r9b + 0x48, 0x8d, 0x7a, 0x04, //0x0000026e leaq $4(%rdx), %rdi + 0x48, 0x39, 0xcf, //0x00000272 cmpq %rcx, %rdi + 0x0f, 0x96, 0xc0, //0x00000275 setbe %al + 0x44, 0x30, 0xc8, //0x00000278 xorb %r9b, %al + 0x0f, 0x84, 0xe3, 0x00, 0x00, 0x00, //0x0000027b je LBB1_14 + 0x48, 0x83, 0xca, 0x02, //0x00000281 orq $2, %rdx + 0xbf, 0x01, 0x00, 0x00, 0x00, //0x00000285 movl $1, %edi + 0x48, 0x39, 0xd3, //0x0000028a cmpq %rdx, %rbx + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x0000028d ja LBB1_13 + 0x0f, 0x94, 0xc0, //0x00000293 sete %al + 0x41, 0xc0, 0xe8, 0x02, //0x00000296 shrb $2, %r8b + 0x41, 0x20, 0xc0, //0x0000029a andb %al, %r8b + 0x41, 0x0f, 0xb6, 0xf8, //0x0000029d movzbl %r8b, %edi + //0x000002a1 LBB1_13 + 0x48, 0x01, 0xf7, //0x000002a1 addq %rsi, %rdi + 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x000002a4 movabsq $8589934560, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x000002ae leaq $1410065439(%r12), %rax + 0x48, 0x39, 0xc7, //0x000002b6 cmpq %rax, %rdi + 0x0f, 0x86, 0xca, 0x00, 0x00, 0x00, //0x000002b9 jbe LBB1_23 + //0x000002bf LBB1_15 + 0x48, 0x89, 0xf8, //0x000002bf movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x000002c2 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x000002c6 movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x000002cb cmpq $48828125, %rax + 0x0f, 0x82, 0x3c, 0x01, 0x00, 0x00, //0x000002d1 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x000002d7 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x000002da shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x000002de movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x000002e3 cmpq $244140625, %rax + 0x0f, 0x82, 0x24, 0x01, 0x00, 0x00, //0x000002e9 jb LBB1_31 + 0x48, 0x89, 0xf8, //0x000002ef movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x000002f2 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x000002f6 movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x000002fb cmpq $1220703125, %rax + 0x0f, 0x82, 0x0c, 0x01, 0x00, 0x00, //0x00000301 jb LBB1_31 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x00000307 movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x0000030c movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000316 cmpq %rax, %rdi + 0x0f, 0x82, 0xf4, 0x00, 0x00, 0x00, //0x00000319 jb LBB1_31 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x0000031f movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x00000324 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000032e cmpq %rax, %rdi + 0x0f, 0x82, 0xdc, 0x00, 0x00, 0x00, //0x00000331 jb LBB1_31 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000337 movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x00000341 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x00000344 movl $17, %edx + //0x00000349 LBB1_21 + 0x83, 0xda, 0x00, //0x00000349 sbbl $0, %edx + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000034c jmp LBB1_31 + //0x00000351 LBB1_6 + 0x41, 0xc6, 0x07, 0x30, //0x00000351 movb $48, (%r15) + 0x41, 0x29, 0xf7, //0x00000355 subl %esi, %r15d + 0x41, 0x83, 0xc7, 0x01, //0x00000358 addl $1, %r15d + 0x44, 0x89, 0xfb, //0x0000035c movl %r15d, %ebx + 0xe9, 0xf3, 0x08, 0x00, 0x00, //0x0000035f jmp LBB1_128 + //0x00000364 LBB1_14 + 0x48, 0x39, 0xf9, //0x00000364 cmpq %rdi, %rcx + 0x48, 0x83, 0xde, 0xff, //0x00000367 sbbq $-1, %rsi + 0x48, 0x89, 0xf7, //0x0000036b movq %rsi, %rdi + 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x0000036e movabsq $8589934560, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x00000378 leaq $1410065439(%r12), %rax + 0x48, 0x39, 0xc7, //0x00000380 cmpq %rax, %rdi + 0x0f, 0x87, 0x36, 0xff, 0xff, 0xff, //0x00000383 ja LBB1_15 + //0x00000389 LBB1_23 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000389 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x0000038e cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x00000392 jb LBB1_31 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000398 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x0000039d cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x000003a1 jb LBB1_31 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000003a7 movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000003ac cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000003b3 jb LBB1_31 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000003b9 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000003be cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000003c5 jb LBB1_31 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000003cb movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000003d0 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000003d7 jb LBB1_31 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000003dd movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000003e2 cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000003e9 jb LBB1_31 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000003ef movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000003f4 cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000003fb jb LBB1_31 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x00000401 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x00000406 cmpq $100000000, %rdi + 0x0f, 0x83, 0x74, 0x08, 0x00, 0x00, //0x0000040d jae LBB1_129 + //0x00000413 LBB1_31 + 0x46, 0x8d, 0x34, 0x12, //0x00000413 leal (%rdx,%r10), %r14d + 0x42, 0x8d, 0x04, 0x12, //0x00000417 leal (%rdx,%r10), %eax + 0x83, 0xc0, 0x05, //0x0000041b addl $5, %eax + 0x83, 0xf8, 0x1b, //0x0000041e cmpl $27, %eax + 0x0f, 0x82, 0x99, 0x00, 0x00, 0x00, //0x00000421 jb LBB1_39 + 0x4d, 0x8d, 0x67, 0x01, //0x00000427 leaq $1(%r15), %r12 + 0x4c, 0x89, 0xe6, //0x0000042b movq %r12, %rsi + 0xe8, 0x7d, 0x89, 0x00, 0x00, //0x0000042e callq _format_significand + 0x48, 0x89, 0xc3, //0x00000433 movq %rax, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000436 movq $-48(%rbp), %rdi + 0x48, 0x29, 0xf8, //0x0000043a subq %rdi, %rax + 0x4c, 0x29, 0xe8, //0x0000043d subq %r13, %rax + //0x00000440 .p2align 4, 0x90 + //0x00000440 LBB1_33 + 0x48, 0x83, 0xc0, 0xff, //0x00000440 addq $-1, %rax + 0x80, 0x7b, 0xff, 0x30, //0x00000444 cmpb $48, $-1(%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x00000448 leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xee, 0xff, 0xff, 0xff, //0x0000044c je LBB1_33 + 0x41, 0x8a, 0x4f, 0x01, //0x00000452 movb $1(%r15), %cl + 0x41, 0x88, 0x0f, //0x00000456 movb %cl, (%r15) + 0x48, 0x83, 0xf8, 0x02, //0x00000459 cmpq $2, %rax + 0x0f, 0x8c, 0x09, 0x00, 0x00, 0x00, //0x0000045d jl LBB1_36 + 0x48, 0x83, 0xc3, 0x01, //0x00000463 addq $1, %rbx + 0x41, 0xc6, 0x04, 0x24, 0x2e, //0x00000467 movb $46, (%r12) + //0x0000046c LBB1_36 + 0xc6, 0x03, 0x65, //0x0000046c movb $101, (%rbx) + 0x45, 0x85, 0xf6, //0x0000046f testl %r14d, %r14d + 0x0f, 0x8e, 0x5e, 0x01, 0x00, 0x00, //0x00000472 jle LBB1_51 + 0x41, 0x83, 0xc6, 0xff, //0x00000478 addl $-1, %r14d + 0xc6, 0x43, 0x01, 0x2b, //0x0000047c movb $43, $1(%rbx) + 0x44, 0x89, 0xf0, //0x00000480 movl %r14d, %eax + 0x83, 0xf8, 0x64, //0x00000483 cmpl $100, %eax + 0x0f, 0x8c, 0x5f, 0x01, 0x00, 0x00, //0x00000486 jl LBB1_52 + //0x0000048c LBB1_38 + 0x89, 0xc1, //0x0000048c movl %eax, %ecx + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x0000048e movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd1, //0x00000493 imulq %rcx, %rdx + 0x48, 0xc1, 0xea, 0x23, //0x00000497 shrq $35, %rdx + 0x8d, 0x0c, 0x12, //0x0000049b leal (%rdx,%rdx), %ecx + 0x8d, 0x0c, 0x89, //0x0000049e leal (%rcx,%rcx,4), %ecx + 0x29, 0xc8, //0x000004a1 subl %ecx, %eax + 0x48, 0x8d, 0x0d, 0x36, 0xc1, 0x00, 0x00, //0x000004a3 leaq $49462(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x51, //0x000004aa movzwl (%rcx,%rdx,2), %ecx + 0x66, 0x89, 0x4b, 0x02, //0x000004ae movw %cx, $2(%rbx) + 0x0c, 0x30, //0x000004b2 orb $48, %al + 0x88, 0x43, 0x04, //0x000004b4 movb %al, $4(%rbx) + 0x48, 0x83, 0xc3, 0x05, //0x000004b7 addq $5, %rbx + 0xe9, 0x95, 0x07, 0x00, 0x00, //0x000004bb jmp LBB1_127 + //0x000004c0 LBB1_39 + 0x45, 0x85, 0xd2, //0x000004c0 testl %r10d, %r10d + 0x0f, 0x88, 0x45, 0x01, 0x00, 0x00, //0x000004c3 js LBB1_54 + 0x4d, 0x63, 0xf6, //0x000004c9 movslq %r14d, %r14 + 0x4b, 0x8d, 0x1c, 0x37, //0x000004cc leaq (%r15,%r14), %rbx + 0x4c, 0x89, 0xfe, //0x000004d0 movq %r15, %rsi + 0xe8, 0xf8, 0x07, 0x00, 0x00, //0x000004d3 callq _format_integer + 0x48, 0x39, 0xd8, //0x000004d8 cmpq %rbx, %rax + 0x0f, 0x83, 0x70, 0x07, 0x00, 0x00, //0x000004db jae LBB1_104 + 0x4d, 0x01, 0xf7, //0x000004e1 addq %r14, %r15 + 0x4d, 0x89, 0xf8, //0x000004e4 movq %r15, %r8 + 0x49, 0x29, 0xc0, //0x000004e7 subq %rax, %r8 + 0x49, 0x83, 0xf8, 0x08, //0x000004ea cmpq $8, %r8 + 0x0f, 0x83, 0x2a, 0x02, 0x00, 0x00, //0x000004ee jae LBB1_70 + //0x000004f4 LBB1_42 + 0x48, 0x89, 0xc1, //0x000004f4 movq %rax, %rcx + 0xe9, 0x8e, 0x03, 0x00, 0x00, //0x000004f7 jmp LBB1_86 + //0x000004fc LBB1_22 + 0x88, 0xd0, //0x000004fc movb %dl, %al + 0x48, 0x01, 0xc7, //0x000004fe addq %rax, %rdi + 0x41, 0x83, 0xc2, 0x01, //0x00000501 addl $1, %r10d + 0x49, 0xbc, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000505 movabsq $8589934560, %r12 + 0x49, 0x8d, 0x84, 0x24, 0x1f, 0xe4, 0x0b, 0x54, //0x0000050f leaq $1410065439(%r12), %rax + 0x48, 0x39, 0xc7, //0x00000517 cmpq %rax, %rdi + 0x0f, 0x87, 0x9f, 0xfd, 0xff, 0xff, //0x0000051a ja LBB1_15 + 0xe9, 0x64, 0xfe, 0xff, 0xff, //0x00000520 jmp LBB1_23 + //0x00000525 LBB1_43 + 0x48, 0xd3, 0xef, //0x00000525 shrq %cl, %rdi + 0x48, 0xb8, 0xe0, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, //0x00000528 movabsq $8589934560, %rax + 0x48, 0x05, 0x1f, 0xe4, 0x0b, 0x54, //0x00000532 addq $1410065439, %rax + 0x49, 0x89, 0xf6, //0x00000538 movq %rsi, %r14 + 0x48, 0x39, 0xc7, //0x0000053b cmpq %rax, %rdi + 0x0f, 0x86, 0x3d, 0x01, 0x00, 0x00, //0x0000053e jbe LBB1_61 + 0x48, 0x89, 0xf8, //0x00000544 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0b, //0x00000547 shrq $11, %rax + 0xba, 0x0b, 0x00, 0x00, 0x00, //0x0000054b movl $11, %edx + 0x48, 0x3d, 0xdd, 0x0e, 0xe9, 0x02, //0x00000550 cmpq $48828125, %rax + 0x0f, 0x82, 0xaf, 0x01, 0x00, 0x00, //0x00000556 jb LBB1_69 + 0x48, 0x89, 0xf8, //0x0000055c movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0c, //0x0000055f shrq $12, %rax + 0xba, 0x0c, 0x00, 0x00, 0x00, //0x00000563 movl $12, %edx + 0x48, 0x3d, 0x51, 0x4a, 0x8d, 0x0e, //0x00000568 cmpq $244140625, %rax + 0x0f, 0x82, 0x97, 0x01, 0x00, 0x00, //0x0000056e jb LBB1_69 + 0x48, 0x89, 0xf8, //0x00000574 movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x0d, //0x00000577 shrq $13, %rax + 0xba, 0x0d, 0x00, 0x00, 0x00, //0x0000057b movl $13, %edx + 0x48, 0x3d, 0x95, 0x73, 0xc2, 0x48, //0x00000580 cmpq $1220703125, %rax + 0x0f, 0x82, 0x7f, 0x01, 0x00, 0x00, //0x00000586 jb LBB1_69 + 0xba, 0x0e, 0x00, 0x00, 0x00, //0x0000058c movl $14, %edx + 0x48, 0xb8, 0x00, 0x40, 0x7a, 0x10, 0xf3, 0x5a, 0x00, 0x00, //0x00000591 movabsq $100000000000000, %rax + 0x48, 0x39, 0xc7, //0x0000059b cmpq %rax, %rdi + 0x0f, 0x82, 0x67, 0x01, 0x00, 0x00, //0x0000059e jb LBB1_69 + 0xba, 0x0f, 0x00, 0x00, 0x00, //0x000005a4 movl $15, %edx + 0x48, 0xb8, 0x00, 0x80, 0xc6, 0xa4, 0x7e, 0x8d, 0x03, 0x00, //0x000005a9 movabsq $1000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005b3 cmpq %rax, %rdi + 0x0f, 0x82, 0x4f, 0x01, 0x00, 0x00, //0x000005b6 jb LBB1_69 + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x000005bc movabsq $10000000000000000, %rax + 0x48, 0x39, 0xc7, //0x000005c6 cmpq %rax, %rdi + 0xba, 0x11, 0x00, 0x00, 0x00, //0x000005c9 movl $17, %edx + //0x000005ce LBB1_50 + 0x83, 0xda, 0x00, //0x000005ce sbbl $0, %edx + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000005d1 jmp LBB1_69 + //0x000005d6 LBB1_51 + 0xc6, 0x43, 0x01, 0x2d, //0x000005d6 movb $45, $1(%rbx) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000005da movl $1, %eax + 0x44, 0x29, 0xf0, //0x000005df subl %r14d, %eax + 0x83, 0xf8, 0x64, //0x000005e2 cmpl $100, %eax + 0x0f, 0x8d, 0xa1, 0xfe, 0xff, 0xff, //0x000005e5 jge LBB1_38 + //0x000005eb LBB1_52 + 0x83, 0xf8, 0x0a, //0x000005eb cmpl $10, %eax + 0x0f, 0x8c, 0x7f, 0x00, 0x00, 0x00, //0x000005ee jl LBB1_60 + 0x89, 0xc0, //0x000005f4 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xe3, 0xbf, 0x00, 0x00, //0x000005f6 leaq $49123(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000005fd movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x43, 0x02, //0x00000601 movw %ax, $2(%rbx) + 0x48, 0x83, 0xc3, 0x04, //0x00000605 addq $4, %rbx + 0xe9, 0x47, 0x06, 0x00, 0x00, //0x00000609 jmp LBB1_127 + //0x0000060e LBB1_54 + 0x45, 0x85, 0xf6, //0x0000060e testl %r14d, %r14d + 0x0f, 0x8f, 0x9a, 0x03, 0x00, 0x00, //0x00000611 jg LBB1_97 + 0x66, 0x41, 0xc7, 0x07, 0x30, 0x2e, //0x00000617 movw $11824, (%r15) + 0x49, 0x83, 0xc7, 0x02, //0x0000061d addq $2, %r15 + 0x45, 0x85, 0xf6, //0x00000621 testl %r14d, %r14d + 0x0f, 0x89, 0x87, 0x03, 0x00, 0x00, //0x00000624 jns LBB1_97 + 0x41, 0x89, 0xd0, //0x0000062a movl %edx, %r8d + 0x41, 0xf7, 0xd0, //0x0000062d notl %r8d + 0x45, 0x29, 0xd0, //0x00000630 subl %r10d, %r8d + 0x31, 0xc0, //0x00000633 xorl %eax, %eax + 0x41, 0x83, 0xf8, 0x1f, //0x00000635 cmpl $31, %r8d + 0x0f, 0x82, 0x5c, 0x03, 0x00, 0x00, //0x00000639 jb LBB1_95 + 0x49, 0x83, 0xc0, 0x01, //0x0000063f addq $1, %r8 + 0x4c, 0x89, 0xc0, //0x00000643 movq %r8, %rax + 0x4c, 0x21, 0xe0, //0x00000646 andq %r12, %rax + 0x48, 0x8d, 0x48, 0xe0, //0x00000649 leaq $-32(%rax), %rcx + 0x48, 0x89, 0xce, //0x0000064d movq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x05, //0x00000650 shrq $5, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00000654 addq $1, %rsi + 0x41, 0x89, 0xf1, //0x00000658 movl %esi, %r9d + 0x41, 0x83, 0xe1, 0x07, //0x0000065b andl $7, %r9d + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000065f cmpq $224, %rcx + 0x0f, 0x83, 0x41, 0x02, 0x00, 0x00, //0x00000666 jae LBB1_89 + 0x31, 0xc9, //0x0000066c xorl %ecx, %ecx + 0xe9, 0xdf, 0x02, 0x00, 0x00, //0x0000066e jmp LBB1_91 + //0x00000673 LBB1_60 + 0x04, 0x30, //0x00000673 addb $48, %al + 0x88, 0x43, 0x02, //0x00000675 movb %al, $2(%rbx) + 0x48, 0x83, 0xc3, 0x03, //0x00000678 addq $3, %rbx + 0xe9, 0xd4, 0x05, 0x00, 0x00, //0x0000067c jmp LBB1_127 + //0x00000681 LBB1_61 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00000681 movl $1, %edx + 0x48, 0x83, 0xff, 0x0a, //0x00000686 cmpq $10, %rdi + 0x0f, 0x82, 0x7b, 0x00, 0x00, 0x00, //0x0000068a jb LBB1_69 + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00000690 movl $2, %edx + 0x48, 0x83, 0xff, 0x64, //0x00000695 cmpq $100, %rdi + 0x0f, 0x82, 0x6c, 0x00, 0x00, 0x00, //0x00000699 jb LBB1_69 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x0000069f movl $3, %edx + 0x48, 0x81, 0xff, 0xe8, 0x03, 0x00, 0x00, //0x000006a4 cmpq $1000, %rdi + 0x0f, 0x82, 0x5a, 0x00, 0x00, 0x00, //0x000006ab jb LBB1_69 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x000006b1 movl $4, %edx + 0x48, 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x000006b6 cmpq $10000, %rdi + 0x0f, 0x82, 0x48, 0x00, 0x00, 0x00, //0x000006bd jb LBB1_69 + 0xba, 0x05, 0x00, 0x00, 0x00, //0x000006c3 movl $5, %edx + 0x48, 0x81, 0xff, 0xa0, 0x86, 0x01, 0x00, //0x000006c8 cmpq $100000, %rdi + 0x0f, 0x82, 0x36, 0x00, 0x00, 0x00, //0x000006cf jb LBB1_69 + 0xba, 0x06, 0x00, 0x00, 0x00, //0x000006d5 movl $6, %edx + 0x48, 0x81, 0xff, 0x40, 0x42, 0x0f, 0x00, //0x000006da cmpq $1000000, %rdi + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x000006e1 jb LBB1_69 + 0xba, 0x07, 0x00, 0x00, 0x00, //0x000006e7 movl $7, %edx + 0x48, 0x81, 0xff, 0x80, 0x96, 0x98, 0x00, //0x000006ec cmpq $10000000, %rdi + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x000006f3 jb LBB1_69 + 0xba, 0x08, 0x00, 0x00, 0x00, //0x000006f9 movl $8, %edx + 0x48, 0x81, 0xff, 0x00, 0xe1, 0xf5, 0x05, //0x000006fe cmpq $100000000, %rdi + 0x0f, 0x83, 0xa6, 0x05, 0x00, 0x00, //0x00000705 jae LBB1_132 + //0x0000070b LBB1_69 + 0x4c, 0x89, 0xfe, //0x0000070b movq %r15, %rsi + 0xe8, 0xbd, 0x05, 0x00, 0x00, //0x0000070e callq _format_integer + 0x48, 0x89, 0xc3, //0x00000713 movq %rax, %rbx + 0x44, 0x29, 0xf3, //0x00000716 subl %r14d, %ebx + 0xe9, 0x39, 0x05, 0x00, 0x00, //0x00000719 jmp LBB1_128 + //0x0000071e LBB1_70 + 0x49, 0x83, 0xf8, 0x20, //0x0000071e cmpq $32, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000722 jae LBB1_72 + 0x31, 0xd2, //0x00000728 xorl %edx, %edx + 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x0000072a jmp LBB1_82 + //0x0000072f LBB1_72 + 0x4c, 0x89, 0xc2, //0x0000072f movq %r8, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x00000732 andq $-32, %rdx + 0x48, 0x8d, 0x4a, 0xe0, //0x00000736 leaq $-32(%rdx), %rcx + 0x48, 0x89, 0xcf, //0x0000073a movq %rcx, %rdi + 0x48, 0xc1, 0xef, 0x05, //0x0000073d shrq $5, %rdi + 0x48, 0x83, 0xc7, 0x01, //0x00000741 addq $1, %rdi + 0x89, 0xfe, //0x00000745 movl %edi, %esi + 0x83, 0xe6, 0x07, //0x00000747 andl $7, %esi + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x0000074a cmpq $224, %rcx + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00000751 jae LBB1_74 + 0x31, 0xc9, //0x00000757 xorl %ecx, %ecx + 0xe9, 0x9a, 0x00, 0x00, 0x00, //0x00000759 jmp LBB1_76 + //0x0000075e LBB1_74 + 0x48, 0x83, 0xe7, 0xf8, //0x0000075e andq $-8, %rdi + 0x48, 0xf7, 0xdf, //0x00000762 negq %rdi + 0x31, 0xc9, //0x00000765 xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x01, 0xf9, 0xff, 0xff, //0x00000767 movdqa $-1791(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, //0x0000076f .p2align 4, 0x90 + //0x00000770 LBB1_75 + 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x00000770 movdqu %xmm0, (%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x10, //0x00000775 movdqu %xmm0, $16(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x20, //0x0000077b movdqu %xmm0, $32(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x30, //0x00000781 movdqu %xmm0, $48(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x40, //0x00000787 movdqu %xmm0, $64(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x50, //0x0000078d movdqu %xmm0, $80(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x60, //0x00000793 movdqu %xmm0, $96(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x70, //0x00000799 movdqu %xmm0, $112(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x80, 0x00, 0x00, 0x00, //0x0000079f movdqu %xmm0, $128(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x90, 0x00, 0x00, 0x00, //0x000007a8 movdqu %xmm0, $144(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xa0, 0x00, 0x00, 0x00, //0x000007b1 movdqu %xmm0, $160(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xb0, 0x00, 0x00, 0x00, //0x000007ba movdqu %xmm0, $176(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xc0, 0x00, 0x00, 0x00, //0x000007c3 movdqu %xmm0, $192(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xd0, 0x00, 0x00, 0x00, //0x000007cc movdqu %xmm0, $208(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xe0, 0x00, 0x00, 0x00, //0x000007d5 movdqu %xmm0, $224(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0xf0, 0x00, 0x00, 0x00, //0x000007de movdqu %xmm0, $240(%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000007e7 addq $256, %rcx + 0x48, 0x83, 0xc7, 0x08, //0x000007ee addq $8, %rdi + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x000007f2 jne LBB1_75 + //0x000007f8 LBB1_76 + 0x48, 0x85, 0xf6, //0x000007f8 testq %rsi, %rsi + 0x0f, 0x84, 0x37, 0x00, 0x00, 0x00, //0x000007fb je LBB1_79 + 0x48, 0x01, 0xc1, //0x00000801 addq %rax, %rcx + 0x48, 0x83, 0xc1, 0x10, //0x00000804 addq $16, %rcx + 0x48, 0xc1, 0xe6, 0x05, //0x00000808 shlq $5, %rsi + 0x31, 0xff, //0x0000080c xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x5a, 0xf8, 0xff, 0xff, //0x0000080e movdqa $-1958(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000816 .p2align 4, 0x90 + //0x00000820 LBB1_78 + 0xf3, 0x0f, 0x7f, 0x44, 0x39, 0xf0, //0x00000820 movdqu %xmm0, $-16(%rcx,%rdi) + 0xf3, 0x0f, 0x7f, 0x04, 0x39, //0x00000826 movdqu %xmm0, (%rcx,%rdi) + 0x48, 0x83, 0xc7, 0x20, //0x0000082b addq $32, %rdi + 0x48, 0x39, 0xfe, //0x0000082f cmpq %rdi, %rsi + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000832 jne LBB1_78 + //0x00000838 LBB1_79 + 0x49, 0x39, 0xd0, //0x00000838 cmpq %rdx, %r8 + 0x0f, 0x84, 0x10, 0x04, 0x00, 0x00, //0x0000083b je LBB1_104 + 0x41, 0xf6, 0xc0, 0x18, //0x00000841 testb $24, %r8b + 0x0f, 0x84, 0x5a, 0x00, 0x00, 0x00, //0x00000845 je LBB1_88 + //0x0000084b LBB1_82 + 0x4c, 0x89, 0xc6, //0x0000084b movq %r8, %rsi + 0x48, 0x83, 0xe6, 0xf8, //0x0000084e andq $-8, %rsi + 0x48, 0x89, 0xc1, //0x00000852 movq %rax, %rcx + 0x48, 0x01, 0xf1, //0x00000855 addq %rsi, %rcx + 0x48, 0xbf, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00000858 movabsq $3472328296227680304, %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000862 .p2align 4, 0x90 + //0x00000870 LBB1_83 + 0x48, 0x89, 0x3c, 0x10, //0x00000870 movq %rdi, (%rax,%rdx) + 0x48, 0x83, 0xc2, 0x08, //0x00000874 addq $8, %rdx + 0x48, 0x39, 0xd6, //0x00000878 cmpq %rdx, %rsi + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000087b jne LBB1_83 + 0x49, 0x39, 0xf0, //0x00000881 cmpq %rsi, %r8 + 0x0f, 0x84, 0xc7, 0x03, 0x00, 0x00, //0x00000884 je LBB1_104 + //0x0000088a LBB1_86 + 0x48, 0x8b, 0x7d, 0xd0, //0x0000088a movq $-48(%rbp), %rdi + 0x90, 0x90, //0x0000088e .p2align 4, 0x90 + //0x00000890 LBB1_87 + 0xc6, 0x01, 0x30, //0x00000890 movb $48, (%rcx) + 0x48, 0x83, 0xc1, 0x01, //0x00000893 addq $1, %rcx + 0x4c, 0x39, 0xf9, //0x00000897 cmpq %r15, %rcx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x0000089a jne LBB1_87 + 0xe9, 0xb0, 0x03, 0x00, 0x00, //0x000008a0 jmp LBB1_127 + //0x000008a5 LBB1_88 + 0x48, 0x01, 0xd0, //0x000008a5 addq %rdx, %rax + 0xe9, 0x47, 0xfc, 0xff, 0xff, //0x000008a8 jmp LBB1_42 + //0x000008ad LBB1_89 + 0x48, 0x8b, 0x4d, 0xd0, //0x000008ad movq $-48(%rbp), %rcx + 0x4a, 0x8d, 0x1c, 0x29, //0x000008b1 leaq (%rcx,%r13), %rbx + 0x48, 0x81, 0xc3, 0xf2, 0x00, 0x00, 0x00, //0x000008b5 addq $242, %rbx + 0x48, 0x83, 0xe6, 0xf8, //0x000008bc andq $-8, %rsi + 0x48, 0xf7, 0xde, //0x000008c0 negq %rsi + 0x31, 0xc9, //0x000008c3 xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0xa3, 0xf7, 0xff, 0xff, //0x000008c5 movdqa $-2141(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x000008cd LBB1_90 + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x10, 0xff, 0xff, 0xff, //0x000008cd movdqu %xmm0, $-240(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x20, 0xff, 0xff, 0xff, //0x000008d6 movdqu %xmm0, $-224(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x30, 0xff, 0xff, 0xff, //0x000008df movdqu %xmm0, $-208(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x40, 0xff, 0xff, 0xff, //0x000008e8 movdqu %xmm0, $-192(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x50, 0xff, 0xff, 0xff, //0x000008f1 movdqu %xmm0, $-176(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x60, 0xff, 0xff, 0xff, //0x000008fa movdqu %xmm0, $-160(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x0b, 0x70, 0xff, 0xff, 0xff, //0x00000903 movdqu %xmm0, $-144(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0x80, //0x0000090c movdqu %xmm0, $-128(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0x90, //0x00000912 movdqu %xmm0, $-112(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xa0, //0x00000918 movdqu %xmm0, $-96(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xb0, //0x0000091e movdqu %xmm0, $-80(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xc0, //0x00000924 movdqu %xmm0, $-64(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xd0, //0x0000092a movdqu %xmm0, $-48(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xe0, //0x00000930 movdqu %xmm0, $-32(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x0b, 0xf0, //0x00000936 movdqu %xmm0, $-16(%rbx,%rcx) + 0xf3, 0x0f, 0x7f, 0x04, 0x0b, //0x0000093c movdqu %xmm0, (%rbx,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x00000941 addq $256, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00000948 addq $8, %rsi + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x0000094c jne LBB1_90 + //0x00000952 LBB1_91 + 0x4d, 0x85, 0xc9, //0x00000952 testq %r9, %r9 + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00000955 je LBB1_94 + 0x4c, 0x01, 0xe9, //0x0000095b addq %r13, %rcx + 0x48, 0x8b, 0x75, 0xd0, //0x0000095e movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf1, //0x00000962 addq %rsi, %rcx + 0x48, 0x83, 0xc1, 0x12, //0x00000965 addq $18, %rcx + 0x49, 0xc1, 0xe1, 0x05, //0x00000969 shlq $5, %r9 + 0x31, 0xf6, //0x0000096d xorl %esi, %esi + 0x66, 0x0f, 0x6f, 0x05, 0xf9, 0xf6, 0xff, 0xff, //0x0000096f movdqa $-2311(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000977 LBB1_93 + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0xf0, //0x00000977 movdqu %xmm0, $-16(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x04, 0x31, //0x0000097d movdqu %xmm0, (%rcx,%rsi) + 0x48, 0x83, 0xc6, 0x20, //0x00000982 addq $32, %rsi + 0x49, 0x39, 0xf1, //0x00000986 cmpq %rsi, %r9 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00000989 jne LBB1_93 + //0x0000098f LBB1_94 + 0x49, 0x01, 0xc7, //0x0000098f addq %rax, %r15 + 0x49, 0x39, 0xc0, //0x00000992 cmpq %rax, %r8 + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00000995 je LBB1_97 + //0x0000099b LBB1_95 + 0x44, 0x01, 0xf0, //0x0000099b addl %r14d, %eax + 0xf7, 0xd8, //0x0000099e negl %eax + //0x000009a0 .p2align 4, 0x90 + //0x000009a0 LBB1_96 + 0x41, 0xc6, 0x07, 0x30, //0x000009a0 movb $48, (%r15) + 0x49, 0x83, 0xc7, 0x01, //0x000009a4 addq $1, %r15 + 0x83, 0xc0, 0xff, //0x000009a8 addl $-1, %eax + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x000009ab jne LBB1_96 + //0x000009b1 LBB1_97 + 0x4c, 0x89, 0xfe, //0x000009b1 movq %r15, %rsi + 0xe8, 0xf7, 0x83, 0x00, 0x00, //0x000009b4 callq _format_significand + 0x89, 0xc2, //0x000009b9 movl %eax, %edx + 0x44, 0x28, 0xfa, //0x000009bb subb %r15b, %dl + 0x44, 0x28, 0xf2, //0x000009be subb %r14b, %dl + 0x80, 0xc2, 0x01, //0x000009c1 addb $1, %dl + 0x41, 0x89, 0xc2, //0x000009c4 movl %eax, %r10d + 0x45, 0x29, 0xf2, //0x000009c7 subl %r14d, %r10d + 0x45, 0x29, 0xfa, //0x000009ca subl %r15d, %r10d + 0x41, 0x83, 0xc2, 0x01, //0x000009cd addl $1, %r10d + 0x47, 0x8d, 0x04, 0x3e, //0x000009d1 leal (%r14,%r15), %r8d + 0x41, 0x89, 0xc1, //0x000009d5 movl %eax, %r9d + 0x41, 0xf7, 0xd1, //0x000009d8 notl %r9d + 0x45, 0x01, 0xc1, //0x000009db addl %r8d, %r9d + 0x41, 0x29, 0xc0, //0x000009de subl %eax, %r8d + 0x41, 0x83, 0xc0, 0xfe, //0x000009e1 addl $-2, %r8d + 0x31, 0xc9, //0x000009e5 xorl %ecx, %ecx + 0x44, 0x89, 0xc7, //0x000009e7 movl %r8d, %edi + 0x48, 0x89, 0xc3, //0x000009ea movq %rax, %rbx + 0x90, 0x90, 0x90, //0x000009ed .p2align 4, 0x90 + //0x000009f0 LBB1_98 + 0x48, 0x83, 0xc3, 0xff, //0x000009f0 addq $-1, %rbx + 0x80, 0xc2, 0x03, //0x000009f4 addb $3, %dl + 0x83, 0xc7, 0x01, //0x000009f7 addl $1, %edi + 0x80, 0x7c, 0x08, 0xff, 0x30, //0x000009fa cmpb $48, $-1(%rax,%rcx) + 0x48, 0x8d, 0x49, 0xff, //0x000009ff leaq $-1(%rcx), %rcx + 0x0f, 0x84, 0xe7, 0xff, 0xff, 0xff, //0x00000a03 je LBB1_98 + 0x48, 0x8d, 0x1c, 0x08, //0x00000a09 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000a0d addq $1, %rbx + 0x45, 0x85, 0xf6, //0x00000a11 testl %r14d, %r14d + 0x0f, 0x8e, 0x37, 0x02, 0x00, 0x00, //0x00000a14 jle LBB1_104 + 0x89, 0xc6, //0x00000a1a movl %eax, %esi + 0x44, 0x29, 0xfe, //0x00000a1c subl %r15d, %esi + 0x01, 0xce, //0x00000a1f addl %ecx, %esi + 0x83, 0xc6, 0x01, //0x00000a21 addl $1, %esi + 0x41, 0x39, 0xf6, //0x00000a24 cmpl %esi, %r14d + 0x0f, 0x8d, 0x27, 0x00, 0x00, 0x00, //0x00000a27 jge LBB1_105 + 0x45, 0x89, 0xd1, //0x00000a2d movl %r10d, %r9d + 0x49, 0x8d, 0x34, 0x09, //0x00000a30 leaq (%r9,%rcx), %rsi + 0x85, 0xf6, //0x00000a34 testl %esi, %esi + 0x0f, 0x8e, 0xdd, 0x00, 0x00, 0x00, //0x00000a36 jle LBB1_116 + 0x41, 0x89, 0xf0, //0x00000a3c movl %esi, %r8d + 0x49, 0x8d, 0x58, 0xff, //0x00000a3f leaq $-1(%r8), %rbx + 0x48, 0x83, 0xfb, 0x03, //0x00000a43 cmpq $3, %rbx + 0x0f, 0x83, 0x66, 0x00, 0x00, 0x00, //0x00000a47 jae LBB1_110 + 0x31, 0xdb, //0x00000a4d xorl %ebx, %ebx + 0xe9, 0x88, 0x00, 0x00, 0x00, //0x00000a4f jmp LBB1_113 + //0x00000a54 LBB1_105 + 0x44, 0x89, 0xca, //0x00000a54 movl %r9d, %edx + 0x48, 0x29, 0xca, //0x00000a57 subq %rcx, %rdx + 0x85, 0xd2, //0x00000a5a testl %edx, %edx + 0x0f, 0x8e, 0xef, 0x01, 0x00, 0x00, //0x00000a5c jle LBB1_104 + 0x45, 0x89, 0xc3, //0x00000a62 movl %r8d, %r11d + 0x4d, 0x89, 0xd8, //0x00000a65 movq %r11, %r8 + 0x49, 0x29, 0xc8, //0x00000a68 subq %rcx, %r8 + 0x31, 0xf6, //0x00000a6b xorl %esi, %esi + 0x41, 0x83, 0xf8, 0x1f, //0x00000a6d cmpl $31, %r8d + 0x0f, 0x82, 0xf4, 0x01, 0x00, 0x00, //0x00000a71 jb LBB1_125 + 0x49, 0x29, 0xcb, //0x00000a77 subq %rcx, %r11 + 0x45, 0x89, 0xc0, //0x00000a7a movl %r8d, %r8d + 0x49, 0x83, 0xc0, 0x01, //0x00000a7d addq $1, %r8 + 0x4d, 0x21, 0xc4, //0x00000a81 andq %r8, %r12 + 0x41, 0x89, 0xf9, //0x00000a84 movl %edi, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x00000a87 addq $1, %r9 + 0x49, 0x83, 0xe1, 0xe0, //0x00000a8b andq $-32, %r9 + 0x49, 0x8d, 0x74, 0x24, 0xe0, //0x00000a8f leaq $-32(%r12), %rsi + 0x49, 0x89, 0xf2, //0x00000a94 movq %rsi, %r10 + 0x49, 0xc1, 0xea, 0x05, //0x00000a97 shrq $5, %r10 + 0x49, 0x83, 0xc2, 0x01, //0x00000a9b addq $1, %r10 + 0x48, 0x81, 0xfe, 0xe0, 0x00, 0x00, 0x00, //0x00000a9f cmpq $224, %rsi + 0x0f, 0x83, 0x86, 0x00, 0x00, 0x00, //0x00000aa6 jae LBB1_117 + 0x31, 0xff, //0x00000aac xorl %edi, %edi + 0xe9, 0x34, 0x01, 0x00, 0x00, //0x00000aae jmp LBB1_119 + //0x00000ab3 LBB1_110 + 0x49, 0x01, 0xc9, //0x00000ab3 addq %rcx, %r9 + 0x41, 0x83, 0xe1, 0xfc, //0x00000ab6 andl $-4, %r9d + 0x49, 0xf7, 0xd9, //0x00000aba negq %r9 + 0x31, 0xdb, //0x00000abd xorl %ebx, %ebx + 0x90, //0x00000abf .p2align 4, 0x90 + //0x00000ac0 LBB1_111 + 0x48, 0x8d, 0x34, 0x18, //0x00000ac0 leaq (%rax,%rbx), %rsi + 0x8b, 0x7c, 0x31, 0xfd, //0x00000ac4 movl $-3(%rcx,%rsi), %edi + 0x89, 0x7c, 0x31, 0xfe, //0x00000ac8 movl %edi, $-2(%rcx,%rsi) + 0x48, 0x83, 0xc3, 0xfc, //0x00000acc addq $-4, %rbx + 0x49, 0x39, 0xd9, //0x00000ad0 cmpq %rbx, %r9 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000ad3 jne LBB1_111 + 0x48, 0xf7, 0xdb, //0x00000ad9 negq %rbx + //0x00000adc LBB1_113 + 0x41, 0xf6, 0xc0, 0x03, //0x00000adc testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00000ae0 je LBB1_116 + 0x44, 0x0f, 0xb6, 0xc2, //0x00000ae6 movzbl %dl, %r8d + 0x41, 0x83, 0xe0, 0x03, //0x00000aea andl $3, %r8d + 0x49, 0xf7, 0xd8, //0x00000aee negq %r8 + 0x48, 0x89, 0xc6, //0x00000af1 movq %rax, %rsi + 0x48, 0x29, 0xde, //0x00000af4 subq %rbx, %rsi + 0x31, 0xff, //0x00000af7 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000af9 .p2align 4, 0x90 + //0x00000b00 LBB1_115 + 0x48, 0x8d, 0x1c, 0x3e, //0x00000b00 leaq (%rsi,%rdi), %rbx + 0x0f, 0xb6, 0x14, 0x19, //0x00000b04 movzbl (%rcx,%rbx), %edx + 0x88, 0x54, 0x19, 0x01, //0x00000b08 movb %dl, $1(%rcx,%rbx) + 0x48, 0x83, 0xc7, 0xff, //0x00000b0c addq $-1, %rdi + 0x49, 0x39, 0xf8, //0x00000b10 cmpq %rdi, %r8 + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00000b13 jne LBB1_115 + //0x00000b19 LBB1_116 + 0x49, 0x63, 0xd6, //0x00000b19 movslq %r14d, %rdx + 0x41, 0xc6, 0x04, 0x17, 0x2e, //0x00000b1c movb $46, (%r15,%rdx) + 0x48, 0x8d, 0x1c, 0x08, //0x00000b21 leaq (%rax,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x02, //0x00000b25 addq $2, %rbx + 0x48, 0x8b, 0x7d, 0xd0, //0x00000b29 movq $-48(%rbp), %rdi + 0xe9, 0x23, 0x01, 0x00, 0x00, //0x00000b2d jmp LBB1_127 + //0x00000b32 LBB1_117 + 0x44, 0x89, 0xdb, //0x00000b32 movl %r11d, %ebx + 0x48, 0x83, 0xc3, 0x01, //0x00000b35 addq $1, %rbx + 0x48, 0x83, 0xe3, 0xe0, //0x00000b39 andq $-32, %rbx + 0x48, 0x83, 0xc3, 0xe0, //0x00000b3d addq $-32, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x00000b41 shrq $5, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000b45 addq $1, %rbx + 0x48, 0x83, 0xe3, 0xf8, //0x00000b49 andq $-8, %rbx + 0x48, 0xf7, 0xdb, //0x00000b4d negq %rbx + 0x31, 0xff, //0x00000b50 xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x16, 0xf5, 0xff, 0xff, //0x00000b52 movdqa $-2794(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000b5a LBB1_118 + 0x48, 0x8d, 0x34, 0x38, //0x00000b5a leaq (%rax,%rdi), %rsi + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x01, //0x00000b5e movdqu %xmm0, $1(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x11, //0x00000b64 movdqu %xmm0, $17(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x21, //0x00000b6a movdqu %xmm0, $33(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x31, //0x00000b70 movdqu %xmm0, $49(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x41, //0x00000b76 movdqu %xmm0, $65(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x51, //0x00000b7c movdqu %xmm0, $81(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x61, //0x00000b82 movdqu %xmm0, $97(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x44, 0x31, 0x71, //0x00000b88 movdqu %xmm0, $113(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0x81, 0x00, 0x00, 0x00, //0x00000b8e movdqu %xmm0, $129(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0x91, 0x00, 0x00, 0x00, //0x00000b97 movdqu %xmm0, $145(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xa1, 0x00, 0x00, 0x00, //0x00000ba0 movdqu %xmm0, $161(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xb1, 0x00, 0x00, 0x00, //0x00000ba9 movdqu %xmm0, $177(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xc1, 0x00, 0x00, 0x00, //0x00000bb2 movdqu %xmm0, $193(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xd1, 0x00, 0x00, 0x00, //0x00000bbb movdqu %xmm0, $209(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xe1, 0x00, 0x00, 0x00, //0x00000bc4 movdqu %xmm0, $225(%rcx,%rsi) + 0xf3, 0x0f, 0x7f, 0x84, 0x31, 0xf1, 0x00, 0x00, 0x00, //0x00000bcd movdqu %xmm0, $241(%rcx,%rsi) + 0x48, 0x81, 0xc7, 0x00, 0x01, 0x00, 0x00, //0x00000bd6 addq $256, %rdi + 0x48, 0x83, 0xc3, 0x08, //0x00000bdd addq $8, %rbx + 0x0f, 0x85, 0x73, 0xff, 0xff, 0xff, //0x00000be1 jne LBB1_118 + //0x00000be7 LBB1_119 + 0x49, 0x01, 0xc1, //0x00000be7 addq %rax, %r9 + 0x41, 0xf6, 0xc2, 0x07, //0x00000bea testb $7, %r10b + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00000bee je LBB1_122 + 0x41, 0x80, 0xc3, 0x01, //0x00000bf4 addb $1, %r11b + 0x41, 0x80, 0xe3, 0xe0, //0x00000bf8 andb $-32, %r11b + 0x41, 0x80, 0xc3, 0xe0, //0x00000bfc addb $-32, %r11b + 0x41, 0xc0, 0xeb, 0x05, //0x00000c00 shrb $5, %r11b + 0x41, 0x80, 0xc3, 0x01, //0x00000c04 addb $1, %r11b + 0x41, 0x0f, 0xb6, 0xf3, //0x00000c08 movzbl %r11b, %esi + 0x83, 0xe6, 0x07, //0x00000c0c andl $7, %esi + 0x48, 0xc1, 0xe6, 0x05, //0x00000c0f shlq $5, %rsi + 0x48, 0x01, 0xf8, //0x00000c13 addq %rdi, %rax + 0x48, 0x83, 0xc0, 0x11, //0x00000c16 addq $17, %rax + 0x31, 0xff, //0x00000c1a xorl %edi, %edi + 0x66, 0x0f, 0x6f, 0x05, 0x4c, 0xf4, 0xff, 0xff, //0x00000c1c movdqa $-2996(%rip), %xmm0 /* LCPI1_0+0(%rip) */ + //0x00000c24 LBB1_121 + 0x48, 0x8d, 0x1c, 0x38, //0x00000c24 leaq (%rax,%rdi), %rbx + 0xf3, 0x0f, 0x7f, 0x44, 0x19, 0xf0, //0x00000c28 movdqu %xmm0, $-16(%rcx,%rbx) + 0xf3, 0x0f, 0x7f, 0x04, 0x19, //0x00000c2e movdqu %xmm0, (%rcx,%rbx) + 0x48, 0x83, 0xc7, 0x20, //0x00000c33 addq $32, %rdi + 0x48, 0x39, 0xfe, //0x00000c37 cmpq %rdi, %rsi + 0x0f, 0x85, 0xe4, 0xff, 0xff, 0xff, //0x00000c3a jne LBB1_121 + //0x00000c40 LBB1_122 + 0x4a, 0x8d, 0x1c, 0x09, //0x00000c40 leaq (%rcx,%r9), %rbx + 0x48, 0x83, 0xc3, 0x01, //0x00000c44 addq $1, %rbx + 0x4d, 0x39, 0xe0, //0x00000c48 cmpq %r12, %r8 + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00000c4b jne LBB1_124 + //0x00000c51 LBB1_104 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000c51 movq $-48(%rbp), %rdi + //0x00000c55 LBB1_127 + 0x29, 0xfb, //0x00000c55 subl %edi, %ebx + //0x00000c57 LBB1_128 + 0x89, 0xd8, //0x00000c57 movl %ebx, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00000c59 addq $8, %rsp + 0x5b, //0x00000c5d popq %rbx + 0x41, 0x5c, //0x00000c5e popq %r12 + 0x41, 0x5d, //0x00000c60 popq %r13 + 0x41, 0x5e, //0x00000c62 popq %r14 + 0x41, 0x5f, //0x00000c64 popq %r15 + 0x5d, //0x00000c66 popq %rbp + 0xc3, //0x00000c67 retq + //0x00000c68 LBB1_124 + 0x44, 0x89, 0xe6, //0x00000c68 movl %r12d, %esi + //0x00000c6b LBB1_125 + 0x48, 0x8b, 0x7d, 0xd0, //0x00000c6b movq $-48(%rbp), %rdi + 0x90, //0x00000c6f .p2align 4, 0x90 + //0x00000c70 LBB1_126 + 0xc6, 0x03, 0x30, //0x00000c70 movb $48, (%rbx) + 0x48, 0x83, 0xc3, 0x01, //0x00000c73 addq $1, %rbx + 0x83, 0xc6, 0x01, //0x00000c77 addl $1, %esi + 0x39, 0xd6, //0x00000c7a cmpl %edx, %esi + 0x0f, 0x8c, 0xee, 0xff, 0xff, 0xff, //0x00000c7c jl LBB1_126 + 0xe9, 0xce, 0xff, 0xff, 0xff, //0x00000c82 jmp LBB1_127 + //0x00000c87 LBB1_129 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000c87 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000c8e movl $10, %edx + 0xe9, 0xb1, 0xf6, 0xff, 0xff, //0x00000c93 jmp LBB1_21 + //0x00000c98 LBB1_130 + 0x31, 0xdb, //0x00000c98 xorl %ebx, %ebx + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00000c9a jmp LBB1_128 + //0x00000c9f LBB1_131 + 0x48, 0x89, 0x75, 0xd0, //0x00000c9f movq %rsi, $-48(%rbp) + 0x41, 0xb9, 0xce, 0xfb, 0xff, 0xff, //0x00000ca3 movl $-1074, %r9d + 0x48, 0x89, 0xd7, //0x00000ca9 movq %rdx, %rdi + 0xe9, 0x6e, 0xf4, 0xff, 0xff, //0x00000cac jmp LBB1_8 + //0x00000cb1 LBB1_132 + 0x48, 0x81, 0xff, 0x00, 0xca, 0x9a, 0x3b, //0x00000cb1 cmpq $1000000000, %rdi + 0xba, 0x0a, 0x00, 0x00, 0x00, //0x00000cb8 movl $10, %edx + 0xe9, 0x0c, 0xf9, 0xff, 0xff, //0x00000cbd jmp LBB1_50 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000cc2 .p2align 4, 0x90 + //0x00000cd0 _format_integer + 0x55, //0x00000cd0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000cd1 movq %rsp, %rbp + 0x53, //0x00000cd4 pushq %rbx + 0x41, 0x89, 0xd0, //0x00000cd5 movl %edx, %r8d + 0x49, 0x01, 0xf0, //0x00000cd8 addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00000cdb movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00000cde shrq $32, %rax + 0x0f, 0x85, 0x16, 0x00, 0x00, 0x00, //0x00000ce2 jne LBB2_2 + 0x4d, 0x89, 0xc3, //0x00000ce8 movq %r8, %r11 + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000ceb cmpl $10000, %edi + 0x0f, 0x83, 0xc3, 0x00, 0x00, 0x00, //0x00000cf1 jae LBB2_5 + //0x00000cf7 LBB2_4 + 0x89, 0xfa, //0x00000cf7 movl %edi, %edx + 0xe9, 0x1a, 0x01, 0x00, 0x00, //0x00000cf9 jmp LBB2_7 + //0x00000cfe LBB2_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00000cfe movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00000d08 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00000d0b mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00000d0e shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00000d12 imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00000d18 addl %edi, %ecx + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000d1a movl $3518437209, %r9d + 0x48, 0x89, 0xc8, //0x00000d20 movq %rcx, %rax + 0x49, 0x0f, 0xaf, 0xc1, //0x00000d23 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00000d27 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00000d2b imull $10000, %eax, %edi + 0x29, 0xf9, //0x00000d31 subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00000d33 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00000d36 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00000d3a shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000d3e imull $10000, %edi, %edi + 0x29, 0xf8, //0x00000d44 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00000d46 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00000d49 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00000d4c imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00000d53 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00000d57 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00000d5b subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00000d5d movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00000d61 movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00000d64 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00000d67 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00000d6d shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00000d70 imull $100, %edi, %ecx + 0x29, 0xc8, //0x00000d73 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00000d75 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x60, 0xb8, 0x00, 0x00, //0x00000d79 leaq $47200(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00000d80 movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00000d85 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00000d8a movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00000d8f movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00000d94 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00000d99 movw %ax, $-6(%r8) + 0x4d, 0x8d, 0x58, 0xf8, //0x00000d9e leaq $-8(%r8), %r11 + 0x0f, 0xb7, 0x0c, 0x79, //0x00000da2 movzwl (%rcx,%rdi,2), %ecx + 0x66, 0x41, 0x89, 0x48, 0xf8, //0x00000da6 movw %cx, $-8(%r8) + 0x48, 0x89, 0xd7, //0x00000dab movq %rdx, %rdi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00000dae cmpl $10000, %edi + 0x0f, 0x82, 0x3d, 0xff, 0xff, 0xff, //0x00000db4 jb LBB2_4 + //0x00000dba LBB2_5 + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00000dba movl $3518437209, %r9d + 0x4c, 0x8d, 0x15, 0x19, 0xb8, 0x00, 0x00, //0x00000dc0 leaq $47129(%rip), %r10 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000dc7 .p2align 4, 0x90 + //0x00000dd0 LBB2_6 + 0x89, 0xfa, //0x00000dd0 movl %edi, %edx + 0x49, 0x0f, 0xaf, 0xd1, //0x00000dd2 imulq %r9, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00000dd6 shrq $45, %rdx + 0x69, 0xca, 0xf0, 0xd8, 0xff, 0xff, //0x00000dda imull $-10000, %edx, %ecx + 0x01, 0xf9, //0x00000de0 addl %edi, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00000de2 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00000de9 shrq $37, %rax + 0x6b, 0xd8, 0x64, //0x00000ded imull $100, %eax, %ebx + 0x29, 0xd9, //0x00000df0 subl %ebx, %ecx + 0x41, 0x0f, 0xb7, 0x0c, 0x4a, //0x00000df2 movzwl (%r10,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000df7 movw %cx, $-2(%r11) + 0x41, 0x0f, 0xb7, 0x04, 0x42, //0x00000dfc movzwl (%r10,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfc, //0x00000e01 movw %ax, $-4(%r11) + 0x49, 0x83, 0xc3, 0xfc, //0x00000e06 addq $-4, %r11 + 0x81, 0xff, 0xff, 0xe0, 0xf5, 0x05, //0x00000e0a cmpl $99999999, %edi + 0x89, 0xd7, //0x00000e10 movl %edx, %edi + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00000e12 ja LBB2_6 + //0x00000e18 LBB2_7 + 0x83, 0xfa, 0x64, //0x00000e18 cmpl $100, %edx + 0x0f, 0x82, 0x2d, 0x00, 0x00, 0x00, //0x00000e1b jb LBB2_9 + 0x0f, 0xb7, 0xc2, //0x00000e21 movzwl %dx, %eax + 0xc1, 0xe8, 0x02, //0x00000e24 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000e27 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000e2d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00000e30 imull $100, %eax, %ecx + 0x29, 0xca, //0x00000e33 subl %ecx, %edx + 0x0f, 0xb7, 0xca, //0x00000e35 movzwl %dx, %ecx + 0x48, 0x8d, 0x15, 0xa1, 0xb7, 0x00, 0x00, //0x00000e38 leaq $47009(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00000e3f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4b, 0xfe, //0x00000e43 movw %cx, $-2(%r11) + 0x49, 0x83, 0xc3, 0xfe, //0x00000e48 addq $-2, %r11 + 0x89, 0xc2, //0x00000e4c movl %eax, %edx + //0x00000e4e LBB2_9 + 0x83, 0xfa, 0x0a, //0x00000e4e cmpl $10, %edx + 0x0f, 0x82, 0x18, 0x00, 0x00, 0x00, //0x00000e51 jb LBB2_11 + 0x89, 0xd0, //0x00000e57 movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x80, 0xb7, 0x00, 0x00, //0x00000e59 leaq $46976(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00000e60 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x43, 0xfe, //0x00000e64 movw %ax, $-2(%r11) + 0x4c, 0x89, 0xc0, //0x00000e69 movq %r8, %rax + 0x5b, //0x00000e6c popq %rbx + 0x5d, //0x00000e6d popq %rbp + 0xc3, //0x00000e6e retq + //0x00000e6f LBB2_11 + 0x80, 0xc2, 0x30, //0x00000e6f addb $48, %dl + 0x88, 0x16, //0x00000e72 movb %dl, (%rsi) + 0x4c, 0x89, 0xc0, //0x00000e74 movq %r8, %rax + 0x5b, //0x00000e77 popq %rbx + 0x5d, //0x00000e78 popq %rbp + 0xc3, //0x00000e79 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000e7a .p2align 4, 0x90 + //0x00000e80 _i64toa + 0x55, //0x00000e80 pushq %rbp + 0x48, 0x89, 0xe5, //0x00000e81 movq %rsp, %rbp + 0x48, 0x85, 0xf6, //0x00000e84 testq %rsi, %rsi + 0x0f, 0x88, 0xb0, 0x00, 0x00, 0x00, //0x00000e87 js LBB3_12 + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000e8d cmpq $9999, %rsi + 0x0f, 0x87, 0xb7, 0x00, 0x00, 0x00, //0x00000e94 ja LBB3_9 + 0x0f, 0xb7, 0xc6, //0x00000e9a movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000e9d shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000ea0 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000ea6 shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000ea9 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000ead imull $100, %eax, %eax + 0x89, 0xf1, //0x00000eb0 movl %esi, %ecx + 0x29, 0xc1, //0x00000eb2 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x00000eb4 movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x00000eb7 addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000eba cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000ec0 jb LBB3_4 + 0x48, 0x8d, 0x05, 0x13, 0xb7, 0x00, 0x00, //0x00000ec6 leaq $46867(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x00000ecd movb (%rdx,%rax), %al + 0x88, 0x07, //0x00000ed0 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000ed2 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000ed7 jmp LBB3_5 + //0x00000edc LBB3_4 + 0x31, 0xc0, //0x00000edc xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x00000ede cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000ee1 jb LBB3_6 + //0x00000ee7 LBB3_5 + 0x0f, 0xb7, 0xd2, //0x00000ee7 movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000eea orq $1, %rdx + 0x48, 0x8d, 0x35, 0xeb, 0xb6, 0x00, 0x00, //0x00000eee leaq $46827(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000ef5 movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00000ef8 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00000efa addl $1, %eax + 0x88, 0x14, 0x37, //0x00000efd movb %dl, (%rdi,%rsi) + //0x00000f00 LBB3_7 + 0x48, 0x8d, 0x15, 0xd9, 0xb6, 0x00, 0x00, //0x00000f00 leaq $46809(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x00000f07 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00000f0a movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00000f0c addl $1, %eax + 0x88, 0x14, 0x37, //0x00000f0f movb %dl, (%rdi,%rsi) + //0x00000f12 LBB3_8 + 0x0f, 0xb7, 0xc9, //0x00000f12 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x00000f15 orq $1, %rcx + 0x48, 0x8d, 0x15, 0xc0, 0xb6, 0x00, 0x00, //0x00000f19 leaq $46784(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00000f20 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x00000f23 movl %eax, %edx + 0x83, 0xc0, 0x01, //0x00000f25 addl $1, %eax + 0x88, 0x0c, 0x17, //0x00000f28 movb %cl, (%rdi,%rdx) + 0x5d, //0x00000f2b popq %rbp + 0xc3, //0x00000f2c retq + //0x00000f2d LBB3_6 + 0x31, 0xc0, //0x00000f2d xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x00000f2f cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00000f32 jae LBB3_7 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00000f38 jmp LBB3_8 + //0x00000f3d LBB3_12 + 0xc6, 0x07, 0x2d, //0x00000f3d movb $45, (%rdi) + 0x48, 0x83, 0xc7, 0x01, //0x00000f40 addq $1, %rdi + 0x48, 0xf7, 0xde, //0x00000f44 negq %rsi + 0xe8, 0x44, 0x00, 0x00, 0x00, //0x00000f47 callq _u64toa + 0x83, 0xc0, 0x01, //0x00000f4c addl $1, %eax + 0x5d, //0x00000f4f popq %rbp + 0xc3, //0x00000f50 retq + //0x00000f51 LBB3_9 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00000f51 cmpq $99999999, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000f58 ja LBB3_10 + 0x5d, //0x00000f5e popq %rbp + 0xe9, 0x1c, 0x01, 0x00, 0x00, //0x00000f5f jmp _u32toa_medium + //0x00000f64 LBB3_10 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00000f64 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00000f6e cmpq %rax, %rsi + 0x0f, 0x87, 0x06, 0x00, 0x00, 0x00, //0x00000f71 ja LBB3_11 + 0x5d, //0x00000f77 popq %rbp + 0xe9, 0x73, 0x02, 0x00, 0x00, //0x00000f78 jmp _u64toa_large_sse2 + //0x00000f7d LBB3_11 + 0x5d, //0x00000f7d popq %rbp + 0xe9, 0xdd, 0x03, 0x00, 0x00, //0x00000f7e jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00000f83 .p2align 4, 0x90 + //0x00000f90 _u64toa + 0x48, 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00000f90 cmpq $9999, %rsi + 0x0f, 0x87, 0xa7, 0x00, 0x00, 0x00, //0x00000f97 ja LBB4_8 + 0x55, //0x00000f9d pushq %rbp + 0x48, 0x89, 0xe5, //0x00000f9e movq %rsp, %rbp + 0x0f, 0xb7, 0xc6, //0x00000fa1 movzwl %si, %eax + 0xc1, 0xe8, 0x02, //0x00000fa4 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00000fa7 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00000fad shrl $17, %eax + 0x48, 0x8d, 0x14, 0x00, //0x00000fb0 leaq (%rax,%rax), %rdx + 0x6b, 0xc0, 0x64, //0x00000fb4 imull $100, %eax, %eax + 0x89, 0xf1, //0x00000fb7 movl %esi, %ecx + 0x29, 0xc1, //0x00000fb9 subl %eax, %ecx + 0x0f, 0xb7, 0xc9, //0x00000fbb movzwl %cx, %ecx + 0x48, 0x01, 0xc9, //0x00000fbe addq %rcx, %rcx + 0x81, 0xfe, 0xe8, 0x03, 0x00, 0x00, //0x00000fc1 cmpl $1000, %esi + 0x0f, 0x82, 0x16, 0x00, 0x00, 0x00, //0x00000fc7 jb LBB4_3 + 0x48, 0x8d, 0x05, 0x0c, 0xb6, 0x00, 0x00, //0x00000fcd leaq $46604(%rip), %rax /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x02, //0x00000fd4 movb (%rdx,%rax), %al + 0x88, 0x07, //0x00000fd7 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00000fd9 movl $1, %eax + 0xe9, 0x0b, 0x00, 0x00, 0x00, //0x00000fde jmp LBB4_4 + //0x00000fe3 LBB4_3 + 0x31, 0xc0, //0x00000fe3 xorl %eax, %eax + 0x83, 0xfe, 0x64, //0x00000fe5 cmpl $100, %esi + 0x0f, 0x82, 0x46, 0x00, 0x00, 0x00, //0x00000fe8 jb LBB4_5 + //0x00000fee LBB4_4 + 0x0f, 0xb7, 0xd2, //0x00000fee movzwl %dx, %edx + 0x48, 0x83, 0xca, 0x01, //0x00000ff1 orq $1, %rdx + 0x48, 0x8d, 0x35, 0xe4, 0xb5, 0x00, 0x00, //0x00000ff5 leaq $46564(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x00000ffc movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00000fff movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001001 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001004 movb %dl, (%rdi,%rsi) + //0x00001007 LBB4_6 + 0x48, 0x8d, 0x15, 0xd2, 0xb5, 0x00, 0x00, //0x00001007 leaq $46546(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x0000100e movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00001011 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001013 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001016 movb %dl, (%rdi,%rsi) + //0x00001019 LBB4_7 + 0x0f, 0xb7, 0xc9, //0x00001019 movzwl %cx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x0000101c orq $1, %rcx + 0x48, 0x8d, 0x15, 0xb9, 0xb5, 0x00, 0x00, //0x00001020 leaq $46521(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00001027 movb (%rcx,%rdx), %cl + 0x89, 0xc2, //0x0000102a movl %eax, %edx + 0x83, 0xc0, 0x01, //0x0000102c addl $1, %eax + 0x88, 0x0c, 0x17, //0x0000102f movb %cl, (%rdi,%rdx) + 0x5d, //0x00001032 popq %rbp + 0xc3, //0x00001033 retq + //0x00001034 LBB4_5 + 0x31, 0xc0, //0x00001034 xorl %eax, %eax + 0x83, 0xfe, 0x0a, //0x00001036 cmpl $10, %esi + 0x0f, 0x83, 0xc8, 0xff, 0xff, 0xff, //0x00001039 jae LBB4_6 + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x0000103f jmp LBB4_7 + //0x00001044 LBB4_8 + 0x48, 0x81, 0xfe, 0xff, 0xe0, 0xf5, 0x05, //0x00001044 cmpq $99999999, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x0000104b ja LBB4_9 + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00001051 jmp _u32toa_medium + //0x00001056 LBB4_9 + 0x48, 0xb8, 0xff, 0xff, 0xc0, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001056 movabsq $9999999999999999, %rax + 0x48, 0x39, 0xc6, //0x00001060 cmpq %rax, %rsi + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x00001063 ja LBB4_10 + 0xe9, 0x82, 0x01, 0x00, 0x00, //0x00001069 jmp _u64toa_large_sse2 + //0x0000106e LBB4_10 + 0xe9, 0xed, 0x02, 0x00, 0x00, //0x0000106e jmp _u64toa_xlarge_sse2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001073 .p2align 4, 0x90 + //0x00001080 _u32toa_medium + 0x55, //0x00001080 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001081 movq %rsp, %rbp + 0x89, 0xf2, //0x00001084 movl %esi, %edx + 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00001086 movl $3518437209, %ecx + 0x48, 0x0f, 0xaf, 0xca, //0x0000108b imulq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x2d, //0x0000108f shrq $45, %rcx + 0x44, 0x69, 0xc1, 0x10, 0x27, 0x00, 0x00, //0x00001093 imull $10000, %ecx, %r8d + 0x89, 0xf0, //0x0000109a movl %esi, %eax + 0x44, 0x29, 0xc0, //0x0000109c subl %r8d, %eax + 0x4c, 0x69, 0xd2, 0x83, 0xde, 0x1b, 0x43, //0x0000109f imulq $1125899907, %rdx, %r10 + 0x49, 0xc1, 0xea, 0x31, //0x000010a6 shrq $49, %r10 + 0x41, 0x83, 0xe2, 0xfe, //0x000010aa andl $-2, %r10d + 0x48, 0x69, 0xd1, 0x1f, 0x85, 0xeb, 0x51, //0x000010ae imulq $1374389535, %rcx, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x000010b5 shrq $37, %rdx + 0x6b, 0xd2, 0x64, //0x000010b9 imull $100, %edx, %edx + 0x29, 0xd1, //0x000010bc subl %edx, %ecx + 0x48, 0x01, 0xc9, //0x000010be addq %rcx, %rcx + 0x0f, 0xb7, 0xd0, //0x000010c1 movzwl %ax, %edx + 0xc1, 0xea, 0x02, //0x000010c4 shrl $2, %edx + 0x69, 0xd2, 0x7b, 0x14, 0x00, 0x00, //0x000010c7 imull $5243, %edx, %edx + 0xc1, 0xea, 0x11, //0x000010cd shrl $17, %edx + 0x4c, 0x8d, 0x04, 0x12, //0x000010d0 leaq (%rdx,%rdx), %r8 + 0x6b, 0xd2, 0x64, //0x000010d4 imull $100, %edx, %edx + 0x29, 0xd0, //0x000010d7 subl %edx, %eax + 0x44, 0x0f, 0xb7, 0xc8, //0x000010d9 movzwl %ax, %r9d + 0x4d, 0x01, 0xc9, //0x000010dd addq %r9, %r9 + 0x81, 0xfe, 0x80, 0x96, 0x98, 0x00, //0x000010e0 cmpl $10000000, %esi + 0x0f, 0x82, 0x17, 0x00, 0x00, 0x00, //0x000010e6 jb LBB5_2 + 0x48, 0x8d, 0x05, 0xed, 0xb4, 0x00, 0x00, //0x000010ec leaq $46317(%rip), %rax /* _Digits+0(%rip) */ + 0x41, 0x8a, 0x04, 0x02, //0x000010f3 movb (%r10,%rax), %al + 0x88, 0x07, //0x000010f7 movb %al, (%rdi) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000010f9 movl $1, %eax + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000010fe jmp LBB5_3 + //0x00001103 LBB5_2 + 0x31, 0xc0, //0x00001103 xorl %eax, %eax + 0x81, 0xfe, 0x40, 0x42, 0x0f, 0x00, //0x00001105 cmpl $1000000, %esi + 0x0f, 0x82, 0x73, 0x00, 0x00, 0x00, //0x0000110b jb LBB5_4 + //0x00001111 LBB5_3 + 0x44, 0x89, 0xd2, //0x00001111 movl %r10d, %edx + 0x48, 0x83, 0xca, 0x01, //0x00001114 orq $1, %rdx + 0x48, 0x8d, 0x35, 0xc1, 0xb4, 0x00, 0x00, //0x00001118 leaq $46273(%rip), %rsi /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x32, //0x0000111f movb (%rdx,%rsi), %dl + 0x89, 0xc6, //0x00001122 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001124 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001127 movb %dl, (%rdi,%rsi) + //0x0000112a LBB5_5 + 0x48, 0x8d, 0x15, 0xaf, 0xb4, 0x00, 0x00, //0x0000112a leaq $46255(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x14, 0x11, //0x00001131 movb (%rcx,%rdx), %dl + 0x89, 0xc6, //0x00001134 movl %eax, %esi + 0x83, 0xc0, 0x01, //0x00001136 addl $1, %eax + 0x88, 0x14, 0x37, //0x00001139 movb %dl, (%rdi,%rsi) + //0x0000113c LBB5_6 + 0x89, 0xc9, //0x0000113c movl %ecx, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x0000113e orq $1, %rcx + 0x48, 0x8d, 0x15, 0x97, 0xb4, 0x00, 0x00, //0x00001142 leaq $46231(%rip), %rdx /* _Digits+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x00001149 movb (%rcx,%rdx), %cl + 0x89, 0xc6, //0x0000114c movl %eax, %esi + 0x88, 0x0c, 0x37, //0x0000114e movb %cl, (%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x10, //0x00001151 movb (%r8,%rdx), %cl + 0x88, 0x4c, 0x37, 0x01, //0x00001155 movb %cl, $1(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc8, //0x00001159 movzwl %r8w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x0000115d orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x00001161 movb (%rcx,%rdx), %cl + 0x88, 0x4c, 0x37, 0x02, //0x00001164 movb %cl, $2(%rdi,%rsi) + 0x41, 0x8a, 0x0c, 0x11, //0x00001168 movb (%r9,%rdx), %cl + 0x88, 0x4c, 0x37, 0x03, //0x0000116c movb %cl, $3(%rdi,%rsi) + 0x41, 0x0f, 0xb7, 0xc9, //0x00001170 movzwl %r9w, %ecx + 0x48, 0x83, 0xc9, 0x01, //0x00001174 orq $1, %rcx + 0x8a, 0x0c, 0x11, //0x00001178 movb (%rcx,%rdx), %cl + 0x83, 0xc0, 0x05, //0x0000117b addl $5, %eax + 0x88, 0x4c, 0x37, 0x04, //0x0000117e movb %cl, $4(%rdi,%rsi) + 0x5d, //0x00001182 popq %rbp + 0xc3, //0x00001183 retq + //0x00001184 LBB5_4 + 0x31, 0xc0, //0x00001184 xorl %eax, %eax + 0x81, 0xfe, 0xa0, 0x86, 0x01, 0x00, //0x00001186 cmpl $100000, %esi + 0x0f, 0x83, 0x98, 0xff, 0xff, 0xff, //0x0000118c jae LBB5_5 + 0xe9, 0xa5, 0xff, 0xff, 0xff, //0x00001192 jmp LBB5_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001197 .p2align 4, 0x00 + //0x000011a0 LCPI6_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000011a0 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x000011a8 .quad 3518437209 + //0x000011b0 LCPI6_1 + 0xc5, 0x20, //0x000011b0 .word 8389 + 0x7b, 0x14, //0x000011b2 .word 5243 + 0x34, 0x33, //0x000011b4 .word 13108 + 0x00, 0x80, //0x000011b6 .word 32768 + 0xc5, 0x20, //0x000011b8 .word 8389 + 0x7b, 0x14, //0x000011ba .word 5243 + 0x34, 0x33, //0x000011bc .word 13108 + 0x00, 0x80, //0x000011be .word 32768 + //0x000011c0 LCPI6_2 + 0x80, 0x00, //0x000011c0 .word 128 + 0x00, 0x08, //0x000011c2 .word 2048 + 0x00, 0x20, //0x000011c4 .word 8192 + 0x00, 0x80, //0x000011c6 .word 32768 + 0x80, 0x00, //0x000011c8 .word 128 + 0x00, 0x08, //0x000011ca .word 2048 + 0x00, 0x20, //0x000011cc .word 8192 + 0x00, 0x80, //0x000011ce .word 32768 + //0x000011d0 LCPI6_3 + 0x0a, 0x00, //0x000011d0 .word 10 + 0x0a, 0x00, //0x000011d2 .word 10 + 0x0a, 0x00, //0x000011d4 .word 10 + 0x0a, 0x00, //0x000011d6 .word 10 + 0x0a, 0x00, //0x000011d8 .word 10 + 0x0a, 0x00, //0x000011da .word 10 + 0x0a, 0x00, //0x000011dc .word 10 + 0x0a, 0x00, //0x000011de .word 10 + //0x000011e0 LCPI6_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x000011e0 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x000011f0 .p2align 4, 0x90 + //0x000011f0 _u64toa_large_sse2 + 0x55, //0x000011f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000011f1 movq %rsp, %rbp + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x000011f4 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf0, //0x000011fe movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001201 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00001204 shrq $26, %rdx + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x00001208 imull $100000000, %edx, %eax + 0x29, 0xc6, //0x0000120e subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xc2, //0x00001210 movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x84, 0xff, 0xff, 0xff, //0x00001214 movdqa $-124(%rip), %xmm1 /* LCPI6_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd0, //0x0000121c movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0xf4, 0xd1, //0x00001220 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0x73, 0xd2, 0x2d, //0x00001224 psrlq $45, %xmm2 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001229 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd8, //0x0000122e movq %rax, %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00001233 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0xf4, 0xe3, //0x00001237 pmuludq %xmm3, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x0000123b psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd0, //0x0000123f punpcklwd %xmm0, %xmm2 + 0x66, 0x0f, 0x73, 0xf2, 0x02, //0x00001243 psllq $2, %xmm2 + 0xf2, 0x0f, 0x70, 0xc2, 0x50, //0x00001248 pshuflw $80, %xmm2, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x0000124d pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x15, 0x56, 0xff, 0xff, 0xff, //0x00001252 movdqa $-170(%rip), %xmm2 /* LCPI6_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc2, //0x0000125a pmulhuw %xmm2, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x5a, 0xff, 0xff, 0xff, //0x0000125e movdqa $-166(%rip), %xmm4 /* LCPI6_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x00001266 pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x5e, 0xff, 0xff, 0xff, //0x0000126a movdqa $-162(%rip), %xmm5 /* LCPI6_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x00001272 movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf5, //0x00001276 pmullw %xmm5, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x0000127a psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x0000127f psubw %xmm6, %xmm0 + 0x66, 0x0f, 0x6e, 0xf6, //0x00001283 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x00001287 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x0000128b psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd9, //0x00001290 pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0xfa, 0xf3, //0x00001294 psubd %xmm3, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x00001298 punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x0000129c psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000012a1 pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000012a6 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xca, //0x000012ab pmulhuw %xmm2, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x000012af pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xd5, 0xe9, //0x000012b3 pmullw %xmm1, %xmm5 + 0x66, 0x0f, 0x73, 0xf5, 0x10, //0x000012b7 psllq $16, %xmm5 + 0x66, 0x0f, 0xf9, 0xcd, //0x000012bc psubw %xmm5, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x000012c0 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0x14, 0xff, 0xff, 0xff, //0x000012c4 movdqa $-236(%rip), %xmm1 /* LCPI6_4+0(%rip) */ + 0x66, 0x0f, 0xfc, 0xc8, //0x000012cc paddb %xmm0, %xmm1 + 0x66, 0x0f, 0xef, 0xd2, //0x000012d0 pxor %xmm2, %xmm2 + 0x66, 0x0f, 0x74, 0xd0, //0x000012d4 pcmpeqb %xmm0, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000012d8 pmovmskb %xmm2, %eax + 0xf7, 0xd0, //0x000012dc notl %eax + 0x0d, 0x00, 0x80, 0x00, 0x00, //0x000012de orl $32768, %eax + 0x0f, 0xbc, 0xc8, //0x000012e3 bsfl %eax, %ecx + 0xb8, 0x10, 0x00, 0x00, 0x00, //0x000012e6 movl $16, %eax + 0x29, 0xc8, //0x000012eb subl %ecx, %eax + 0x48, 0xc1, 0xe1, 0x04, //0x000012ed shlq $4, %rcx + 0x48, 0x8d, 0x15, 0x48, 0xda, 0x00, 0x00, //0x000012f1 leaq $55880(%rip), %rdx /* _VecShiftShuffles+0(%rip) */ + 0x66, 0x0f, 0x38, 0x00, 0x0c, 0x11, //0x000012f8 pshufb (%rcx,%rdx), %xmm1 + 0xf3, 0x0f, 0x7f, 0x0f, //0x000012fe movdqu %xmm1, (%rdi) + 0x5d, //0x00001302 popq %rbp + 0xc3, //0x00001303 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001304 .p2align 4, 0x00 + //0x00001310 LCPI7_0 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001310 .quad 3518437209 + 0x59, 0x17, 0xb7, 0xd1, 0x00, 0x00, 0x00, 0x00, //0x00001318 .quad 3518437209 + //0x00001320 LCPI7_1 + 0xc5, 0x20, //0x00001320 .word 8389 + 0x7b, 0x14, //0x00001322 .word 5243 + 0x34, 0x33, //0x00001324 .word 13108 + 0x00, 0x80, //0x00001326 .word 32768 + 0xc5, 0x20, //0x00001328 .word 8389 + 0x7b, 0x14, //0x0000132a .word 5243 + 0x34, 0x33, //0x0000132c .word 13108 + 0x00, 0x80, //0x0000132e .word 32768 + //0x00001330 LCPI7_2 + 0x80, 0x00, //0x00001330 .word 128 + 0x00, 0x08, //0x00001332 .word 2048 + 0x00, 0x20, //0x00001334 .word 8192 + 0x00, 0x80, //0x00001336 .word 32768 + 0x80, 0x00, //0x00001338 .word 128 + 0x00, 0x08, //0x0000133a .word 2048 + 0x00, 0x20, //0x0000133c .word 8192 + 0x00, 0x80, //0x0000133e .word 32768 + //0x00001340 LCPI7_3 + 0x0a, 0x00, //0x00001340 .word 10 + 0x0a, 0x00, //0x00001342 .word 10 + 0x0a, 0x00, //0x00001344 .word 10 + 0x0a, 0x00, //0x00001346 .word 10 + 0x0a, 0x00, //0x00001348 .word 10 + 0x0a, 0x00, //0x0000134a .word 10 + 0x0a, 0x00, //0x0000134c .word 10 + 0x0a, 0x00, //0x0000134e .word 10 + //0x00001350 LCPI7_4 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00001350 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00001360 .p2align 4, 0x90 + //0x00001360 _u64toa_xlarge_sse2 + 0x55, //0x00001360 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001361 movq %rsp, %rbp + 0x48, 0xb9, 0x57, 0x78, 0x13, 0xb1, 0x2f, 0x65, 0xa5, 0x39, //0x00001364 movabsq $4153837486827862103, %rcx + 0x48, 0x89, 0xf0, //0x0000136e movq %rsi, %rax + 0x48, 0xf7, 0xe1, //0x00001371 mulq %rcx + 0x48, 0xc1, 0xea, 0x33, //0x00001374 shrq $51, %rdx + 0x48, 0xb8, 0x00, 0x00, 0xc1, 0x6f, 0xf2, 0x86, 0x23, 0x00, //0x00001378 movabsq $10000000000000000, %rax + 0x48, 0x0f, 0xaf, 0xc2, //0x00001382 imulq %rdx, %rax + 0x48, 0x29, 0xc6, //0x00001386 subq %rax, %rsi + 0x83, 0xfa, 0x09, //0x00001389 cmpl $9, %edx + 0x0f, 0x87, 0x0f, 0x00, 0x00, 0x00, //0x0000138c ja LBB7_2 + 0x80, 0xc2, 0x30, //0x00001392 addb $48, %dl + 0x88, 0x17, //0x00001395 movb %dl, (%rdi) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00001397 movl $1, %ecx + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x0000139c jmp LBB7_7 + //0x000013a1 LBB7_2 + 0x83, 0xfa, 0x63, //0x000013a1 cmpl $99, %edx + 0x0f, 0x87, 0x1a, 0x00, 0x00, 0x00, //0x000013a4 ja LBB7_4 + 0x89, 0xd0, //0x000013aa movl %edx, %eax + 0x48, 0x8d, 0x0d, 0x2d, 0xb2, 0x00, 0x00, //0x000013ac leaq $45613(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000013b3 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x000013b7 movw %ax, (%rdi) + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000013ba movl $2, %ecx + 0xe9, 0x82, 0x00, 0x00, 0x00, //0x000013bf jmp LBB7_7 + //0x000013c4 LBB7_4 + 0x89, 0xd0, //0x000013c4 movl %edx, %eax + 0xc1, 0xe8, 0x02, //0x000013c6 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x000013c9 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x000013cf shrl $17, %eax + 0x81, 0xfa, 0xe7, 0x03, 0x00, 0x00, //0x000013d2 cmpl $999, %edx + 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x000013d8 ja LBB7_6 + 0x83, 0xc0, 0x30, //0x000013de addl $48, %eax + 0x88, 0x07, //0x000013e1 movb %al, (%rdi) + 0x0f, 0xb7, 0xc2, //0x000013e3 movzwl %dx, %eax + 0x89, 0xc1, //0x000013e6 movl %eax, %ecx + 0xc1, 0xe9, 0x02, //0x000013e8 shrl $2, %ecx + 0x69, 0xc9, 0x7b, 0x14, 0x00, 0x00, //0x000013eb imull $5243, %ecx, %ecx + 0xc1, 0xe9, 0x11, //0x000013f1 shrl $17, %ecx + 0x6b, 0xc9, 0x64, //0x000013f4 imull $100, %ecx, %ecx + 0x29, 0xc8, //0x000013f7 subl %ecx, %eax + 0x0f, 0xb7, 0xc0, //0x000013f9 movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0xdd, 0xb1, 0x00, 0x00, //0x000013fc leaq $45533(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001403 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x47, 0x01, //0x00001407 movw %ax, $1(%rdi) + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x0000140b movl $3, %ecx + 0xe9, 0x31, 0x00, 0x00, 0x00, //0x00001410 jmp LBB7_7 + //0x00001415 LBB7_6 + 0x6b, 0xc8, 0x64, //0x00001415 imull $100, %eax, %ecx + 0x29, 0xca, //0x00001418 subl %ecx, %edx + 0x0f, 0xb7, 0xc0, //0x0000141a movzwl %ax, %eax + 0x48, 0x8d, 0x0d, 0xbc, 0xb1, 0x00, 0x00, //0x0000141d leaq $45500(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00001424 movzwl (%rcx,%rax,2), %eax + 0x66, 0x89, 0x07, //0x00001428 movw %ax, (%rdi) + 0x0f, 0xb7, 0xc2, //0x0000142b movzwl %dx, %eax + 0x8a, 0x14, 0x41, //0x0000142e movb (%rcx,%rax,2), %dl + 0x48, 0x01, 0xc0, //0x00001431 addq %rax, %rax + 0x88, 0x57, 0x02, //0x00001434 movb %dl, $2(%rdi) + 0x0f, 0xb7, 0xc0, //0x00001437 movzwl %ax, %eax + 0x8a, 0x44, 0x08, 0x01, //0x0000143a movb $1(%rax,%rcx), %al + 0x88, 0x47, 0x03, //0x0000143e movb %al, $3(%rdi) + 0xb9, 0x04, 0x00, 0x00, 0x00, //0x00001441 movl $4, %ecx + //0x00001446 LBB7_7 + 0x48, 0xba, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00001446 movabsq $-6067343680855748867, %rdx + 0x48, 0x89, 0xf0, //0x00001450 movq %rsi, %rax + 0x48, 0xf7, 0xe2, //0x00001453 mulq %rdx + 0x48, 0xc1, 0xea, 0x1a, //0x00001456 shrq $26, %rdx + 0x66, 0x0f, 0x6e, 0xc2, //0x0000145a movd %edx, %xmm0 + 0x66, 0x0f, 0x6f, 0x0d, 0xaa, 0xfe, 0xff, 0xff, //0x0000145e movdqa $-342(%rip), %xmm1 /* LCPI7_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00001466 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xf4, 0xd9, //0x0000146a pmuludq %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xd3, 0x2d, //0x0000146e psrlq $45, %xmm3 + 0xb8, 0x10, 0x27, 0x00, 0x00, //0x00001473 movl $10000, %eax + 0x66, 0x48, 0x0f, 0x6e, 0xd0, //0x00001478 movq %rax, %xmm2 + 0x66, 0x0f, 0x6f, 0xe3, //0x0000147d movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xf4, 0xe2, //0x00001481 pmuludq %xmm2, %xmm4 + 0x66, 0x0f, 0xfa, 0xc4, //0x00001485 psubd %xmm4, %xmm0 + 0x66, 0x0f, 0x61, 0xd8, //0x00001489 punpcklwd %xmm0, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x02, //0x0000148d psllq $2, %xmm3 + 0xf2, 0x0f, 0x70, 0xc3, 0x50, //0x00001492 pshuflw $80, %xmm3, %xmm0 + 0x66, 0x0f, 0x70, 0xc0, 0x50, //0x00001497 pshufd $80, %xmm0, %xmm0 + 0x66, 0x0f, 0x6f, 0x25, 0x7c, 0xfe, 0xff, 0xff, //0x0000149c movdqa $-388(%rip), %xmm4 /* LCPI7_1+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc4, //0x000014a4 pmulhuw %xmm4, %xmm0 + 0x66, 0x0f, 0x6f, 0x2d, 0x80, 0xfe, 0xff, 0xff, //0x000014a8 movdqa $-384(%rip), %xmm5 /* LCPI7_2+0(%rip) */ + 0x66, 0x0f, 0xe4, 0xc5, //0x000014b0 pmulhuw %xmm5, %xmm0 + 0x66, 0x0f, 0x6f, 0x1d, 0x84, 0xfe, 0xff, 0xff, //0x000014b4 movdqa $-380(%rip), %xmm3 /* LCPI7_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xf0, //0x000014bc movdqa %xmm0, %xmm6 + 0x66, 0x0f, 0xd5, 0xf3, //0x000014c0 pmullw %xmm3, %xmm6 + 0x66, 0x0f, 0x73, 0xf6, 0x10, //0x000014c4 psllq $16, %xmm6 + 0x66, 0x0f, 0xf9, 0xc6, //0x000014c9 psubw %xmm6, %xmm0 + 0x69, 0xc2, 0x00, 0xe1, 0xf5, 0x05, //0x000014cd imull $100000000, %edx, %eax + 0x29, 0xc6, //0x000014d3 subl %eax, %esi + 0x66, 0x0f, 0x6e, 0xf6, //0x000014d5 movd %esi, %xmm6 + 0x66, 0x0f, 0xf4, 0xce, //0x000014d9 pmuludq %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xd1, 0x2d, //0x000014dd psrlq $45, %xmm1 + 0x66, 0x0f, 0xf4, 0xd1, //0x000014e2 pmuludq %xmm1, %xmm2 + 0x66, 0x0f, 0xfa, 0xf2, //0x000014e6 psubd %xmm2, %xmm6 + 0x66, 0x0f, 0x61, 0xce, //0x000014ea punpcklwd %xmm6, %xmm1 + 0x66, 0x0f, 0x73, 0xf1, 0x02, //0x000014ee psllq $2, %xmm1 + 0xf2, 0x0f, 0x70, 0xc9, 0x50, //0x000014f3 pshuflw $80, %xmm1, %xmm1 + 0x66, 0x0f, 0x70, 0xc9, 0x50, //0x000014f8 pshufd $80, %xmm1, %xmm1 + 0x66, 0x0f, 0xe4, 0xcc, //0x000014fd pmulhuw %xmm4, %xmm1 + 0x66, 0x0f, 0xe4, 0xcd, //0x00001501 pmulhuw %xmm5, %xmm1 + 0x66, 0x0f, 0xd5, 0xd9, //0x00001505 pmullw %xmm1, %xmm3 + 0x66, 0x0f, 0x73, 0xf3, 0x10, //0x00001509 psllq $16, %xmm3 + 0x66, 0x0f, 0xf9, 0xcb, //0x0000150e psubw %xmm3, %xmm1 + 0x66, 0x0f, 0x67, 0xc1, //0x00001512 packuswb %xmm1, %xmm0 + 0x66, 0x0f, 0xfc, 0x05, 0x32, 0xfe, 0xff, 0xff, //0x00001516 paddb $-462(%rip), %xmm0 /* LCPI7_4+0(%rip) */ + 0x89, 0xc8, //0x0000151e movl %ecx, %eax + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00001520 movdqu %xmm0, (%rdi,%rax) + 0x83, 0xc9, 0x10, //0x00001525 orl $16, %ecx + 0x89, 0xc8, //0x00001528 movl %ecx, %eax + 0x5d, //0x0000152a popq %rbp + 0xc3, //0x0000152b retq + 0x00, 0x00, 0x00, 0x00, //0x0000152c .p2align 4, 0x00 + //0x00001530 LCPI8_0 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00001530 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00001540 LCPI8_1 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00001540 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00001550 LCPI8_2 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001550 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001560 .p2align 4, 0x90 + //0x00001560 _quote + 0x55, //0x00001560 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001561 movq %rsp, %rbp + 0x41, 0x57, //0x00001564 pushq %r15 + 0x41, 0x56, //0x00001566 pushq %r14 + 0x41, 0x55, //0x00001568 pushq %r13 + 0x41, 0x54, //0x0000156a pushq %r12 + 0x53, //0x0000156c pushq %rbx + 0x48, 0x83, 0xec, 0x20, //0x0000156d subq $32, %rsp + 0x49, 0x89, 0xcb, //0x00001571 movq %rcx, %r11 + 0x49, 0x89, 0xd7, //0x00001574 movq %rdx, %r15 + 0x4c, 0x8b, 0x11, //0x00001577 movq (%rcx), %r10 + 0x41, 0xf6, 0xc0, 0x01, //0x0000157a testb $1, %r8b + 0x48, 0x89, 0xf0, //0x0000157e movq %rsi, %rax + 0x48, 0x8d, 0x0d, 0x48, 0xd8, 0x00, 0x00, //0x00001581 leaq $55368(%rip), %rcx /* __SingleQuoteTab+0(%rip) */ + 0x4c, 0x8d, 0x25, 0x41, 0xe8, 0x00, 0x00, //0x00001588 leaq $59457(%rip), %r12 /* __DoubleQuoteTab+0(%rip) */ + 0x4c, 0x0f, 0x44, 0xe1, //0x0000158f cmoveq %rcx, %r12 + 0x48, 0x8d, 0x0c, 0xf5, 0x00, 0x00, 0x00, 0x00, //0x00001593 leaq (,%rsi,8), %rcx + 0x49, 0x39, 0xca, //0x0000159b cmpq %rcx, %r10 + 0x0f, 0x8d, 0x0c, 0x04, 0x00, 0x00, //0x0000159e jge LBB8_56 + 0x4d, 0x89, 0xfe, //0x000015a4 movq %r15, %r14 + 0x49, 0x89, 0xf9, //0x000015a7 movq %rdi, %r9 + 0x48, 0x85, 0xc0, //0x000015aa testq %rax, %rax + 0x0f, 0x84, 0xec, 0x03, 0x00, 0x00, //0x000015ad je LBB8_80 + 0x4c, 0x89, 0x5d, 0xc8, //0x000015b3 movq %r11, $-56(%rbp) + 0x66, 0x0f, 0x6f, 0x05, 0x71, 0xff, 0xff, 0xff, //0x000015b7 movdqa $-143(%rip), %xmm0 /* LCPI8_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x79, 0xff, 0xff, 0xff, //0x000015bf movdqa $-135(%rip), %xmm1 /* LCPI8_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x81, 0xff, 0xff, 0xff, //0x000015c7 movdqa $-127(%rip), %xmm2 /* LCPI8_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x000015cf pcmpeqd %xmm3, %xmm3 + 0x48, 0x89, 0xf9, //0x000015d3 movq %rdi, %rcx + 0x4c, 0x89, 0x7d, 0xd0, //0x000015d6 movq %r15, $-48(%rbp) + 0x4d, 0x89, 0xfe, //0x000015da movq %r15, %r14 + 0x4c, 0x89, 0x65, 0xc0, //0x000015dd movq %r12, $-64(%rbp) + //0x000015e1 LBB8_3 + 0x49, 0x89, 0xc9, //0x000015e1 movq %rcx, %r9 + 0x48, 0x83, 0xf8, 0x10, //0x000015e4 cmpq $16, %rax + 0x0f, 0x9d, 0xc3, //0x000015e8 setge %bl + 0x4d, 0x89, 0xd4, //0x000015eb movq %r10, %r12 + 0x4d, 0x89, 0xf7, //0x000015ee movq %r14, %r15 + 0x49, 0x89, 0xc3, //0x000015f1 movq %rax, %r11 + 0x49, 0x89, 0xcd, //0x000015f4 movq %rcx, %r13 + 0x0f, 0x8c, 0x83, 0x00, 0x00, 0x00, //0x000015f7 jl LBB8_10 + 0x49, 0x83, 0xfa, 0x10, //0x000015fd cmpq $16, %r10 + 0x0f, 0x8c, 0x79, 0x00, 0x00, 0x00, //0x00001601 jl LBB8_10 + 0x45, 0x31, 0xff, //0x00001607 xorl %r15d, %r15d + 0x48, 0x89, 0xc6, //0x0000160a movq %rax, %rsi + 0x4c, 0x89, 0xd2, //0x0000160d movq %r10, %rdx + //0x00001610 .p2align 4, 0x90 + //0x00001610 LBB8_6 + 0xf3, 0x43, 0x0f, 0x6f, 0x24, 0x39, //0x00001610 movdqu (%r9,%r15), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x00001616 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x0000161a pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000161e movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x00001622 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001626 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x0000162a pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x0000162e por %xmm6, %xmm7 + 0xf3, 0x43, 0x0f, 0x7f, 0x24, 0x3e, //0x00001632 movdqu %xmm4, (%r14,%r15) + 0x66, 0x0f, 0x64, 0xe3, //0x00001638 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x0000163c pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x00001640 por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001644 pmovmskb %xmm4, %ecx + 0x85, 0xc9, //0x00001648 testl %ecx, %ecx + 0x0f, 0x85, 0x3b, 0x01, 0x00, 0x00, //0x0000164a jne LBB8_23 + 0x4c, 0x8d, 0x5e, 0xf0, //0x00001650 leaq $-16(%rsi), %r11 + 0x4c, 0x8d, 0x62, 0xf0, //0x00001654 leaq $-16(%rdx), %r12 + 0x49, 0x83, 0xc7, 0x10, //0x00001658 addq $16, %r15 + 0x48, 0x83, 0xfe, 0x20, //0x0000165c cmpq $32, %rsi + 0x0f, 0x9d, 0xc3, //0x00001660 setge %bl + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00001663 jl LBB8_9 + 0x4c, 0x89, 0xde, //0x00001669 movq %r11, %rsi + 0x48, 0x83, 0xfa, 0x1f, //0x0000166c cmpq $31, %rdx + 0x4c, 0x89, 0xe2, //0x00001670 movq %r12, %rdx + 0x0f, 0x8f, 0x97, 0xff, 0xff, 0xff, //0x00001673 jg LBB8_6 + //0x00001679 LBB8_9 + 0x4f, 0x8d, 0x2c, 0x39, //0x00001679 leaq (%r9,%r15), %r13 + 0x4d, 0x01, 0xf7, //0x0000167d addq %r14, %r15 + //0x00001680 LBB8_10 + 0x84, 0xdb, //0x00001680 testb %bl, %bl + 0x0f, 0x84, 0x73, 0x00, 0x00, 0x00, //0x00001682 je LBB8_14 + 0xf3, 0x41, 0x0f, 0x6f, 0x65, 0x00, //0x00001688 movdqu (%r13), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x0000168e movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x00001692 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00001696 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x0000169a pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x0000169e movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x000016a2 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x000016a6 por %xmm6, %xmm7 + 0x66, 0x48, 0x0f, 0x7e, 0xe1, //0x000016aa movq %xmm4, %rcx + 0x66, 0x0f, 0x64, 0xe3, //0x000016af pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x000016b3 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x000016b7 por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xd4, //0x000016bb pmovmskb %xmm4, %edx + 0x81, 0xca, 0x00, 0x00, 0x01, 0x00, //0x000016bf orl $65536, %edx + 0x44, 0x0f, 0xbc, 0xda, //0x000016c5 bsfl %edx, %r11d + 0x4d, 0x39, 0xdc, //0x000016c9 cmpq %r11, %r12 + 0x0f, 0x8d, 0xc9, 0x00, 0x00, 0x00, //0x000016cc jge LBB8_24 + 0x49, 0x83, 0xfc, 0x08, //0x000016d2 cmpq $8, %r12 + 0x0f, 0x82, 0xfe, 0x00, 0x00, 0x00, //0x000016d6 jb LBB8_28 + 0x49, 0x89, 0x0f, //0x000016dc movq %rcx, (%r15) + 0x4d, 0x8d, 0x5d, 0x08, //0x000016df leaq $8(%r13), %r11 + 0x49, 0x83, 0xc7, 0x08, //0x000016e3 addq $8, %r15 + 0x49, 0x8d, 0x5c, 0x24, 0xf8, //0x000016e7 leaq $-8(%r12), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000016ec cmpq $4, %rbx + 0x0f, 0x8d, 0xf4, 0x00, 0x00, 0x00, //0x000016f0 jge LBB8_29 + 0xe9, 0x01, 0x01, 0x00, 0x00, //0x000016f6 jmp LBB8_30 + //0x000016fb LBB8_14 + 0x4d, 0x85, 0xdb, //0x000016fb testq %r11, %r11 + 0x0f, 0x8e, 0x6f, 0x00, 0x00, 0x00, //0x000016fe jle LBB8_21 + 0x4d, 0x85, 0xe4, //0x00001704 testq %r12, %r12 + 0x0f, 0x8e, 0x66, 0x00, 0x00, 0x00, //0x00001707 jle LBB8_21 + 0x4c, 0x89, 0x4d, 0xb8, //0x0000170d movq %r9, $-72(%rbp) + 0x45, 0x31, 0xc9, //0x00001711 xorl %r9d, %r9d + 0x31, 0xd2, //0x00001714 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001716 .p2align 4, 0x90 + //0x00001720 LBB8_17 + 0x43, 0x0f, 0xb6, 0x4c, 0x0d, 0x00, //0x00001720 movzbl (%r13,%r9), %ecx + 0x48, 0x89, 0xcb, //0x00001726 movq %rcx, %rbx + 0x48, 0xc1, 0xe3, 0x04, //0x00001729 shlq $4, %rbx + 0x48, 0x8d, 0x35, 0x9c, 0xd6, 0x00, 0x00, //0x0000172d leaq $54940(%rip), %rsi /* __SingleQuoteTab+0(%rip) */ + 0x48, 0x83, 0x3c, 0x33, 0x00, //0x00001734 cmpq $0, (%rbx,%rsi) + 0x0f, 0x85, 0x8c, 0x00, 0x00, 0x00, //0x00001739 jne LBB8_27 + 0x4d, 0x8d, 0x04, 0x13, //0x0000173f leaq (%r11,%rdx), %r8 + 0x43, 0x88, 0x0c, 0x0f, //0x00001743 movb %cl, (%r15,%r9) + 0x48, 0x8d, 0x5a, 0xff, //0x00001747 leaq $-1(%rdx), %rbx + 0x49, 0x83, 0xf8, 0x02, //0x0000174b cmpq $2, %r8 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000174f jl LBB8_20 + 0x4c, 0x01, 0xe2, //0x00001755 addq %r12, %rdx + 0x49, 0x83, 0xc1, 0x01, //0x00001758 addq $1, %r9 + 0x48, 0x83, 0xfa, 0x01, //0x0000175c cmpq $1, %rdx + 0x48, 0x89, 0xda, //0x00001760 movq %rbx, %rdx + 0x0f, 0x8f, 0xb7, 0xff, 0xff, 0xff, //0x00001763 jg LBB8_17 + //0x00001769 LBB8_20 + 0x49, 0x29, 0xdd, //0x00001769 subq %rbx, %r13 + 0x49, 0x01, 0xdb, //0x0000176c addq %rbx, %r11 + 0x4c, 0x8b, 0x4d, 0xb8, //0x0000176f movq $-72(%rbp), %r9 + //0x00001773 LBB8_21 + 0x4d, 0x85, 0xdb, //0x00001773 testq %r11, %r11 + 0x4c, 0x8b, 0x65, 0xc0, //0x00001776 movq $-64(%rbp), %r12 + 0x0f, 0x84, 0x43, 0x00, 0x00, 0x00, //0x0000177a je LBB8_26 + 0x49, 0xf7, 0xd5, //0x00001780 notq %r13 + 0x4d, 0x01, 0xcd, //0x00001783 addq %r9, %r13 + 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00001786 jmp LBB8_41 + //0x0000178b LBB8_23 + 0x66, 0x0f, 0xbc, 0xc9, //0x0000178b bsfw %cx, %cx + 0x44, 0x0f, 0xb7, 0xe9, //0x0000178f movzwl %cx, %r13d + 0x4d, 0x01, 0xfd, //0x00001793 addq %r15, %r13 + 0xe9, 0x13, 0x01, 0x00, 0x00, //0x00001796 jmp LBB8_40 + //0x0000179b LBB8_24 + 0x41, 0x83, 0xfb, 0x08, //0x0000179b cmpl $8, %r11d + 0x0f, 0x82, 0xa3, 0x00, 0x00, 0x00, //0x0000179f jb LBB8_34 + 0x49, 0x89, 0x0f, //0x000017a5 movq %rcx, (%r15) + 0x4d, 0x8d, 0x65, 0x08, //0x000017a8 leaq $8(%r13), %r12 + 0x49, 0x83, 0xc7, 0x08, //0x000017ac addq $8, %r15 + 0x49, 0x8d, 0x5b, 0xf8, //0x000017b0 leaq $-8(%r11), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000017b4 cmpq $4, %rbx + 0x0f, 0x8d, 0x9a, 0x00, 0x00, 0x00, //0x000017b8 jge LBB8_35 + 0xe9, 0xa8, 0x00, 0x00, 0x00, //0x000017be jmp LBB8_36 + //0x000017c3 LBB8_26 + 0x4d, 0x29, 0xcd, //0x000017c3 subq %r9, %r13 + 0xe9, 0xe7, 0x00, 0x00, 0x00, //0x000017c6 jmp LBB8_41 + //0x000017cb LBB8_27 + 0x4c, 0x8b, 0x4d, 0xb8, //0x000017cb movq $-72(%rbp), %r9 + 0x4d, 0x29, 0xcd, //0x000017cf subq %r9, %r13 + 0x49, 0x29, 0xd5, //0x000017d2 subq %rdx, %r13 + 0xe9, 0xd4, 0x00, 0x00, 0x00, //0x000017d5 jmp LBB8_40 + //0x000017da LBB8_28 + 0x4d, 0x89, 0xeb, //0x000017da movq %r13, %r11 + 0x4c, 0x89, 0xe3, //0x000017dd movq %r12, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000017e0 cmpq $4, %rbx + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000017e4 jl LBB8_30 + //0x000017ea LBB8_29 + 0x41, 0x8b, 0x0b, //0x000017ea movl (%r11), %ecx + 0x41, 0x89, 0x0f, //0x000017ed movl %ecx, (%r15) + 0x49, 0x83, 0xc3, 0x04, //0x000017f0 addq $4, %r11 + 0x49, 0x83, 0xc7, 0x04, //0x000017f4 addq $4, %r15 + 0x48, 0x83, 0xc3, 0xfc, //0x000017f8 addq $-4, %rbx + //0x000017fc LBB8_30 + 0x48, 0x83, 0xfb, 0x02, //0x000017fc cmpq $2, %rbx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00001800 jb LBB8_31 + 0x41, 0x0f, 0xb7, 0x0b, //0x00001806 movzwl (%r11), %ecx + 0x66, 0x41, 0x89, 0x0f, //0x0000180a movw %cx, (%r15) + 0x49, 0x83, 0xc3, 0x02, //0x0000180e addq $2, %r11 + 0x49, 0x83, 0xc7, 0x02, //0x00001812 addq $2, %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00001816 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000181a testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000181d jne LBB8_32 + 0xe9, 0x0f, 0x00, 0x00, 0x00, //0x00001823 jmp LBB8_33 + //0x00001828 LBB8_31 + 0x48, 0x85, 0xdb, //0x00001828 testq %rbx, %rbx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x0000182b je LBB8_33 + //0x00001831 LBB8_32 + 0x41, 0x8a, 0x0b, //0x00001831 movb (%r11), %cl + 0x41, 0x88, 0x0f, //0x00001834 movb %cl, (%r15) + //0x00001837 LBB8_33 + 0x4d, 0x01, 0xec, //0x00001837 addq %r13, %r12 + 0x49, 0xf7, 0xd4, //0x0000183a notq %r12 + 0x4d, 0x01, 0xcc, //0x0000183d addq %r9, %r12 + 0x4d, 0x89, 0xe5, //0x00001840 movq %r12, %r13 + 0xe9, 0x66, 0x00, 0x00, 0x00, //0x00001843 jmp LBB8_40 + //0x00001848 LBB8_34 + 0x4d, 0x89, 0xec, //0x00001848 movq %r13, %r12 + 0x4c, 0x89, 0xdb, //0x0000184b movq %r11, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x0000184e cmpq $4, %rbx + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x00001852 jl LBB8_36 + //0x00001858 LBB8_35 + 0x41, 0x8b, 0x0c, 0x24, //0x00001858 movl (%r12), %ecx + 0x41, 0x89, 0x0f, //0x0000185c movl %ecx, (%r15) + 0x49, 0x83, 0xc4, 0x04, //0x0000185f addq $4, %r12 + 0x49, 0x83, 0xc7, 0x04, //0x00001863 addq $4, %r15 + 0x48, 0x83, 0xc3, 0xfc, //0x00001867 addq $-4, %rbx + //0x0000186b LBB8_36 + 0x48, 0x83, 0xfb, 0x02, //0x0000186b cmpq $2, %rbx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x0000186f jb LBB8_37 + 0x41, 0x0f, 0xb7, 0x0c, 0x24, //0x00001875 movzwl (%r12), %ecx + 0x66, 0x41, 0x89, 0x0f, //0x0000187a movw %cx, (%r15) + 0x49, 0x83, 0xc4, 0x02, //0x0000187e addq $2, %r12 + 0x49, 0x83, 0xc7, 0x02, //0x00001882 addq $2, %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x00001886 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x0000188a testq %rbx, %rbx + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x0000188d jne LBB8_38 + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00001893 jmp LBB8_39 + //0x00001898 LBB8_37 + 0x48, 0x85, 0xdb, //0x00001898 testq %rbx, %rbx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x0000189b je LBB8_39 + //0x000018a1 LBB8_38 + 0x41, 0x8a, 0x0c, 0x24, //0x000018a1 movb (%r12), %cl + 0x41, 0x88, 0x0f, //0x000018a5 movb %cl, (%r15) + //0x000018a8 LBB8_39 + 0x4d, 0x29, 0xcd, //0x000018a8 subq %r9, %r13 + 0x4d, 0x01, 0xdd, //0x000018ab addq %r11, %r13 + //0x000018ae LBB8_40 + 0x4c, 0x8b, 0x65, 0xc0, //0x000018ae movq $-64(%rbp), %r12 + //0x000018b2 LBB8_41 + 0x49, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x000018b2 movabsq $12884901889, %r11 + 0x4d, 0x85, 0xed, //0x000018bc testq %r13, %r13 + 0x0f, 0x88, 0x4f, 0x03, 0x00, 0x00, //0x000018bf js LBB8_83 + 0x4d, 0x01, 0xee, //0x000018c5 addq %r13, %r14 + 0x4c, 0x39, 0xe8, //0x000018c8 cmpq %r13, %rax + 0x0f, 0x84, 0xc3, 0x00, 0x00, 0x00, //0x000018cb je LBB8_79 + 0x4d, 0x29, 0xea, //0x000018d1 subq %r13, %r10 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000018d4 jmp LBB8_45 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000018d9 .p2align 4, 0x90 + //0x000018e0 LBB8_44 + 0x49, 0x01, 0xf6, //0x000018e0 addq %rsi, %r14 + 0x49, 0x83, 0xc5, 0x01, //0x000018e3 addq $1, %r13 + 0x4c, 0x39, 0xe8, //0x000018e7 cmpq %r13, %rax + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000018ea je LBB8_79 + //0x000018f0 LBB8_45 + 0x43, 0x0f, 0xb6, 0x0c, 0x29, //0x000018f0 movzbl (%r9,%r13), %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000018f5 shlq $4, %rcx + 0x49, 0x8b, 0x14, 0x0c, //0x000018f9 movq (%r12,%rcx), %rdx + 0x85, 0xd2, //0x000018fd testl %edx, %edx + 0x0f, 0x84, 0x82, 0x00, 0x00, 0x00, //0x000018ff je LBB8_53 + 0x48, 0x63, 0xf2, //0x00001905 movslq %edx, %rsi + 0x49, 0x29, 0xf2, //0x00001908 subq %rsi, %r10 + 0x0f, 0x8c, 0xdd, 0x02, 0x00, 0x00, //0x0000190b jl LBB8_81 + 0x48, 0xc1, 0xe2, 0x20, //0x00001911 shlq $32, %rdx + 0x49, 0x8d, 0x1c, 0x0c, //0x00001915 leaq (%r12,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x08, //0x00001919 addq $8, %rbx + 0x4c, 0x39, 0xda, //0x0000191d cmpq %r11, %rdx + 0x0f, 0x8c, 0x2a, 0x00, 0x00, 0x00, //0x00001920 jl LBB8_49 + 0x8b, 0x13, //0x00001926 movl (%rbx), %edx + 0x41, 0x89, 0x16, //0x00001928 movl %edx, (%r14) + 0x49, 0x8d, 0x1c, 0x0c, //0x0000192b leaq (%r12,%rcx), %rbx + 0x48, 0x83, 0xc3, 0x0c, //0x0000192f addq $12, %rbx + 0x4d, 0x8d, 0x46, 0x04, //0x00001933 leaq $4(%r14), %r8 + 0x48, 0x8d, 0x4e, 0xfc, //0x00001937 leaq $-4(%rsi), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x0000193b cmpq $2, %rcx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000193f jae LBB8_50 + 0xe9, 0x29, 0x00, 0x00, 0x00, //0x00001945 jmp LBB8_51 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000194a .p2align 4, 0x90 + //0x00001950 LBB8_49 + 0x4d, 0x89, 0xf0, //0x00001950 movq %r14, %r8 + 0x48, 0x89, 0xf1, //0x00001953 movq %rsi, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00001956 cmpq $2, %rcx + 0x0f, 0x82, 0x13, 0x00, 0x00, 0x00, //0x0000195a jb LBB8_51 + //0x00001960 LBB8_50 + 0x0f, 0xb7, 0x13, //0x00001960 movzwl (%rbx), %edx + 0x66, 0x41, 0x89, 0x10, //0x00001963 movw %dx, (%r8) + 0x48, 0x83, 0xc3, 0x02, //0x00001967 addq $2, %rbx + 0x49, 0x83, 0xc0, 0x02, //0x0000196b addq $2, %r8 + 0x48, 0x83, 0xc1, 0xfe, //0x0000196f addq $-2, %rcx + //0x00001973 LBB8_51 + 0x48, 0x85, 0xc9, //0x00001973 testq %rcx, %rcx + 0x0f, 0x84, 0x64, 0xff, 0xff, 0xff, //0x00001976 je LBB8_44 + 0x0f, 0xb6, 0x0b, //0x0000197c movzbl (%rbx), %ecx + 0x41, 0x88, 0x08, //0x0000197f movb %cl, (%r8) + 0xe9, 0x59, 0xff, 0xff, 0xff, //0x00001982 jmp LBB8_44 + //0x00001987 LBB8_53 + 0x4b, 0x8d, 0x0c, 0x29, //0x00001987 leaq (%r9,%r13), %rcx + 0x4c, 0x29, 0xe8, //0x0000198b subq %r13, %rax + 0x0f, 0x85, 0x4d, 0xfc, 0xff, 0xff, //0x0000198e jne LBB8_3 + //0x00001994 LBB8_79 + 0x4d, 0x01, 0xe9, //0x00001994 addq %r13, %r9 + 0x4c, 0x8b, 0x5d, 0xc8, //0x00001997 movq $-56(%rbp), %r11 + 0x4c, 0x8b, 0x7d, 0xd0, //0x0000199b movq $-48(%rbp), %r15 + //0x0000199f LBB8_80 + 0x4d, 0x29, 0xfe, //0x0000199f subq %r15, %r14 + 0x4d, 0x89, 0x33, //0x000019a2 movq %r14, (%r11) + 0x49, 0x29, 0xf9, //0x000019a5 subq %rdi, %r9 + 0x4c, 0x89, 0xc8, //0x000019a8 movq %r9, %rax + 0xe9, 0x55, 0x02, 0x00, 0x00, //0x000019ab jmp LBB8_82 + //0x000019b0 LBB8_56 + 0x66, 0x0f, 0x6f, 0x05, 0x78, 0xfb, 0xff, 0xff, //0x000019b0 movdqa $-1160(%rip), %xmm0 /* LCPI8_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x80, 0xfb, 0xff, 0xff, //0x000019b8 movdqa $-1152(%rip), %xmm1 /* LCPI8_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x88, 0xfb, 0xff, 0xff, //0x000019c0 movdqa $-1144(%rip), %xmm2 /* LCPI8_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x000019c8 pcmpeqd %xmm3, %xmm3 + 0x4c, 0x8d, 0x0d, 0xfd, 0xf3, 0x00, 0x00, //0x000019cc leaq $62461(%rip), %r9 /* __EscTab+0(%rip) */ + 0x4c, 0x89, 0xfe, //0x000019d3 movq %r15, %rsi + 0x48, 0x89, 0xc3, //0x000019d6 movq %rax, %rbx + //0x000019d9 LBB8_57 + 0x48, 0x83, 0xfb, 0x10, //0x000019d9 cmpq $16, %rbx + 0x0f, 0x8c, 0x69, 0x00, 0x00, 0x00, //0x000019dd jl LBB8_62 + 0x49, 0x89, 0xda, //0x000019e3 movq %rbx, %r10 + 0x49, 0xf7, 0xda, //0x000019e6 negq %r10 + 0x48, 0x83, 0xc3, 0x10, //0x000019e9 addq $16, %rbx + 0x90, 0x90, 0x90, //0x000019ed .p2align 4, 0x90 + //0x000019f0 LBB8_59 + 0xf3, 0x0f, 0x6f, 0x27, //0x000019f0 movdqu (%rdi), %xmm4 + 0x66, 0x0f, 0x6f, 0xe8, //0x000019f4 movdqa %xmm0, %xmm5 + 0x66, 0x0f, 0x64, 0xec, //0x000019f8 pcmpgtb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x000019fc movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x00001a00 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0x6f, 0xfc, //0x00001a04 movdqa %xmm4, %xmm7 + 0x66, 0x0f, 0x74, 0xfa, //0x00001a08 pcmpeqb %xmm2, %xmm7 + 0x66, 0x0f, 0xeb, 0xfe, //0x00001a0c por %xmm6, %xmm7 + 0xf3, 0x0f, 0x7f, 0x26, //0x00001a10 movdqu %xmm4, (%rsi) + 0x66, 0x0f, 0x64, 0xe3, //0x00001a14 pcmpgtb %xmm3, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00001a18 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe7, //0x00001a1c por %xmm7, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00001a20 pmovmskb %xmm4, %ecx + 0x85, 0xc9, //0x00001a24 testl %ecx, %ecx + 0x0f, 0x85, 0x22, 0x01, 0x00, 0x00, //0x00001a26 jne LBB8_72 + 0x48, 0x83, 0xc7, 0x10, //0x00001a2c addq $16, %rdi + 0x48, 0x83, 0xc6, 0x10, //0x00001a30 addq $16, %rsi + 0x49, 0x83, 0xc2, 0x10, //0x00001a34 addq $16, %r10 + 0x48, 0x83, 0xc3, 0xf0, //0x00001a38 addq $-16, %rbx + 0x48, 0x83, 0xfb, 0x20, //0x00001a3c cmpq $32, %rbx + 0x0f, 0x8d, 0xaa, 0xff, 0xff, 0xff, //0x00001a40 jge LBB8_59 + 0x49, 0xf7, 0xda, //0x00001a46 negq %r10 + 0x4c, 0x89, 0xd3, //0x00001a49 movq %r10, %rbx + //0x00001a4c LBB8_62 + 0x48, 0x83, 0xfb, 0x08, //0x00001a4c cmpq $8, %rbx + 0x0f, 0x8c, 0x75, 0x00, 0x00, 0x00, //0x00001a50 jl LBB8_66 + 0x0f, 0xb6, 0x0f, //0x00001a56 movzbl (%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001a59 movzbl $1(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001a5d movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001a61 addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001a63 orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x02, //0x00001a67 movzbl $2(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001a6b movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001a6f shlb $2, %cl + 0x08, 0xd1, //0x00001a72 orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x03, //0x00001a74 movzbl $3(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001a78 movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001a7c shlb $3, %dl + 0x08, 0xca, //0x00001a7f orb %cl, %dl + 0x48, 0x8b, 0x0f, //0x00001a81 movq (%rdi), %rcx + 0x48, 0x89, 0x0e, //0x00001a84 movq %rcx, (%rsi) + 0x0f, 0x85, 0x22, 0x01, 0x00, 0x00, //0x00001a87 jne LBB8_76 + 0x0f, 0xb6, 0x4f, 0x04, //0x00001a8d movzbl $4(%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x05, //0x00001a91 movzbl $5(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001a95 movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001a99 addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001a9b orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x06, //0x00001a9f movzbl $6(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001aa3 movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001aa7 shlb $2, %cl + 0x08, 0xd1, //0x00001aaa orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x07, //0x00001aac movzbl $7(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001ab0 movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001ab4 shlb $3, %dl + 0x08, 0xca, //0x00001ab7 orb %cl, %dl + 0x0f, 0x85, 0x04, 0x01, 0x00, 0x00, //0x00001ab9 jne LBB8_77 + 0x48, 0x83, 0xc6, 0x08, //0x00001abf addq $8, %rsi + 0x48, 0x83, 0xc7, 0x08, //0x00001ac3 addq $8, %rdi + 0x48, 0x83, 0xc3, 0xf8, //0x00001ac7 addq $-8, %rbx + //0x00001acb LBB8_66 + 0x48, 0x83, 0xfb, 0x04, //0x00001acb cmpq $4, %rbx + 0x0f, 0x8c, 0x41, 0x00, 0x00, 0x00, //0x00001acf jl LBB8_69 + 0x0f, 0xb6, 0x0f, //0x00001ad5 movzbl (%rdi), %ecx + 0x0f, 0xb6, 0x57, 0x01, //0x00001ad8 movzbl $1(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001adc movb (%rdx,%r9), %dl + 0x00, 0xd2, //0x00001ae0 addb %dl, %dl + 0x42, 0x0a, 0x14, 0x09, //0x00001ae2 orb (%rcx,%r9), %dl + 0x0f, 0xb6, 0x4f, 0x02, //0x00001ae6 movzbl $2(%rdi), %ecx + 0x42, 0x8a, 0x0c, 0x09, //0x00001aea movb (%rcx,%r9), %cl + 0xc0, 0xe1, 0x02, //0x00001aee shlb $2, %cl + 0x08, 0xd1, //0x00001af1 orb %dl, %cl + 0x0f, 0xb6, 0x57, 0x03, //0x00001af3 movzbl $3(%rdi), %edx + 0x42, 0x8a, 0x14, 0x0a, //0x00001af7 movb (%rdx,%r9), %dl + 0xc0, 0xe2, 0x03, //0x00001afb shlb $3, %dl + 0x08, 0xca, //0x00001afe orb %cl, %dl + 0x8b, 0x0f, //0x00001b00 movl (%rdi), %ecx + 0x89, 0x0e, //0x00001b02 movl %ecx, (%rsi) + 0x0f, 0x85, 0xa5, 0x00, 0x00, 0x00, //0x00001b04 jne LBB8_76 + 0x48, 0x83, 0xc6, 0x04, //0x00001b0a addq $4, %rsi + 0x48, 0x83, 0xc7, 0x04, //0x00001b0e addq $4, %rdi + 0x48, 0x83, 0xc3, 0xfc, //0x00001b12 addq $-4, %rbx + //0x00001b16 LBB8_69 + 0x48, 0x85, 0xdb, //0x00001b16 testq %rbx, %rbx + 0x0f, 0x8e, 0xc4, 0x00, 0x00, 0x00, //0x00001b19 jle LBB8_78 + 0x90, //0x00001b1f .p2align 4, 0x90 + //0x00001b20 LBB8_70 + 0x0f, 0xb6, 0x0f, //0x00001b20 movzbl (%rdi), %ecx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b23 cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00001b28 jne LBB8_73 + 0x48, 0x83, 0xc7, 0x01, //0x00001b2e addq $1, %rdi + 0x88, 0x0e, //0x00001b32 movb %cl, (%rsi) + 0x48, 0x83, 0xc6, 0x01, //0x00001b34 addq $1, %rsi + 0x48, 0x8d, 0x4b, 0xff, //0x00001b38 leaq $-1(%rbx), %rcx + 0x48, 0x83, 0xfb, 0x01, //0x00001b3c cmpq $1, %rbx + 0x48, 0x89, 0xcb, //0x00001b40 movq %rcx, %rbx + 0x0f, 0x8f, 0xd7, 0xff, 0xff, 0xff, //0x00001b43 jg LBB8_70 + 0xe9, 0x95, 0x00, 0x00, 0x00, //0x00001b49 jmp LBB8_78 + //0x00001b4e LBB8_72 + 0x66, 0x0f, 0xbc, 0xc9, //0x00001b4e bsfw %cx, %cx + 0x0f, 0xb7, 0xc9, //0x00001b52 movzwl %cx, %ecx + 0x48, 0x01, 0xcf, //0x00001b55 addq %rcx, %rdi + 0x49, 0x01, 0xca, //0x00001b58 addq %rcx, %r10 + 0x49, 0xf7, 0xda, //0x00001b5b negq %r10 + 0x48, 0x01, 0xce, //0x00001b5e addq %rcx, %rsi + 0x4c, 0x89, 0xd3, //0x00001b61 movq %r10, %rbx + //0x00001b64 LBB8_73 + 0x8a, 0x0f, //0x00001b64 movb (%rdi), %cl + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001b66 .p2align 4, 0x90 + //0x00001b70 LBB8_74 + 0x48, 0x89, 0xf2, //0x00001b70 movq %rsi, %rdx + 0x0f, 0xb6, 0xc9, //0x00001b73 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00001b76 shlq $4, %rcx + 0x49, 0x63, 0x34, 0x0c, //0x00001b7a movslq (%r12,%rcx), %rsi + 0x49, 0x8b, 0x4c, 0x0c, 0x08, //0x00001b7e movq $8(%r12,%rcx), %rcx + 0x48, 0x89, 0x0a, //0x00001b83 movq %rcx, (%rdx) + 0x48, 0x01, 0xd6, //0x00001b86 addq %rdx, %rsi + 0x48, 0x83, 0xfb, 0x02, //0x00001b89 cmpq $2, %rbx + 0x0f, 0x8c, 0x50, 0x00, 0x00, 0x00, //0x00001b8d jl LBB8_78 + 0x0f, 0xb6, 0x4f, 0x01, //0x00001b93 movzbl $1(%rdi), %ecx + 0x48, 0x83, 0xc7, 0x01, //0x00001b97 addq $1, %rdi + 0x48, 0x83, 0xc3, 0xff, //0x00001b9b addq $-1, %rbx + 0x42, 0x80, 0x3c, 0x09, 0x00, //0x00001b9f cmpb $0, (%rcx,%r9) + 0x0f, 0x85, 0xc6, 0xff, 0xff, 0xff, //0x00001ba4 jne LBB8_74 + 0xe9, 0x2a, 0xfe, 0xff, 0xff, //0x00001baa jmp LBB8_57 + //0x00001baf LBB8_76 + 0x0f, 0xb6, 0xca, //0x00001baf movzbl %dl, %ecx + 0x0f, 0xbc, 0xc9, //0x00001bb2 bsfl %ecx, %ecx + 0x48, 0x01, 0xcf, //0x00001bb5 addq %rcx, %rdi + 0x48, 0x29, 0xcb, //0x00001bb8 subq %rcx, %rbx + 0x48, 0x01, 0xce, //0x00001bbb addq %rcx, %rsi + 0xe9, 0xa1, 0xff, 0xff, 0xff, //0x00001bbe jmp LBB8_73 + //0x00001bc3 LBB8_77 + 0x0f, 0xb6, 0xca, //0x00001bc3 movzbl %dl, %ecx + 0x0f, 0xbc, 0xc9, //0x00001bc6 bsfl %ecx, %ecx + 0x48, 0x8d, 0x51, 0x04, //0x00001bc9 leaq $4(%rcx), %rdx + 0x48, 0x01, 0xcf, //0x00001bcd addq %rcx, %rdi + 0x48, 0x83, 0xc7, 0x04, //0x00001bd0 addq $4, %rdi + 0x48, 0x29, 0xd3, //0x00001bd4 subq %rdx, %rbx + 0x48, 0x01, 0xce, //0x00001bd7 addq %rcx, %rsi + 0x48, 0x83, 0xc6, 0x04, //0x00001bda addq $4, %rsi + 0xe9, 0x81, 0xff, 0xff, 0xff, //0x00001bde jmp LBB8_73 + //0x00001be3 LBB8_78 + 0x4c, 0x29, 0xfe, //0x00001be3 subq %r15, %rsi + 0x49, 0x89, 0x33, //0x00001be6 movq %rsi, (%r11) + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x00001be9 jmp LBB8_82 + //0x00001bee LBB8_81 + 0x4c, 0x2b, 0x75, 0xd0, //0x00001bee subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00001bf2 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00001bf6 movq %r14, (%rax) + 0x4c, 0x29, 0xcf, //0x00001bf9 subq %r9, %rdi + 0x49, 0xf7, 0xd5, //0x00001bfc notq %r13 + 0x49, 0x01, 0xfd, //0x00001bff addq %rdi, %r13 + 0x4c, 0x89, 0xe8, //0x00001c02 movq %r13, %rax + //0x00001c05 LBB8_82 + 0x48, 0x83, 0xc4, 0x20, //0x00001c05 addq $32, %rsp + 0x5b, //0x00001c09 popq %rbx + 0x41, 0x5c, //0x00001c0a popq %r12 + 0x41, 0x5d, //0x00001c0c popq %r13 + 0x41, 0x5e, //0x00001c0e popq %r14 + 0x41, 0x5f, //0x00001c10 popq %r15 + 0x5d, //0x00001c12 popq %rbp + 0xc3, //0x00001c13 retq + //0x00001c14 LBB8_83 + 0x48, 0x8b, 0x4d, 0xd0, //0x00001c14 movq $-48(%rbp), %rcx + 0x4c, 0x01, 0xe9, //0x00001c18 addq %r13, %rcx + 0x48, 0xf7, 0xd1, //0x00001c1b notq %rcx + 0x4c, 0x01, 0xf1, //0x00001c1e addq %r14, %rcx + 0x48, 0x8b, 0x45, 0xc8, //0x00001c21 movq $-56(%rbp), %rax + 0x48, 0x89, 0x08, //0x00001c25 movq %rcx, (%rax) + 0x4c, 0x29, 0xcf, //0x00001c28 subq %r9, %rdi + 0x4c, 0x01, 0xef, //0x00001c2b addq %r13, %rdi + 0x48, 0x89, 0xf8, //0x00001c2e movq %rdi, %rax + 0xe9, 0xcf, 0xff, 0xff, 0xff, //0x00001c31 jmp LBB8_82 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00001c36 .p2align 4, 0x00 + //0x00001c40 LCPI9_0 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00001c40 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00001c50 .p2align 4, 0x90 + //0x00001c50 _unquote + 0x55, //0x00001c50 pushq %rbp + 0x48, 0x89, 0xe5, //0x00001c51 movq %rsp, %rbp + 0x41, 0x57, //0x00001c54 pushq %r15 + 0x41, 0x56, //0x00001c56 pushq %r14 + 0x41, 0x55, //0x00001c58 pushq %r13 + 0x41, 0x54, //0x00001c5a pushq %r12 + 0x53, //0x00001c5c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x00001c5d subq $56, %rsp + 0x48, 0x85, 0xf6, //0x00001c61 testq %rsi, %rsi + 0x0f, 0x84, 0x25, 0x06, 0x00, 0x00, //0x00001c64 je LBB9_1 + 0x48, 0x89, 0x4d, 0xd0, //0x00001c6a movq %rcx, $-48(%rbp) + 0x45, 0x89, 0xc2, //0x00001c6e movl %r8d, %r10d + 0x41, 0x83, 0xe2, 0x01, //0x00001c71 andl $1, %r10d + 0x4c, 0x8d, 0x35, 0x54, 0xf2, 0x00, 0x00, //0x00001c75 leaq $62036(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xbc, 0xff, 0xff, 0xff, //0x00001c7c movdqa $-68(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x49, 0x89, 0xff, //0x00001c84 movq %rdi, %r15 + 0x49, 0x89, 0xf5, //0x00001c87 movq %rsi, %r13 + 0x49, 0x89, 0xd4, //0x00001c8a movq %rdx, %r12 + 0x4c, 0x89, 0x45, 0xc0, //0x00001c8d movq %r8, $-64(%rbp) + //0x00001c91 LBB9_4 + 0x41, 0x80, 0x3f, 0x5c, //0x00001c91 cmpb $92, (%r15) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00001c95 jne LBB9_6 + 0x45, 0x31, 0xdb, //0x00001c9b xorl %r11d, %r11d + 0xe9, 0xcd, 0x00, 0x00, 0x00, //0x00001c9e jmp LBB9_18 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001ca3 .p2align 4, 0x90 + //0x00001cb0 LBB9_6 + 0x4d, 0x89, 0xe9, //0x00001cb0 movq %r13, %r9 + 0x4c, 0x89, 0xe1, //0x00001cb3 movq %r12, %rcx + 0x4d, 0x89, 0xfb, //0x00001cb6 movq %r15, %r11 + 0x49, 0x83, 0xfd, 0x10, //0x00001cb9 cmpq $16, %r13 + 0x0f, 0x8c, 0x45, 0x00, 0x00, 0x00, //0x00001cbd jl LBB9_12 + 0x31, 0xc9, //0x00001cc3 xorl %ecx, %ecx + 0x4c, 0x89, 0xe8, //0x00001cc5 movq %r13, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001cc8 .p2align 4, 0x90 + //0x00001cd0 LBB9_8 + 0xf3, 0x41, 0x0f, 0x6f, 0x04, 0x0f, //0x00001cd0 movdqu (%r15,%rcx), %xmm0 + 0xf3, 0x41, 0x0f, 0x7f, 0x04, 0x0c, //0x00001cd6 movdqu %xmm0, (%r12,%rcx) + 0x66, 0x0f, 0x74, 0xc1, //0x00001cdc pcmpeqb %xmm1, %xmm0 + 0x66, 0x0f, 0xd7, 0xd8, //0x00001ce0 pmovmskb %xmm0, %ebx + 0x85, 0xdb, //0x00001ce4 testl %ebx, %ebx + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00001ce6 jne LBB9_9 + 0x4c, 0x8d, 0x48, 0xf0, //0x00001cec leaq $-16(%rax), %r9 + 0x48, 0x83, 0xc1, 0x10, //0x00001cf0 addq $16, %rcx + 0x48, 0x83, 0xf8, 0x1f, //0x00001cf4 cmpq $31, %rax + 0x4c, 0x89, 0xc8, //0x00001cf8 movq %r9, %rax + 0x0f, 0x8f, 0xcf, 0xff, 0xff, 0xff, //0x00001cfb jg LBB9_8 + 0x4d, 0x8d, 0x1c, 0x0f, //0x00001d01 leaq (%r15,%rcx), %r11 + 0x4c, 0x01, 0xe1, //0x00001d05 addq %r12, %rcx + //0x00001d08 LBB9_12 + 0x4d, 0x85, 0xc9, //0x00001d08 testq %r9, %r9 + 0x0f, 0x84, 0x84, 0x05, 0x00, 0x00, //0x00001d0b je LBB9_2 + 0x31, 0xc0, //0x00001d11 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00001d13 .p2align 4, 0x90 + //0x00001d20 LBB9_14 + 0x41, 0x0f, 0xb6, 0x1c, 0x03, //0x00001d20 movzbl (%r11,%rax), %ebx + 0x80, 0xfb, 0x5c, //0x00001d25 cmpb $92, %bl + 0x0f, 0x84, 0x15, 0x00, 0x00, 0x00, //0x00001d28 je LBB9_16 + 0x88, 0x1c, 0x01, //0x00001d2e movb %bl, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00001d31 addq $1, %rax + 0x49, 0x39, 0xc1, //0x00001d35 cmpq %rax, %r9 + 0x0f, 0x85, 0xe2, 0xff, 0xff, 0xff, //0x00001d38 jne LBB9_14 + 0xe9, 0x52, 0x05, 0x00, 0x00, //0x00001d3e jmp LBB9_2 + //0x00001d43 LBB9_16 + 0x4d, 0x29, 0xfb, //0x00001d43 subq %r15, %r11 + 0x49, 0x01, 0xc3, //0x00001d46 addq %rax, %r11 + 0x49, 0x83, 0xfb, 0xff, //0x00001d49 cmpq $-1, %r11 + 0x0f, 0x85, 0x1d, 0x00, 0x00, 0x00, //0x00001d4d jne LBB9_18 + 0xe9, 0x3d, 0x05, 0x00, 0x00, //0x00001d53 jmp LBB9_2 + //0x00001d58 LBB9_9 + 0x66, 0x0f, 0xbc, 0xc3, //0x00001d58 bsfw %bx, %ax + 0x44, 0x0f, 0xb7, 0xd8, //0x00001d5c movzwl %ax, %r11d + 0x49, 0x01, 0xcb, //0x00001d60 addq %rcx, %r11 + 0x49, 0x83, 0xfb, 0xff, //0x00001d63 cmpq $-1, %r11 + 0x0f, 0x84, 0x28, 0x05, 0x00, 0x00, //0x00001d67 je LBB9_2 + 0x90, 0x90, 0x90, //0x00001d6d .p2align 4, 0x90 + //0x00001d70 LBB9_18 + 0x49, 0x8d, 0x4b, 0x02, //0x00001d70 leaq $2(%r11), %rcx + 0x49, 0x29, 0xcd, //0x00001d74 subq %rcx, %r13 + 0x0f, 0x88, 0x4c, 0x06, 0x00, 0x00, //0x00001d77 js LBB9_19 + 0x4d, 0x01, 0xdf, //0x00001d7d addq %r11, %r15 + 0x49, 0x83, 0xc7, 0x02, //0x00001d80 addq $2, %r15 + 0x4d, 0x85, 0xd2, //0x00001d84 testq %r10, %r10 + 0x0f, 0x85, 0x4b, 0x02, 0x00, 0x00, //0x00001d87 jne LBB9_21 + //0x00001d8d LBB9_32 + 0x4d, 0x01, 0xdc, //0x00001d8d addq %r11, %r12 + 0x41, 0x0f, 0xb6, 0x47, 0xff, //0x00001d90 movzbl $-1(%r15), %eax + 0x42, 0x8a, 0x04, 0x30, //0x00001d95 movb (%rax,%r14), %al + 0x3c, 0xff, //0x00001d99 cmpb $-1, %al + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00001d9b je LBB9_38 + 0x84, 0xc0, //0x00001da1 testb %al, %al + 0x0f, 0x84, 0x3b, 0x06, 0x00, 0x00, //0x00001da3 je LBB9_34 + 0x41, 0x88, 0x04, 0x24, //0x00001da9 movb %al, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x00001dad addq $1, %r12 + 0x4d, 0x85, 0xed, //0x00001db1 testq %r13, %r13 + 0x0f, 0x85, 0xd7, 0xfe, 0xff, 0xff, //0x00001db4 jne LBB9_4 + 0xe9, 0x1d, 0x06, 0x00, 0x00, //0x00001dba jmp LBB9_37 + 0x90, //0x00001dbf .p2align 4, 0x90 + //0x00001dc0 LBB9_38 + 0x49, 0x83, 0xfd, 0x03, //0x00001dc0 cmpq $3, %r13 + 0x0f, 0x8e, 0xff, 0x05, 0x00, 0x00, //0x00001dc4 jle LBB9_19 + 0x41, 0x8b, 0x1f, //0x00001dca movl (%r15), %ebx + 0x89, 0xd9, //0x00001dcd movl %ebx, %ecx + 0xf7, 0xd1, //0x00001dcf notl %ecx + 0x8d, 0x83, 0xd0, 0xcf, 0xcf, 0xcf, //0x00001dd1 leal $-808464432(%rbx), %eax + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00001dd7 andl $-2139062144, %ecx + 0x85, 0xc1, //0x00001ddd testl %eax, %ecx + 0x0f, 0x85, 0xc8, 0x04, 0x00, 0x00, //0x00001ddf jne LBB9_43 + 0x8d, 0x83, 0x19, 0x19, 0x19, 0x19, //0x00001de5 leal $421075225(%rbx), %eax + 0x09, 0xd8, //0x00001deb orl %ebx, %eax + 0xa9, 0x80, 0x80, 0x80, 0x80, //0x00001ded testl $-2139062144, %eax + 0x0f, 0x85, 0xb5, 0x04, 0x00, 0x00, //0x00001df2 jne LBB9_43 + 0x89, 0xd8, //0x00001df8 movl %ebx, %eax + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x00001dfa andl $2139062143, %eax + 0x41, 0xbb, 0xc0, 0xc0, 0xc0, 0xc0, //0x00001dff movl $-1061109568, %r11d + 0x41, 0x29, 0xc3, //0x00001e05 subl %eax, %r11d + 0x44, 0x8d, 0x88, 0x46, 0x46, 0x46, 0x46, //0x00001e08 leal $1179010630(%rax), %r9d + 0x41, 0x21, 0xcb, //0x00001e0f andl %ecx, %r11d + 0x45, 0x85, 0xcb, //0x00001e12 testl %r9d, %r11d + 0x0f, 0x85, 0x92, 0x04, 0x00, 0x00, //0x00001e15 jne LBB9_43 + 0x41, 0xb9, 0xe0, 0xe0, 0xe0, 0xe0, //0x00001e1b movl $-522133280, %r9d + 0x41, 0x29, 0xc1, //0x00001e21 subl %eax, %r9d + 0x05, 0x39, 0x39, 0x39, 0x39, //0x00001e24 addl $960051513, %eax + 0x44, 0x21, 0xc9, //0x00001e29 andl %r9d, %ecx + 0x85, 0xc1, //0x00001e2c testl %eax, %ecx + 0x0f, 0x85, 0x79, 0x04, 0x00, 0x00, //0x00001e2e jne LBB9_43 + 0x0f, 0xcb, //0x00001e34 bswapl %ebx + 0x89, 0xd9, //0x00001e36 movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001e38 shrl $4, %ecx + 0xf7, 0xd1, //0x00001e3b notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001e3d andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001e43 leal (%rcx,%rcx,8), %ecx + 0x81, 0xe3, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001e46 andl $252645135, %ebx + 0x01, 0xcb, //0x00001e4c addl %ecx, %ebx + 0x89, 0xd9, //0x00001e4e movl %ebx, %ecx + 0xc1, 0xe9, 0x04, //0x00001e50 shrl $4, %ecx + 0x09, 0xd9, //0x00001e53 orl %ebx, %ecx + 0x89, 0xc8, //0x00001e55 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00001e57 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001e5a andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x00001e5f movzbl %cl, %ebx + 0x09, 0xc3, //0x00001e62 orl %eax, %ebx + 0x4d, 0x8d, 0x4f, 0x04, //0x00001e64 leaq $4(%r15), %r9 + 0x49, 0x8d, 0x45, 0xfc, //0x00001e68 leaq $-4(%r13), %rax + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001e6c cmpl $128, %ebx + 0x0f, 0x82, 0xb3, 0x01, 0x00, 0x00, //0x00001e72 jb LBB9_58 + 0x41, 0xf6, 0xc0, 0x02, //0x00001e78 testb $2, %r8b + 0x0f, 0x84, 0xbc, 0x01, 0x00, 0x00, //0x00001e7c je LBB9_69 + 0x4d, 0x89, 0xcf, //0x00001e82 movq %r9, %r15 + 0x41, 0x89, 0xde, //0x00001e85 movl %ebx, %r14d + 0x49, 0x89, 0xc5, //0x00001e88 movq %rax, %r13 + //0x00001e8b LBB9_63 + 0x41, 0x81, 0xfe, 0xff, 0x07, 0x00, 0x00, //0x00001e8b cmpl $2047, %r14d + 0x0f, 0x86, 0xa1, 0x02, 0x00, 0x00, //0x00001e92 jbe LBB9_71 + 0x44, 0x89, 0xf0, //0x00001e98 movl %r14d, %eax + 0x25, 0x00, 0xf8, 0xff, 0xff, //0x00001e9b andl $-2048, %eax + 0x3d, 0x00, 0xd8, 0x00, 0x00, //0x00001ea0 cmpl $55296, %eax + 0x0f, 0x85, 0xc5, 0x01, 0x00, 0x00, //0x00001ea5 jne LBB9_74 + 0x4d, 0x85, 0xd2, //0x00001eab testq %r10, %r10 + 0x48, 0x89, 0x7d, 0xc8, //0x00001eae movq %rdi, $-56(%rbp) + 0x48, 0x89, 0x75, 0xb8, //0x00001eb2 movq %rsi, $-72(%rbp) + 0x0f, 0x85, 0xcf, 0x00, 0x00, 0x00, //0x00001eb6 jne LBB9_66 + 0x4c, 0x89, 0x55, 0xb0, //0x00001ebc movq %r10, $-80(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00001ec0 movq %rdx, $-88(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00001ec4 cmpq $6, %r13 + 0x0f, 0x8c, 0xea, 0x00, 0x00, 0x00, //0x00001ec8 jl LBB9_98 + //0x00001ece LBB9_95 + 0x41, 0x81, 0xfe, 0xff, 0xdb, 0x00, 0x00, //0x00001ece cmpl $56319, %r14d + 0x0f, 0x87, 0xdd, 0x00, 0x00, 0x00, //0x00001ed5 ja LBB9_98 + 0x41, 0x80, 0x3f, 0x5c, //0x00001edb cmpb $92, (%r15) + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x00001edf jne LBB9_98 + 0x41, 0x80, 0x7f, 0x01, 0x75, //0x00001ee5 cmpb $117, $1(%r15) + 0x0f, 0x85, 0xc8, 0x00, 0x00, 0x00, //0x00001eea jne LBB9_98 + 0x49, 0x8d, 0x7f, 0x02, //0x00001ef0 leaq $2(%r15), %rdi + 0xe8, 0x77, 0x06, 0x00, 0x00, //0x00001ef4 callq _unhex16_is + 0x84, 0xc0, //0x00001ef9 testb %al, %al + 0x0f, 0x84, 0x47, 0x05, 0x00, 0x00, //0x00001efb je LBB9_104 + 0x41, 0x8b, 0x47, 0x02, //0x00001f01 movl $2(%r15), %eax + 0x0f, 0xc8, //0x00001f05 bswapl %eax + 0x89, 0xc1, //0x00001f07 movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001f09 shrl $4, %ecx + 0xf7, 0xd1, //0x00001f0c notl %ecx + 0x81, 0xe1, 0x01, 0x01, 0x01, 0x01, //0x00001f0e andl $16843009, %ecx + 0x8d, 0x0c, 0xc9, //0x00001f14 leal (%rcx,%rcx,8), %ecx + 0x25, 0x0f, 0x0f, 0x0f, 0x0f, //0x00001f17 andl $252645135, %eax + 0x01, 0xc8, //0x00001f1c addl %ecx, %eax + 0x89, 0xc1, //0x00001f1e movl %eax, %ecx + 0xc1, 0xe9, 0x04, //0x00001f20 shrl $4, %ecx + 0x09, 0xc1, //0x00001f23 orl %eax, %ecx + 0x89, 0xc8, //0x00001f25 movl %ecx, %eax + 0xc1, 0xe8, 0x08, //0x00001f27 shrl $8, %eax + 0x25, 0x00, 0xff, 0x00, 0x00, //0x00001f2a andl $65280, %eax + 0x0f, 0xb6, 0xd9, //0x00001f2f movzbl %cl, %ebx + 0x09, 0xc3, //0x00001f32 orl %eax, %ebx + 0x49, 0x83, 0xc7, 0x06, //0x00001f34 addq $6, %r15 + 0x49, 0x83, 0xc5, 0xfa, //0x00001f38 addq $-6, %r13 + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x00001f3c andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00001f42 cmpl $14417920, %ecx + 0x48, 0x8b, 0x7d, 0xc8, //0x00001f48 movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00001f4c movq $-88(%rbp), %rdx + 0x48, 0x8b, 0x75, 0xb8, //0x00001f50 movq $-72(%rbp), %rsi + 0x66, 0x0f, 0x6f, 0x0d, 0xe4, 0xfc, 0xff, 0xff, //0x00001f54 movdqa $-796(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x0f, 0x84, 0x53, 0x01, 0x00, 0x00, //0x00001f5c je LBB9_115 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001f62 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001f69 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00001f6f addq $3, %r12 + 0x41, 0x89, 0xde, //0x00001f73 movl %ebx, %r14d + 0x81, 0xfb, 0x80, 0x00, 0x00, 0x00, //0x00001f76 cmpl $128, %ebx + 0x4c, 0x8b, 0x55, 0xb0, //0x00001f7c movq $-80(%rbp), %r10 + 0x0f, 0x83, 0x05, 0xff, 0xff, 0xff, //0x00001f80 jae LBB9_63 + 0xe9, 0xa6, 0x00, 0x00, 0x00, //0x00001f86 jmp LBB9_59 + //0x00001f8b LBB9_66 + 0x4d, 0x85, 0xed, //0x00001f8b testq %r13, %r13 + 0x0f, 0x8e, 0x8e, 0x04, 0x00, 0x00, //0x00001f8e jle LBB9_67 + 0x41, 0x80, 0x3f, 0x5c, //0x00001f94 cmpb $92, (%r15) + 0x0f, 0x85, 0x76, 0x02, 0x00, 0x00, //0x00001f98 jne LBB9_100 + 0x49, 0x83, 0xc5, 0xff, //0x00001f9e addq $-1, %r13 + 0x49, 0x83, 0xc7, 0x01, //0x00001fa2 addq $1, %r15 + 0x4c, 0x89, 0x55, 0xb0, //0x00001fa6 movq %r10, $-80(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00001faa movq %rdx, $-88(%rbp) + 0x49, 0x83, 0xfd, 0x06, //0x00001fae cmpq $6, %r13 + 0x0f, 0x8d, 0x16, 0xff, 0xff, 0xff, //0x00001fb2 jge LBB9_95 + //0x00001fb8 LBB9_98 + 0xf6, 0x45, 0xc0, 0x02, //0x00001fb8 testb $2, $-64(%rbp) + 0x0f, 0x84, 0xab, 0x02, 0x00, 0x00, //0x00001fbc je LBB9_81 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x00001fc2 movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00001fc9 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00001fcf addq $3, %r12 + 0xe9, 0x27, 0x01, 0x00, 0x00, //0x00001fd3 jmp LBB9_90 + //0x00001fd8 LBB9_21 + 0x45, 0x85, 0xed, //0x00001fd8 testl %r13d, %r13d + 0x0f, 0x84, 0xe8, 0x03, 0x00, 0x00, //0x00001fdb je LBB9_19 + 0x41, 0x80, 0x7f, 0xff, 0x5c, //0x00001fe1 cmpb $92, $-1(%r15) + 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00001fe6 jne LBB9_23 + 0x41, 0x80, 0x3f, 0x5c, //0x00001fec cmpb $92, (%r15) + 0x0f, 0x85, 0x28, 0x00, 0x00, 0x00, //0x00001ff0 jne LBB9_31 + 0x41, 0x83, 0xfd, 0x01, //0x00001ff6 cmpl $1, %r13d + 0x0f, 0x8e, 0xc9, 0x03, 0x00, 0x00, //0x00001ffa jle LBB9_19 + 0x41, 0x8a, 0x4f, 0x01, //0x00002000 movb $1(%r15), %cl + 0x80, 0xf9, 0x22, //0x00002004 cmpb $34, %cl + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00002007 je LBB9_30 + 0x80, 0xf9, 0x5c, //0x0000200d cmpb $92, %cl + 0x0f, 0x85, 0x00, 0x04, 0x00, 0x00, //0x00002010 jne LBB9_29 + //0x00002016 LBB9_30 + 0x49, 0x83, 0xc7, 0x01, //0x00002016 addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x0000201a addq $-1, %r13 + //0x0000201e LBB9_31 + 0x49, 0x83, 0xc7, 0x01, //0x0000201e addq $1, %r15 + 0x49, 0x83, 0xc5, 0xff, //0x00002022 addq $-1, %r13 + 0xe9, 0x62, 0xfd, 0xff, 0xff, //0x00002026 jmp LBB9_32 + //0x0000202b LBB9_58 + 0x49, 0x89, 0xc5, //0x0000202b movq %rax, %r13 + 0x4d, 0x89, 0xcf, //0x0000202e movq %r9, %r15 + //0x00002031 LBB9_59 + 0x41, 0x88, 0x1c, 0x24, //0x00002031 movb %bl, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x00002035 addq $1, %r12 + 0xe9, 0x5e, 0x00, 0x00, 0x00, //0x00002039 jmp LBB9_60 + //0x0000203e LBB9_69 + 0x81, 0xfb, 0x00, 0x08, 0x00, 0x00, //0x0000203e cmpl $2048, %ebx + 0x0f, 0x82, 0xe6, 0x00, 0x00, 0x00, //0x00002044 jb LBB9_70 + 0x81, 0xe1, 0x00, 0x00, 0xf8, 0x00, //0x0000204a andl $16252928, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xd8, 0x00, //0x00002050 cmpl $14155776, %ecx + 0x0f, 0x84, 0xff, 0x00, 0x00, 0x00, //0x00002056 je LBB9_75 + 0x49, 0x89, 0xc5, //0x0000205c movq %rax, %r13 + 0x41, 0x89, 0xde, //0x0000205f movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002062 movq %r9, %r15 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002065 .p2align 4, 0x90 + //0x00002070 LBB9_74 + 0x44, 0x89, 0xf0, //0x00002070 movl %r14d, %eax + 0xc1, 0xe8, 0x0c, //0x00002073 shrl $12, %eax + 0x0c, 0xe0, //0x00002076 orb $-32, %al + 0x41, 0x88, 0x04, 0x24, //0x00002078 movb %al, (%r12) + 0x44, 0x89, 0xf0, //0x0000207c movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x0000207f shrl $6, %eax + 0x24, 0x3f, //0x00002082 andb $63, %al + 0x0c, 0x80, //0x00002084 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x01, //0x00002086 movb %al, $1(%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x0000208b andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x0000208f orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x02, //0x00002093 movb %r14b, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002098 addq $3, %r12 + //0x0000209c LBB9_60 + 0x4c, 0x8b, 0x45, 0xc0, //0x0000209c movq $-64(%rbp), %r8 + 0x4c, 0x8d, 0x35, 0x29, 0xee, 0x00, 0x00, //0x000020a0 leaq $60969(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0x4d, 0x85, 0xed, //0x000020a7 testq %r13, %r13 + 0x0f, 0x85, 0xe1, 0xfb, 0xff, 0xff, //0x000020aa jne LBB9_4 + 0xe9, 0x27, 0x03, 0x00, 0x00, //0x000020b0 jmp LBB9_37 + //0x000020b5 LBB9_115 + 0x89, 0xd8, //0x000020b5 movl %ebx, %eax + 0x44, 0x89, 0xf3, //0x000020b7 movl %r14d, %ebx + //0x000020ba LBB9_89 + 0xc1, 0xe3, 0x0a, //0x000020ba shll $10, %ebx + 0x89, 0xc1, //0x000020bd movl %eax, %ecx + 0x01, 0xd9, //0x000020bf addl %ebx, %ecx + 0x01, 0xd8, //0x000020c1 addl %ebx, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000020c3 addl $-56613888, %eax + 0x89, 0xc2, //0x000020c8 movl %eax, %edx + 0xc1, 0xea, 0x12, //0x000020ca shrl $18, %edx + 0x80, 0xca, 0xf0, //0x000020cd orb $-16, %dl + 0x41, 0x88, 0x14, 0x24, //0x000020d0 movb %dl, (%r12) + 0x89, 0xc2, //0x000020d4 movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x000020d6 shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x000020d9 andb $63, %dl + 0x80, 0xca, 0x80, //0x000020dc orb $-128, %dl + 0x41, 0x88, 0x54, 0x24, 0x01, //0x000020df movb %dl, $1(%r12) + 0xc1, 0xe8, 0x06, //0x000020e4 shrl $6, %eax + 0x24, 0x3f, //0x000020e7 andb $63, %al + 0x0c, 0x80, //0x000020e9 orb $-128, %al + 0x41, 0x88, 0x44, 0x24, 0x02, //0x000020eb movb %al, $2(%r12) + 0x80, 0xe1, 0x3f, //0x000020f0 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000020f3 orb $-128, %cl + 0x41, 0x88, 0x4c, 0x24, 0x03, //0x000020f6 movb %cl, $3(%r12) + 0x49, 0x83, 0xc4, 0x04, //0x000020fb addq $4, %r12 + //0x000020ff LBB9_90 + 0x48, 0x8b, 0x7d, 0xc8, //0x000020ff movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x55, 0xa8, //0x00002103 movq $-88(%rbp), %rdx + 0x4c, 0x8b, 0x55, 0xb0, //0x00002107 movq $-80(%rbp), %r10 + 0x48, 0x8b, 0x75, 0xb8, //0x0000210b movq $-72(%rbp), %rsi + 0x4c, 0x8b, 0x45, 0xc0, //0x0000210f movq $-64(%rbp), %r8 + 0x4c, 0x8d, 0x35, 0xb6, 0xed, 0x00, 0x00, //0x00002113 leaq $60854(%rip), %r14 /* __UnquoteTab+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x1e, 0xfb, 0xff, 0xff, //0x0000211a movdqa $-1250(%rip), %xmm1 /* LCPI9_0+0(%rip) */ + 0x4d, 0x85, 0xed, //0x00002122 testq %r13, %r13 + 0x0f, 0x85, 0x66, 0xfb, 0xff, 0xff, //0x00002125 jne LBB9_4 + 0xe9, 0xac, 0x02, 0x00, 0x00, //0x0000212b jmp LBB9_37 + //0x00002130 LBB9_70 + 0x49, 0x89, 0xc5, //0x00002130 movq %rax, %r13 + 0x41, 0x89, 0xde, //0x00002133 movl %ebx, %r14d + 0x4d, 0x89, 0xcf, //0x00002136 movq %r9, %r15 + //0x00002139 LBB9_71 + 0x44, 0x89, 0xf0, //0x00002139 movl %r14d, %eax + 0xc1, 0xe8, 0x06, //0x0000213c shrl $6, %eax + 0x0c, 0xc0, //0x0000213f orb $-64, %al + 0x41, 0x88, 0x04, 0x24, //0x00002141 movb %al, (%r12) + 0x41, 0x80, 0xe6, 0x3f, //0x00002145 andb $63, %r14b + 0x41, 0x80, 0xce, 0x80, //0x00002149 orb $-128, %r14b + 0x45, 0x88, 0x74, 0x24, 0x01, //0x0000214d movb %r14b, $1(%r12) + 0x49, 0x83, 0xc4, 0x02, //0x00002152 addq $2, %r12 + 0xe9, 0x41, 0xff, 0xff, 0xff, //0x00002156 jmp LBB9_60 + //0x0000215b LBB9_75 + 0x48, 0x89, 0x45, 0xa0, //0x0000215b movq %rax, $-96(%rbp) + 0x4d, 0x89, 0xce, //0x0000215f movq %r9, %r14 + 0x48, 0x89, 0x75, 0xb8, //0x00002162 movq %rsi, $-72(%rbp) + 0x48, 0x89, 0x55, 0xa8, //0x00002166 movq %rdx, $-88(%rbp) + 0x48, 0x89, 0x7d, 0xc8, //0x0000216a movq %rdi, $-56(%rbp) + 0x4c, 0x89, 0x55, 0xb0, //0x0000216e movq %r10, $-80(%rbp) + 0x4d, 0x85, 0xd2, //0x00002172 testq %r10, %r10 + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x00002175 jne LBB9_76 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000217b cmpq $6, $-96(%rbp) + 0x0f, 0x8c, 0xe4, 0x00, 0x00, 0x00, //0x00002180 jl LBB9_80 + //0x00002186 LBB9_82 + 0x81, 0xfb, 0xff, 0xdb, 0x00, 0x00, //0x00002186 cmpl $56319, %ebx + 0x0f, 0x87, 0xd8, 0x00, 0x00, 0x00, //0x0000218c ja LBB9_80 + 0x41, 0x80, 0x3e, 0x5c, //0x00002192 cmpb $92, (%r14) + 0x0f, 0x85, 0xce, 0x00, 0x00, 0x00, //0x00002196 jne LBB9_80 + 0x41, 0x80, 0x7e, 0x01, 0x75, //0x0000219c cmpb $117, $1(%r14) + 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x000021a1 jne LBB9_80 + 0x49, 0x8d, 0x7e, 0x02, //0x000021a7 leaq $2(%r14), %rdi + 0xe8, 0xc0, 0x03, 0x00, 0x00, //0x000021ab callq _unhex16_is + 0x84, 0xc0, //0x000021b0 testb %al, %al + 0x0f, 0x84, 0x8d, 0x02, 0x00, 0x00, //0x000021b2 je LBB9_86 + 0x4d, 0x89, 0xf7, //0x000021b8 movq %r14, %r15 + 0x41, 0x8b, 0x4e, 0x02, //0x000021bb movl $2(%r14), %ecx + 0x0f, 0xc9, //0x000021bf bswapl %ecx + 0x89, 0xc8, //0x000021c1 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x000021c3 shrl $4, %eax + 0xf7, 0xd0, //0x000021c6 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x000021c8 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x000021cd leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x000021d0 andl $252645135, %ecx + 0x01, 0xc1, //0x000021d6 addl %eax, %ecx + 0x89, 0xc8, //0x000021d8 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x000021da shrl $4, %eax + 0x09, 0xc8, //0x000021dd orl %ecx, %eax + 0x49, 0x83, 0xc7, 0x06, //0x000021df addq $6, %r15 + 0x89, 0xc1, //0x000021e3 movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x000021e5 andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x000021eb cmpl $14417920, %ecx + 0x0f, 0x85, 0x3b, 0x03, 0x00, 0x00, //0x000021f1 jne LBB9_117 + 0x89, 0xc1, //0x000021f7 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x000021f9 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000021fc andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x00002202 movzbl %al, %eax + 0x09, 0xc8, //0x00002205 orl %ecx, %eax + 0x4c, 0x8b, 0x6d, 0xa0, //0x00002207 movq $-96(%rbp), %r13 + 0x49, 0x83, 0xc5, 0xfa, //0x0000220b addq $-6, %r13 + 0xe9, 0xa6, 0xfe, 0xff, 0xff, //0x0000220f jmp LBB9_89 + //0x00002214 LBB9_100 + 0xf6, 0x45, 0xc0, 0x02, //0x00002214 testb $2, $-64(%rbp) + 0x0f, 0x84, 0x1d, 0x03, 0x00, 0x00, //0x00002218 je LBB9_101 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000221e movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002225 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x0000222b addq $3, %r12 + 0x48, 0x8b, 0x7d, 0xc8, //0x0000222f movq $-56(%rbp), %rdi + 0x48, 0x8b, 0x75, 0xb8, //0x00002233 movq $-72(%rbp), %rsi + 0xe9, 0x60, 0xfe, 0xff, 0xff, //0x00002237 jmp LBB9_60 + //0x0000223c LBB9_76 + 0x49, 0x83, 0xfd, 0x05, //0x0000223c cmpq $5, %r13 + 0x0f, 0x8c, 0x0c, 0x03, 0x00, 0x00, //0x00002240 jl LBB9_91 + 0x41, 0x80, 0x3e, 0x5c, //0x00002246 cmpb $92, (%r14) + 0x0f, 0x85, 0xee, 0x02, 0x00, 0x00, //0x0000224a jne LBB9_102 + 0x49, 0x83, 0xc5, 0xfb, //0x00002250 addq $-5, %r13 + 0x49, 0x83, 0xc7, 0x05, //0x00002254 addq $5, %r15 + 0x4c, 0x89, 0x6d, 0xa0, //0x00002258 movq %r13, $-96(%rbp) + 0x4d, 0x89, 0xfe, //0x0000225c movq %r15, %r14 + 0x48, 0x83, 0x7d, 0xa0, 0x06, //0x0000225f cmpq $6, $-96(%rbp) + 0x0f, 0x8d, 0x1c, 0xff, 0xff, 0xff, //0x00002264 jge LBB9_82 + //0x0000226a LBB9_80 + 0x4d, 0x89, 0xf7, //0x0000226a movq %r14, %r15 + //0x0000226d LBB9_81 + 0x48, 0x8b, 0x45, 0xb0, //0x0000226d movq $-80(%rbp), %rax + 0x48, 0x03, 0x45, 0xc8, //0x00002271 addq $-56(%rbp), %rax + 0x49, 0x29, 0xc7, //0x00002275 subq %rax, %r15 + //0x00002278 LBB9_118 + 0x49, 0x83, 0xc7, 0xfc, //0x00002278 addq $-4, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x0000227c movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00002280 movq %r15, (%rax) + //0x00002283 LBB9_119 + 0x49, 0xc7, 0xc4, 0xfc, 0xff, 0xff, 0xff, //0x00002283 movq $-4, %r12 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x0000228a jmp LBB9_120 + //0x0000228f LBB9_1 + 0x45, 0x31, 0xed, //0x0000228f xorl %r13d, %r13d + 0x49, 0x89, 0xd4, //0x00002292 movq %rdx, %r12 + //0x00002295 LBB9_2 + 0x4d, 0x01, 0xec, //0x00002295 addq %r13, %r12 + 0x49, 0x29, 0xd4, //0x00002298 subq %rdx, %r12 + //0x0000229b LBB9_120 + 0x4c, 0x89, 0xe0, //0x0000229b movq %r12, %rax + 0x48, 0x83, 0xc4, 0x38, //0x0000229e addq $56, %rsp + 0x5b, //0x000022a2 popq %rbx + 0x41, 0x5c, //0x000022a3 popq %r12 + 0x41, 0x5d, //0x000022a5 popq %r13 + 0x41, 0x5e, //0x000022a7 popq %r14 + 0x41, 0x5f, //0x000022a9 popq %r15 + 0x5d, //0x000022ab popq %rbp + 0xc3, //0x000022ac retq + //0x000022ad LBB9_43 + 0x4c, 0x89, 0xf8, //0x000022ad movq %r15, %rax + 0x48, 0x29, 0xf8, //0x000022b0 subq %rdi, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x000022b3 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x000022b7 movq %rax, (%rsi) + 0x41, 0x8a, 0x0f, //0x000022ba movb (%r15), %cl + 0x8d, 0x51, 0xd0, //0x000022bd leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x000022c0 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000022c3 jb LBB9_46 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000022c9 movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000022d0 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000022d3 cmpb $37, %cl + 0x0f, 0x87, 0xbf, 0xff, 0xff, 0xff, //0x000022d6 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000022dc movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000022df movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000022e9 btq %rcx, %rdx + 0x0f, 0x83, 0xa8, 0xff, 0xff, 0xff, //0x000022ed jae LBB9_120 + //0x000022f3 LBB9_46 + 0x48, 0x8d, 0x48, 0x01, //0x000022f3 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x000022f7 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x01, //0x000022fa movb $1(%r15), %cl + 0x8d, 0x51, 0xd0, //0x000022fe leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x00002301 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x00002304 jbe LBB9_49 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000230a movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002311 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002314 cmpb $37, %cl + 0x0f, 0x87, 0x7e, 0xff, 0xff, 0xff, //0x00002317 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000231d movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002320 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000232a btq %rcx, %rdx + 0x0f, 0x83, 0x67, 0xff, 0xff, 0xff, //0x0000232e jae LBB9_120 + //0x00002334 LBB9_49 + 0x48, 0x8d, 0x48, 0x02, //0x00002334 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002338 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x0000233b movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000233f leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002342 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002345 jb LBB9_52 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000234b movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002352 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002355 cmpb $37, %cl + 0x0f, 0x87, 0x3d, 0xff, 0xff, 0xff, //0x00002358 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000235e movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002361 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000236b btq %rcx, %rdx + 0x0f, 0x83, 0x26, 0xff, 0xff, 0xff, //0x0000236f jae LBB9_120 + //0x00002375 LBB9_52 + 0x48, 0x8d, 0x48, 0x03, //0x00002375 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002379 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x0000237c movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002380 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002383 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002386 jb LBB9_56 + //0x0000238c LBB9_54 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000238c movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002393 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002396 cmpb $37, %cl + 0x0f, 0x87, 0xfc, 0xfe, 0xff, 0xff, //0x00002399 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000239f movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000023a2 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000023ac btq %rcx, %rdx + 0x0f, 0x83, 0xe5, 0xfe, 0xff, 0xff, //0x000023b0 jae LBB9_120 + //0x000023b6 LBB9_56 + 0x48, 0x83, 0xc0, 0x04, //0x000023b6 addq $4, %rax + 0x48, 0x89, 0x06, //0x000023ba movq %rax, (%rsi) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000023bd movq $-2, %r12 + 0xe9, 0xd2, 0xfe, 0xff, 0xff, //0x000023c4 jmp LBB9_120 + //0x000023c9 LBB9_19 + 0x48, 0x8b, 0x45, 0xd0, //0x000023c9 movq $-48(%rbp), %rax + 0x48, 0x89, 0x30, //0x000023cd movq %rsi, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x000023d0 movq $-1, %r12 + 0xe9, 0xbf, 0xfe, 0xff, 0xff, //0x000023d7 jmp LBB9_120 + //0x000023dc LBB9_37 + 0x45, 0x31, 0xed, //0x000023dc xorl %r13d, %r13d + 0xe9, 0xb1, 0xfe, 0xff, 0xff, //0x000023df jmp LBB9_2 + //0x000023e4 LBB9_34 + 0x48, 0xf7, 0xd7, //0x000023e4 notq %rdi + 0x49, 0x01, 0xff, //0x000023e7 addq %rdi, %r15 + 0x48, 0x8b, 0x45, 0xd0, //0x000023ea movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x000023ee movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfd, 0xff, 0xff, 0xff, //0x000023f1 movq $-3, %r12 + 0xe9, 0x9e, 0xfe, 0xff, 0xff, //0x000023f8 jmp LBB9_120 + //0x000023fd LBB9_23 + 0x48, 0xf7, 0xd7, //0x000023fd notq %rdi + 0x49, 0x01, 0xff, //0x00002400 addq %rdi, %r15 + //0x00002403 LBB9_24 + 0x48, 0x8b, 0x45, 0xd0, //0x00002403 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x38, //0x00002407 movq %r15, (%rax) + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000240a movq $-2, %r12 + 0xe9, 0x85, 0xfe, 0xff, 0xff, //0x00002411 jmp LBB9_120 + //0x00002416 LBB9_29 + 0x49, 0x29, 0xff, //0x00002416 subq %rdi, %r15 + 0x49, 0x83, 0xc7, 0x01, //0x00002419 addq $1, %r15 + 0xe9, 0xe1, 0xff, 0xff, 0xff, //0x0000241d jmp LBB9_24 + //0x00002422 LBB9_67 + 0xf6, 0x45, 0xc0, 0x02, //0x00002422 testb $2, $-64(%rbp) + 0x0f, 0x84, 0x26, 0x01, 0x00, 0x00, //0x00002426 je LBB9_91 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0xef, 0xbf, //0x0000242c movw $-16401, (%r12) + 0x41, 0xc6, 0x44, 0x24, 0x02, 0xbd, //0x00002433 movb $-67, $2(%r12) + 0x49, 0x83, 0xc4, 0x03, //0x00002439 addq $3, %r12 + 0x45, 0x31, 0xed, //0x0000243d xorl %r13d, %r13d + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00002440 jmp LBB9_2 + //0x00002445 LBB9_86 + 0x4d, 0x89, 0xf7, //0x00002445 movq %r14, %r15 + //0x00002448 LBB9_104 + 0x4c, 0x89, 0xf8, //0x00002448 movq %r15, %rax + 0x48, 0x2b, 0x45, 0xc8, //0x0000244b subq $-56(%rbp), %rax + 0x48, 0x83, 0xc0, 0x02, //0x0000244f addq $2, %rax + 0x48, 0x8b, 0x75, 0xd0, //0x00002453 movq $-48(%rbp), %rsi + 0x48, 0x89, 0x06, //0x00002457 movq %rax, (%rsi) + 0x41, 0x8a, 0x4f, 0x02, //0x0000245a movb $2(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000245e leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002461 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x00002464 jb LBB9_107 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x0000246a movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x00002471 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x00002474 cmpb $37, %cl + 0x0f, 0x87, 0x1e, 0xfe, 0xff, 0xff, //0x00002477 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x0000247d movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002480 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000248a btq %rcx, %rdx + 0x0f, 0x83, 0x07, 0xfe, 0xff, 0xff, //0x0000248e jae LBB9_120 + //0x00002494 LBB9_107 + 0x48, 0x8d, 0x48, 0x01, //0x00002494 leaq $1(%rax), %rcx + 0x48, 0x89, 0x0e, //0x00002498 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x03, //0x0000249b movb $3(%r15), %cl + 0x8d, 0x51, 0xd0, //0x0000249f leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x000024a2 cmpb $9, %dl + 0x0f, 0x86, 0x2a, 0x00, 0x00, 0x00, //0x000024a5 jbe LBB9_110 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024ab movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000024b2 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000024b5 cmpb $37, %cl + 0x0f, 0x87, 0xdd, 0xfd, 0xff, 0xff, //0x000024b8 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000024be movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x000024c1 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000024cb btq %rcx, %rdx + 0x0f, 0x83, 0xc6, 0xfd, 0xff, 0xff, //0x000024cf jae LBB9_120 + //0x000024d5 LBB9_110 + 0x48, 0x8d, 0x48, 0x02, //0x000024d5 leaq $2(%rax), %rcx + 0x48, 0x89, 0x0e, //0x000024d9 movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x04, //0x000024dc movb $4(%r15), %cl + 0x8d, 0x51, 0xd0, //0x000024e0 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x000024e3 cmpb $10, %dl + 0x0f, 0x82, 0x2a, 0x00, 0x00, 0x00, //0x000024e6 jb LBB9_113 + 0x49, 0xc7, 0xc4, 0xfe, 0xff, 0xff, 0xff, //0x000024ec movq $-2, %r12 + 0x80, 0xc1, 0xbf, //0x000024f3 addb $-65, %cl + 0x80, 0xf9, 0x25, //0x000024f6 cmpb $37, %cl + 0x0f, 0x87, 0x9c, 0xfd, 0xff, 0xff, //0x000024f9 ja LBB9_120 + 0x0f, 0xb6, 0xc9, //0x000024ff movzbl %cl, %ecx + 0x48, 0xba, 0x3f, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, //0x00002502 movabsq $270582939711, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x0000250c btq %rcx, %rdx + 0x0f, 0x83, 0x85, 0xfd, 0xff, 0xff, //0x00002510 jae LBB9_120 + //0x00002516 LBB9_113 + 0x48, 0x8d, 0x48, 0x03, //0x00002516 leaq $3(%rax), %rcx + 0x48, 0x89, 0x0e, //0x0000251a movq %rcx, (%rsi) + 0x41, 0x8a, 0x4f, 0x05, //0x0000251d movb $5(%r15), %cl + 0x8d, 0x51, 0xd0, //0x00002521 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x0a, //0x00002524 cmpb $10, %dl + 0x0f, 0x83, 0x5f, 0xfe, 0xff, 0xff, //0x00002527 jae LBB9_54 + 0xe9, 0x84, 0xfe, 0xff, 0xff, //0x0000252d jmp LBB9_56 + //0x00002532 LBB9_117 + 0x4c, 0x2b, 0x7d, 0xc8, //0x00002532 subq $-56(%rbp), %r15 + 0xe9, 0x3d, 0xfd, 0xff, 0xff, //0x00002536 jmp LBB9_118 + //0x0000253b LBB9_101 + 0x4d, 0x89, 0xfe, //0x0000253b movq %r15, %r14 + //0x0000253e LBB9_102 + 0x4c, 0x2b, 0x75, 0xc8, //0x0000253e subq $-56(%rbp), %r14 + 0x49, 0x83, 0xc6, 0xfc, //0x00002542 addq $-4, %r14 + 0x48, 0x8b, 0x45, 0xd0, //0x00002546 movq $-48(%rbp), %rax + 0x4c, 0x89, 0x30, //0x0000254a movq %r14, (%rax) + 0xe9, 0x31, 0xfd, 0xff, 0xff, //0x0000254d jmp LBB9_119 + //0x00002552 LBB9_91 + 0x48, 0x8b, 0x45, 0xd0, //0x00002552 movq $-48(%rbp), %rax + 0x48, 0x8b, 0x4d, 0xb8, //0x00002556 movq $-72(%rbp), %rcx + 0x48, 0x89, 0x08, //0x0000255a movq %rcx, (%rax) + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x0000255d movq $-1, %r12 + 0xe9, 0x32, 0xfd, 0xff, 0xff, //0x00002564 jmp LBB9_120 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002569 .p2align 4, 0x90 + //0x00002570 _unhex16_is + 0x55, //0x00002570 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002571 movq %rsp, %rbp + 0x8b, 0x07, //0x00002574 movl (%rdi), %eax + 0x89, 0xc1, //0x00002576 movl %eax, %ecx + 0xf7, 0xd1, //0x00002578 notl %ecx + 0x8d, 0x90, 0xd0, 0xcf, 0xcf, 0xcf, //0x0000257a leal $-808464432(%rax), %edx + 0x81, 0xe1, 0x80, 0x80, 0x80, 0x80, //0x00002580 andl $-2139062144, %ecx + 0x85, 0xd1, //0x00002586 testl %edx, %ecx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002588 je LBB10_2 + 0x31, 0xc0, //0x0000258e xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x00002590 movzbl %al, %eax + 0x5d, //0x00002593 popq %rbp + 0xc3, //0x00002594 retq + //0x00002595 LBB10_2 + 0x8d, 0x90, 0x19, 0x19, 0x19, 0x19, //0x00002595 leal $421075225(%rax), %edx + 0x09, 0xc2, //0x0000259b orl %eax, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x0000259d testl $-2139062144, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025a3 je LBB10_4 + 0x31, 0xc0, //0x000025a9 xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x000025ab movzbl %al, %eax + 0x5d, //0x000025ae popq %rbp + 0xc3, //0x000025af retq + //0x000025b0 LBB10_4 + 0x25, 0x7f, 0x7f, 0x7f, 0x7f, //0x000025b0 andl $2139062143, %eax + 0xba, 0xc0, 0xc0, 0xc0, 0xc0, //0x000025b5 movl $-1061109568, %edx + 0x29, 0xc2, //0x000025ba subl %eax, %edx + 0x8d, 0xb0, 0x46, 0x46, 0x46, 0x46, //0x000025bc leal $1179010630(%rax), %esi + 0x21, 0xca, //0x000025c2 andl %ecx, %edx + 0x85, 0xf2, //0x000025c4 testl %esi, %edx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x000025c6 je LBB10_6 + 0x31, 0xc0, //0x000025cc xorl %eax, %eax + 0x0f, 0xb6, 0xc0, //0x000025ce movzbl %al, %eax + 0x5d, //0x000025d1 popq %rbp + 0xc3, //0x000025d2 retq + //0x000025d3 LBB10_6 + 0xba, 0xe0, 0xe0, 0xe0, 0xe0, //0x000025d3 movl $-522133280, %edx + 0x29, 0xc2, //0x000025d8 subl %eax, %edx + 0x05, 0x39, 0x39, 0x39, 0x39, //0x000025da addl $960051513, %eax + 0x21, 0xd1, //0x000025df andl %edx, %ecx + 0x85, 0xc1, //0x000025e1 testl %eax, %ecx + 0x0f, 0x94, 0xc0, //0x000025e3 sete %al + 0x0f, 0xb6, 0xc0, //0x000025e6 movzbl %al, %eax + 0x5d, //0x000025e9 popq %rbp + 0xc3, //0x000025ea retq + 0x00, 0x00, 0x00, 0x00, 0x00, //0x000025eb .p2align 4, 0x00 + //0x000025f0 LCPI11_0 + 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, //0x000025f0 QUAD $0x2626262626262626; QUAD $0x2626262626262626 // .space 16, '&&&&&&&&&&&&&&&&' + //0x00002600 LCPI11_1 + 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, 0xe2, //0x00002600 QUAD $0xe2e2e2e2e2e2e2e2; QUAD $0xe2e2e2e2e2e2e2e2 // .space 16, '\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2\xe2' + //0x00002610 LCPI11_2 + 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, 0xfd, //0x00002610 QUAD $0xfdfdfdfdfdfdfdfd; QUAD $0xfdfdfdfdfdfdfdfd // .space 16, '\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd\xfd' + //0x00002620 LCPI11_3 + 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, 0x3c, //0x00002620 QUAD $0x3c3c3c3c3c3c3c3c; QUAD $0x3c3c3c3c3c3c3c3c // .space 16, '<<<<<<<<<<<<<<<<' + //0x00002630 .p2align 4, 0x90 + //0x00002630 _html_escape + 0x55, //0x00002630 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002631 movq %rsp, %rbp + 0x41, 0x57, //0x00002634 pushq %r15 + 0x41, 0x56, //0x00002636 pushq %r14 + 0x41, 0x55, //0x00002638 pushq %r13 + 0x41, 0x54, //0x0000263a pushq %r12 + 0x53, //0x0000263c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000263d subq $16, %rsp + 0x48, 0x89, 0x4d, 0xc8, //0x00002641 movq %rcx, $-56(%rbp) + 0x49, 0x89, 0xd6, //0x00002645 movq %rdx, %r14 + 0x48, 0x89, 0x55, 0xd0, //0x00002648 movq %rdx, $-48(%rbp) + 0x48, 0x89, 0xf8, //0x0000264c movq %rdi, %rax + 0x48, 0x85, 0xf6, //0x0000264f testq %rsi, %rsi + 0x0f, 0x8e, 0xb2, 0x04, 0x00, 0x00, //0x00002652 jle LBB11_70 + 0x48, 0x8b, 0x45, 0xc8, //0x00002658 movq $-56(%rbp), %rax + 0x4c, 0x8b, 0x08, //0x0000265c movq (%rax), %r9 + 0x66, 0x0f, 0x6f, 0x05, 0x89, 0xff, 0xff, 0xff, //0x0000265f movdqa $-119(%rip), %xmm0 /* LCPI11_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x91, 0xff, 0xff, 0xff, //0x00002667 movdqa $-111(%rip), %xmm1 /* LCPI11_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x99, 0xff, 0xff, 0xff, //0x0000266f movdqa $-103(%rip), %xmm2 /* LCPI11_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0xa1, 0xff, 0xff, 0xff, //0x00002677 movdqa $-95(%rip), %xmm3 /* LCPI11_3+0(%rip) */ + 0x4c, 0x8d, 0x1d, 0x4a, 0xe9, 0x00, 0x00, //0x0000267f leaq $59722(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x49, 0x89, 0xfc, //0x00002686 movq %rdi, %r12 + 0x4c, 0x8b, 0x75, 0xd0, //0x00002689 movq $-48(%rbp), %r14 + 0x90, 0x90, 0x90, //0x0000268d .p2align 4, 0x90 + //0x00002690 LBB11_2 + 0x4d, 0x85, 0xc9, //0x00002690 testq %r9, %r9 + 0x0f, 0x8e, 0x8f, 0x04, 0x00, 0x00, //0x00002693 jle LBB11_3 + 0x48, 0x83, 0xfe, 0x10, //0x00002699 cmpq $16, %rsi + 0x0f, 0x9d, 0xc0, //0x0000269d setge %al + 0x4d, 0x89, 0xcd, //0x000026a0 movq %r9, %r13 + 0x4d, 0x89, 0xf0, //0x000026a3 movq %r14, %r8 + 0x48, 0x89, 0xf1, //0x000026a6 movq %rsi, %rcx + 0x4d, 0x89, 0xe7, //0x000026a9 movq %r12, %r15 + 0x0f, 0x8c, 0x86, 0x00, 0x00, 0x00, //0x000026ac jl LBB11_12 + 0x49, 0x83, 0xf9, 0x10, //0x000026b2 cmpq $16, %r9 + 0x0f, 0x8c, 0x7c, 0x00, 0x00, 0x00, //0x000026b6 jl LBB11_12 + 0x45, 0x31, 0xc0, //0x000026bc xorl %r8d, %r8d + 0x48, 0x89, 0xf3, //0x000026bf movq %rsi, %rbx + 0x4c, 0x89, 0xca, //0x000026c2 movq %r9, %rdx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000026c5 .p2align 4, 0x90 + //0x000026d0 LBB11_7 + 0xf3, 0x43, 0x0f, 0x6f, 0x24, 0x04, //0x000026d0 movdqu (%r12,%r8), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x000026d6 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x000026da movdqa %xmm4, %xmm6 + 0xf3, 0x43, 0x0f, 0x7f, 0x24, 0x06, //0x000026de movdqu %xmm4, (%r14,%r8) + 0x66, 0x0f, 0x74, 0xe0, //0x000026e4 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe9, //0x000026e8 pcmpeqb %xmm1, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x000026ec por %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xf2, //0x000026f0 pand %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf3, //0x000026f4 pcmpeqb %xmm3, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x000026f8 por %xmm5, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x000026fc pmovmskb %xmm6, %eax + 0x85, 0xc0, //0x00002700 testl %eax, %eax + 0x0f, 0x85, 0x58, 0x01, 0x00, 0x00, //0x00002702 jne LBB11_8 + 0x48, 0x8d, 0x4b, 0xf0, //0x00002708 leaq $-16(%rbx), %rcx + 0x4c, 0x8d, 0x6a, 0xf0, //0x0000270c leaq $-16(%rdx), %r13 + 0x49, 0x83, 0xc0, 0x10, //0x00002710 addq $16, %r8 + 0x48, 0x83, 0xfb, 0x20, //0x00002714 cmpq $32, %rbx + 0x0f, 0x9d, 0xc0, //0x00002718 setge %al + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x0000271b jl LBB11_11 + 0x48, 0x89, 0xcb, //0x00002721 movq %rcx, %rbx + 0x48, 0x83, 0xfa, 0x1f, //0x00002724 cmpq $31, %rdx + 0x4c, 0x89, 0xea, //0x00002728 movq %r13, %rdx + 0x0f, 0x8f, 0x9f, 0xff, 0xff, 0xff, //0x0000272b jg LBB11_7 + //0x00002731 LBB11_11 + 0x4f, 0x8d, 0x3c, 0x04, //0x00002731 leaq (%r12,%r8), %r15 + 0x4d, 0x01, 0xf0, //0x00002735 addq %r14, %r8 + //0x00002738 LBB11_12 + 0x84, 0xc0, //0x00002738 testb %al, %al + 0x0f, 0x84, 0x70, 0x00, 0x00, 0x00, //0x0000273a je LBB11_13 + 0xf3, 0x41, 0x0f, 0x6f, 0x27, //0x00002740 movdqu (%r15), %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00002745 movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xe8, //0x00002749 pcmpeqb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x0000274d movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf1, //0x00002751 pcmpeqb %xmm1, %xmm6 + 0x66, 0x0f, 0xeb, 0xf5, //0x00002755 por %xmm5, %xmm6 + 0x66, 0x48, 0x0f, 0x7e, 0xe0, //0x00002759 movq %xmm4, %rax + 0x66, 0x0f, 0xdb, 0xe2, //0x0000275e pand %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe3, //0x00002762 pcmpeqb %xmm3, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00002766 por %xmm6, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x0000276a pmovmskb %xmm4, %ecx + 0x81, 0xc9, 0x00, 0x00, 0x01, 0x00, //0x0000276e orl $65536, %ecx + 0x44, 0x0f, 0xbc, 0xd1, //0x00002774 bsfl %ecx, %r10d + 0x4d, 0x39, 0xd5, //0x00002778 cmpq %r10, %r13 + 0x0f, 0x8d, 0xf8, 0x00, 0x00, 0x00, //0x0000277b jge LBB11_24 + 0x49, 0x83, 0xfd, 0x08, //0x00002781 cmpq $8, %r13 + 0x0f, 0x82, 0x31, 0x01, 0x00, 0x00, //0x00002785 jb LBB11_35 + 0x49, 0x89, 0x00, //0x0000278b movq %rax, (%r8) + 0x4d, 0x8d, 0x57, 0x08, //0x0000278e leaq $8(%r15), %r10 + 0x49, 0x83, 0xc0, 0x08, //0x00002792 addq $8, %r8 + 0x49, 0x8d, 0x5d, 0xf8, //0x00002796 leaq $-8(%r13), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x0000279a cmpq $4, %rbx + 0x0f, 0x8d, 0x28, 0x01, 0x00, 0x00, //0x0000279e jge LBB11_38 + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x000027a4 jmp LBB11_39 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027a9 .p2align 4, 0x90 + //0x000027b0 LBB11_13 + 0x48, 0x85, 0xc9, //0x000027b0 testq %rcx, %rcx + 0x0f, 0x8e, 0x87, 0x00, 0x00, 0x00, //0x000027b3 jle LBB11_21 + 0x4d, 0x85, 0xed, //0x000027b9 testq %r13, %r13 + 0x0f, 0x8e, 0x7e, 0x00, 0x00, 0x00, //0x000027bc jle LBB11_21 + 0x31, 0xd2, //0x000027c2 xorl %edx, %edx + 0x31, 0xc0, //0x000027c4 xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000027c6 .p2align 4, 0x90 + //0x000027d0 LBB11_16 + 0x45, 0x0f, 0xb6, 0x1c, 0x17, //0x000027d0 movzbl (%r15,%rdx), %r11d + 0x49, 0x83, 0xfb, 0x3e, //0x000027d5 cmpq $62, %r11 + 0x0f, 0x87, 0x14, 0x00, 0x00, 0x00, //0x000027d9 ja LBB11_17 + 0x48, 0xbb, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, //0x000027df movabsq $5764607797912141824, %rbx + 0x4c, 0x0f, 0xa3, 0xdb, //0x000027e9 btq %r11, %rbx + 0x0f, 0x82, 0xae, 0x00, 0x00, 0x00, //0x000027ed jb LBB11_45 + //0x000027f3 LBB11_17 + 0x41, 0x80, 0xfb, 0xe2, //0x000027f3 cmpb $-30, %r11b + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x000027f7 je LBB11_45 + 0x4c, 0x8d, 0x14, 0x01, //0x000027fd leaq (%rcx,%rax), %r10 + 0x45, 0x88, 0x1c, 0x10, //0x00002801 movb %r11b, (%r8,%rdx) + 0x48, 0x8d, 0x58, 0xff, //0x00002805 leaq $-1(%rax), %rbx + 0x49, 0x83, 0xfa, 0x02, //0x00002809 cmpq $2, %r10 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x0000280d jl LBB11_20 + 0x4c, 0x01, 0xe8, //0x00002813 addq %r13, %rax + 0x48, 0x83, 0xc2, 0x01, //0x00002816 addq $1, %rdx + 0x48, 0x83, 0xf8, 0x01, //0x0000281a cmpq $1, %rax + 0x48, 0x89, 0xd8, //0x0000281e movq %rbx, %rax + 0x0f, 0x8f, 0xa9, 0xff, 0xff, 0xff, //0x00002821 jg LBB11_16 + //0x00002827 LBB11_20 + 0x49, 0x29, 0xdf, //0x00002827 subq %rbx, %r15 + 0x48, 0x01, 0xd9, //0x0000282a addq %rbx, %rcx + 0x4c, 0x8d, 0x1d, 0x9c, 0xe7, 0x00, 0x00, //0x0000282d leaq $59292(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002834 .p2align 4, 0x90 + //0x00002840 LBB11_21 + 0x48, 0x85, 0xc9, //0x00002840 testq %rcx, %rcx + 0x0f, 0x84, 0x5e, 0x01, 0x00, 0x00, //0x00002843 je LBB11_22 + 0x49, 0xf7, 0xd7, //0x00002849 notq %r15 + 0x4d, 0x01, 0xe7, //0x0000284c addq %r12, %r15 + 0x4d, 0x85, 0xff, //0x0000284f testq %r15, %r15 + 0x0f, 0x89, 0x68, 0x01, 0x00, 0x00, //0x00002852 jns LBB11_49 + 0xe9, 0x88, 0x02, 0x00, 0x00, //0x00002858 jmp LBB11_48 + 0x90, 0x90, 0x90, //0x0000285d .p2align 4, 0x90 + //0x00002860 LBB11_8 + 0x66, 0x0f, 0xbc, 0xc0, //0x00002860 bsfw %ax, %ax + 0x44, 0x0f, 0xb7, 0xf8, //0x00002864 movzwl %ax, %r15d + 0x4d, 0x01, 0xc7, //0x00002868 addq %r8, %r15 + 0x4d, 0x85, 0xff, //0x0000286b testq %r15, %r15 + 0x0f, 0x89, 0x4c, 0x01, 0x00, 0x00, //0x0000286e jns LBB11_49 + 0xe9, 0x6c, 0x02, 0x00, 0x00, //0x00002874 jmp LBB11_48 + //0x00002879 LBB11_24 + 0x41, 0x83, 0xfa, 0x08, //0x00002879 cmpl $8, %r10d + 0x0f, 0x82, 0x8e, 0x00, 0x00, 0x00, //0x0000287d jb LBB11_25 + 0x49, 0x89, 0x00, //0x00002883 movq %rax, (%r8) + 0x4d, 0x8d, 0x6f, 0x08, //0x00002886 leaq $8(%r15), %r13 + 0x49, 0x83, 0xc0, 0x08, //0x0000288a addq $8, %r8 + 0x49, 0x8d, 0x5a, 0xf8, //0x0000288e leaq $-8(%r10), %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00002892 cmpq $4, %rbx + 0x0f, 0x8d, 0x85, 0x00, 0x00, 0x00, //0x00002896 jge LBB11_28 + 0xe9, 0x93, 0x00, 0x00, 0x00, //0x0000289c jmp LBB11_29 + //0x000028a1 LBB11_45 + 0x4d, 0x29, 0xe7, //0x000028a1 subq %r12, %r15 + 0x49, 0x29, 0xc7, //0x000028a4 subq %rax, %r15 + 0x4c, 0x8d, 0x1d, 0x22, 0xe7, 0x00, 0x00, //0x000028a7 leaq $59170(%rip), %r11 /* __HtmlQuoteTab+0(%rip) */ + 0x4d, 0x85, 0xff, //0x000028ae testq %r15, %r15 + 0x0f, 0x89, 0x09, 0x01, 0x00, 0x00, //0x000028b1 jns LBB11_49 + 0xe9, 0x29, 0x02, 0x00, 0x00, //0x000028b7 jmp LBB11_48 + //0x000028bc LBB11_35 + 0x4d, 0x89, 0xfa, //0x000028bc movq %r15, %r10 + 0x4c, 0x89, 0xeb, //0x000028bf movq %r13, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x000028c2 cmpq $4, %rbx + 0x0f, 0x8c, 0x12, 0x00, 0x00, 0x00, //0x000028c6 jl LBB11_39 + //0x000028cc LBB11_38 + 0x41, 0x8b, 0x02, //0x000028cc movl (%r10), %eax + 0x41, 0x89, 0x00, //0x000028cf movl %eax, (%r8) + 0x49, 0x83, 0xc2, 0x04, //0x000028d2 addq $4, %r10 + 0x49, 0x83, 0xc0, 0x04, //0x000028d6 addq $4, %r8 + 0x48, 0x83, 0xc3, 0xfc, //0x000028da addq $-4, %rbx + //0x000028de LBB11_39 + 0x48, 0x83, 0xfb, 0x02, //0x000028de cmpq $2, %rbx + 0x0f, 0x83, 0x7a, 0x00, 0x00, 0x00, //0x000028e2 jae LBB11_40 + 0x48, 0x85, 0xdb, //0x000028e8 testq %rbx, %rbx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x000028eb je LBB11_43 + //0x000028f1 LBB11_42 + 0x41, 0x8a, 0x02, //0x000028f1 movb (%r10), %al + 0x41, 0x88, 0x00, //0x000028f4 movb %al, (%r8) + //0x000028f7 LBB11_43 + 0x4d, 0x01, 0xfd, //0x000028f7 addq %r15, %r13 + 0x49, 0xf7, 0xd5, //0x000028fa notq %r13 + 0x4d, 0x01, 0xe5, //0x000028fd addq %r12, %r13 + 0x4d, 0x89, 0xef, //0x00002900 movq %r13, %r15 + 0x4d, 0x85, 0xff, //0x00002903 testq %r15, %r15 + 0x0f, 0x89, 0xb4, 0x00, 0x00, 0x00, //0x00002906 jns LBB11_49 + 0xe9, 0xd4, 0x01, 0x00, 0x00, //0x0000290c jmp LBB11_48 + //0x00002911 LBB11_25 + 0x4d, 0x89, 0xfd, //0x00002911 movq %r15, %r13 + 0x4c, 0x89, 0xd3, //0x00002914 movq %r10, %rbx + 0x48, 0x83, 0xfb, 0x04, //0x00002917 cmpq $4, %rbx + 0x0f, 0x8c, 0x13, 0x00, 0x00, 0x00, //0x0000291b jl LBB11_29 + //0x00002921 LBB11_28 + 0x41, 0x8b, 0x45, 0x00, //0x00002921 movl (%r13), %eax + 0x41, 0x89, 0x00, //0x00002925 movl %eax, (%r8) + 0x49, 0x83, 0xc5, 0x04, //0x00002928 addq $4, %r13 + 0x49, 0x83, 0xc0, 0x04, //0x0000292c addq $4, %r8 + 0x48, 0x83, 0xc3, 0xfc, //0x00002930 addq $-4, %rbx + //0x00002934 LBB11_29 + 0x48, 0x83, 0xfb, 0x02, //0x00002934 cmpq $2, %rbx + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00002938 jae LBB11_30 + 0x48, 0x85, 0xdb, //0x0000293e testq %rbx, %rbx + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00002941 je LBB11_33 + //0x00002947 LBB11_32 + 0x41, 0x8a, 0x45, 0x00, //0x00002947 movb (%r13), %al + 0x41, 0x88, 0x00, //0x0000294b movb %al, (%r8) + //0x0000294e LBB11_33 + 0x4d, 0x29, 0xe7, //0x0000294e subq %r12, %r15 + 0x4d, 0x01, 0xd7, //0x00002951 addq %r10, %r15 + 0x4d, 0x85, 0xff, //0x00002954 testq %r15, %r15 + 0x0f, 0x89, 0x63, 0x00, 0x00, 0x00, //0x00002957 jns LBB11_49 + 0xe9, 0x83, 0x01, 0x00, 0x00, //0x0000295d jmp LBB11_48 + //0x00002962 LBB11_40 + 0x41, 0x0f, 0xb7, 0x02, //0x00002962 movzwl (%r10), %eax + 0x66, 0x41, 0x89, 0x00, //0x00002966 movw %ax, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x0000296a addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x0000296e addq $2, %r8 + 0x48, 0x83, 0xc3, 0xfe, //0x00002972 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x00002976 testq %rbx, %rbx + 0x0f, 0x85, 0x72, 0xff, 0xff, 0xff, //0x00002979 jne LBB11_42 + 0xe9, 0x73, 0xff, 0xff, 0xff, //0x0000297f jmp LBB11_43 + //0x00002984 LBB11_30 + 0x41, 0x0f, 0xb7, 0x45, 0x00, //0x00002984 movzwl (%r13), %eax + 0x66, 0x41, 0x89, 0x00, //0x00002989 movw %ax, (%r8) + 0x49, 0x83, 0xc5, 0x02, //0x0000298d addq $2, %r13 + 0x49, 0x83, 0xc0, 0x02, //0x00002991 addq $2, %r8 + 0x48, 0x83, 0xc3, 0xfe, //0x00002995 addq $-2, %rbx + 0x48, 0x85, 0xdb, //0x00002999 testq %rbx, %rbx + 0x0f, 0x85, 0xa5, 0xff, 0xff, 0xff, //0x0000299c jne LBB11_32 + 0xe9, 0xa7, 0xff, 0xff, 0xff, //0x000029a2 jmp LBB11_33 + //0x000029a7 LBB11_22 + 0x4d, 0x29, 0xe7, //0x000029a7 subq %r12, %r15 + 0x4d, 0x85, 0xff, //0x000029aa testq %r15, %r15 + 0x0f, 0x88, 0x32, 0x01, 0x00, 0x00, //0x000029ad js LBB11_48 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000029b3 .p2align 4, 0x90 + //0x000029c0 LBB11_49 + 0x4d, 0x01, 0xfc, //0x000029c0 addq %r15, %r12 + 0x4d, 0x01, 0xfe, //0x000029c3 addq %r15, %r14 + 0x4c, 0x29, 0xfe, //0x000029c6 subq %r15, %rsi + 0x0f, 0x8e, 0x38, 0x01, 0x00, 0x00, //0x000029c9 jle LBB11_50 + 0x4d, 0x29, 0xf9, //0x000029cf subq %r15, %r9 + 0x41, 0x8a, 0x0c, 0x24, //0x000029d2 movb (%r12), %cl + 0x80, 0xf9, 0xe2, //0x000029d6 cmpb $-30, %cl + 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x000029d9 je LBB11_53 + 0x4c, 0x89, 0xe0, //0x000029df movq %r12, %rax + //0x000029e2 LBB11_57 + 0x0f, 0xb6, 0xc9, //0x000029e2 movzbl %cl, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x000029e5 shlq $4, %rcx + 0x4a, 0x8b, 0x14, 0x19, //0x000029e9 movq (%rcx,%r11), %rdx + 0x4c, 0x63, 0xfa, //0x000029ed movslq %edx, %r15 + 0x4d, 0x29, 0xf9, //0x000029f0 subq %r15, %r9 + 0x0f, 0x8c, 0x24, 0x01, 0x00, 0x00, //0x000029f3 jl LBB11_58 + 0x48, 0xc1, 0xe2, 0x20, //0x000029f9 shlq $32, %rdx + 0x4e, 0x8d, 0x14, 0x19, //0x000029fd leaq (%rcx,%r11), %r10 + 0x49, 0x83, 0xc2, 0x08, //0x00002a01 addq $8, %r10 + 0x48, 0xbb, 0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, //0x00002a05 movabsq $12884901889, %rbx + 0x48, 0x39, 0xda, //0x00002a0f cmpq %rbx, %rdx + 0x0f, 0x8c, 0x28, 0x00, 0x00, 0x00, //0x00002a12 jl LBB11_62 + 0x41, 0x8b, 0x12, //0x00002a18 movl (%r10), %edx + 0x41, 0x89, 0x16, //0x00002a1b movl %edx, (%r14) + 0x4e, 0x8d, 0x14, 0x19, //0x00002a1e leaq (%rcx,%r11), %r10 + 0x49, 0x83, 0xc2, 0x0c, //0x00002a22 addq $12, %r10 + 0x4d, 0x8d, 0x46, 0x04, //0x00002a26 leaq $4(%r14), %r8 + 0x49, 0x8d, 0x4f, 0xfc, //0x00002a2a leaq $-4(%r15), %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00002a2e cmpq $2, %rcx + 0x0f, 0x83, 0x18, 0x00, 0x00, 0x00, //0x00002a32 jae LBB11_65 + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x00002a38 jmp LBB11_66 + 0x90, 0x90, 0x90, //0x00002a3d .p2align 4, 0x90 + //0x00002a40 LBB11_62 + 0x4d, 0x89, 0xf0, //0x00002a40 movq %r14, %r8 + 0x4c, 0x89, 0xf9, //0x00002a43 movq %r15, %rcx + 0x48, 0x83, 0xf9, 0x02, //0x00002a46 cmpq $2, %rcx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00002a4a jb LBB11_66 + //0x00002a50 LBB11_65 + 0x41, 0x0f, 0xb7, 0x12, //0x00002a50 movzwl (%r10), %edx + 0x66, 0x41, 0x89, 0x10, //0x00002a54 movw %dx, (%r8) + 0x49, 0x83, 0xc2, 0x02, //0x00002a58 addq $2, %r10 + 0x49, 0x83, 0xc0, 0x02, //0x00002a5c addq $2, %r8 + 0x48, 0x83, 0xc1, 0xfe, //0x00002a60 addq $-2, %rcx + //0x00002a64 LBB11_66 + 0x48, 0x85, 0xc9, //0x00002a64 testq %rcx, %rcx + 0x0f, 0x84, 0x06, 0x00, 0x00, 0x00, //0x00002a67 je LBB11_68 + 0x41, 0x8a, 0x0a, //0x00002a6d movb (%r10), %cl + 0x41, 0x88, 0x08, //0x00002a70 movb %cl, (%r8) + //0x00002a73 LBB11_68 + 0x4d, 0x01, 0xfe, //0x00002a73 addq %r15, %r14 + //0x00002a76 LBB11_69 + 0x48, 0x83, 0xc0, 0x01, //0x00002a76 addq $1, %rax + 0x48, 0x8d, 0x4e, 0xff, //0x00002a7a leaq $-1(%rsi), %rcx + 0x49, 0x89, 0xc4, //0x00002a7e movq %rax, %r12 + 0x48, 0x83, 0xfe, 0x01, //0x00002a81 cmpq $1, %rsi + 0x48, 0x89, 0xce, //0x00002a85 movq %rcx, %rsi + 0x0f, 0x8f, 0x02, 0xfc, 0xff, 0xff, //0x00002a88 jg LBB11_2 + 0xe9, 0x77, 0x00, 0x00, 0x00, //0x00002a8e jmp LBB11_70 + //0x00002a93 LBB11_53 + 0x48, 0x83, 0xfe, 0x03, //0x00002a93 cmpq $3, %rsi + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x00002a97 jl LBB11_59 + 0x41, 0x80, 0x7c, 0x24, 0x01, 0x80, //0x00002a9d cmpb $-128, $1(%r12) + 0x0f, 0x85, 0x1f, 0x00, 0x00, 0x00, //0x00002aa3 jne LBB11_59 + 0x41, 0x8a, 0x4c, 0x24, 0x02, //0x00002aa9 movb $2(%r12), %cl + 0x89, 0xc8, //0x00002aae movl %ecx, %eax + 0x24, 0xfe, //0x00002ab0 andb $-2, %al + 0x3c, 0xa8, //0x00002ab2 cmpb $-88, %al + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x00002ab4 jne LBB11_59 + 0x49, 0x8d, 0x44, 0x24, 0x02, //0x00002aba leaq $2(%r12), %rax + 0x48, 0x83, 0xc6, 0xfe, //0x00002abf addq $-2, %rsi + 0xe9, 0x1a, 0xff, 0xff, 0xff, //0x00002ac3 jmp LBB11_57 + //0x00002ac8 LBB11_59 + 0x4d, 0x85, 0xc9, //0x00002ac8 testq %r9, %r9 + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002acb jle LBB11_3 + 0x41, 0xc6, 0x06, 0xe2, //0x00002ad1 movb $-30, (%r14) + 0x49, 0x83, 0xc6, 0x01, //0x00002ad5 addq $1, %r14 + 0x49, 0x83, 0xc1, 0xff, //0x00002ad9 addq $-1, %r9 + 0x4c, 0x89, 0xe0, //0x00002add movq %r12, %rax + 0xe9, 0x91, 0xff, 0xff, 0xff, //0x00002ae0 jmp LBB11_69 + //0x00002ae5 LBB11_48 + 0x48, 0x8b, 0x4d, 0xd0, //0x00002ae5 movq $-48(%rbp), %rcx + 0x4c, 0x01, 0xf9, //0x00002ae9 addq %r15, %rcx + 0x48, 0xf7, 0xd1, //0x00002aec notq %rcx + 0x4c, 0x01, 0xf1, //0x00002aef addq %r14, %rcx + 0x48, 0x8b, 0x45, 0xc8, //0x00002af2 movq $-56(%rbp), %rax + 0x48, 0x89, 0x08, //0x00002af6 movq %rcx, (%rax) + 0x4c, 0x29, 0xe7, //0x00002af9 subq %r12, %rdi + 0x4c, 0x01, 0xff, //0x00002afc addq %r15, %rdi + 0x48, 0x89, 0xf8, //0x00002aff movq %rdi, %rax + 0xe9, 0x2a, 0x00, 0x00, 0x00, //0x00002b02 jmp LBB11_71 + //0x00002b07 LBB11_50 + 0x4c, 0x89, 0xe0, //0x00002b07 movq %r12, %rax + //0x00002b0a LBB11_70 + 0x4c, 0x2b, 0x75, 0xd0, //0x00002b0a subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x4d, 0xc8, //0x00002b0e movq $-56(%rbp), %rcx + 0x4c, 0x89, 0x31, //0x00002b12 movq %r14, (%rcx) + 0x48, 0x29, 0xf8, //0x00002b15 subq %rdi, %rax + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00002b18 jmp LBB11_71 + //0x00002b1d LBB11_58 + 0x4c, 0x2b, 0x75, 0xd0, //0x00002b1d subq $-48(%rbp), %r14 + 0x48, 0x8b, 0x45, 0xc8, //0x00002b21 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x30, //0x00002b25 movq %r14, (%rax) + //0x00002b28 LBB11_3 + 0x49, 0xf7, 0xd4, //0x00002b28 notq %r12 + 0x49, 0x01, 0xfc, //0x00002b2b addq %rdi, %r12 + 0x4c, 0x89, 0xe0, //0x00002b2e movq %r12, %rax + //0x00002b31 LBB11_71 + 0x48, 0x83, 0xc4, 0x10, //0x00002b31 addq $16, %rsp + 0x5b, //0x00002b35 popq %rbx + 0x41, 0x5c, //0x00002b36 popq %r12 + 0x41, 0x5d, //0x00002b38 popq %r13 + 0x41, 0x5e, //0x00002b3a popq %r14 + 0x41, 0x5f, //0x00002b3c popq %r15 + 0x5d, //0x00002b3e popq %rbp + 0xc3, //0x00002b3f retq + //0x00002b40 .p2align 4, 0x90 + //0x00002b40 _atof_eisel_lemire64 + 0x55, //0x00002b40 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002b41 movq %rsp, %rbp + 0x41, 0x57, //0x00002b44 pushq %r15 + 0x41, 0x56, //0x00002b46 pushq %r14 + 0x41, 0x54, //0x00002b48 pushq %r12 + 0x53, //0x00002b4a pushq %rbx + 0x8d, 0x86, 0x5c, 0x01, 0x00, 0x00, //0x00002b4b leal $348(%rsi), %eax + 0x3d, 0xb7, 0x02, 0x00, 0x00, //0x00002b51 cmpl $695, %eax + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00002b56 ja LBB12_1 + 0x49, 0x89, 0xc8, //0x00002b5c movq %rcx, %r8 + 0x41, 0x89, 0xd1, //0x00002b5f movl %edx, %r9d + 0x48, 0x85, 0xff, //0x00002b62 testq %rdi, %rdi + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002b65 je LBB12_4 + 0x4c, 0x0f, 0xbd, 0xd7, //0x00002b6b bsrq %rdi, %r10 + 0x49, 0x83, 0xf2, 0x3f, //0x00002b6f xorq $63, %r10 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002b73 jmp LBB12_5 + //0x00002b78 LBB12_4 + 0x41, 0xba, 0x40, 0x00, 0x00, 0x00, //0x00002b78 movl $64, %r10d + //0x00002b7e LBB12_5 + 0x44, 0x89, 0xd1, //0x00002b7e movl %r10d, %ecx + 0x48, 0xd3, 0xe7, //0x00002b81 shlq %cl, %rdi + 0x89, 0xc1, //0x00002b84 movl %eax, %ecx + 0x48, 0xc1, 0xe1, 0x04, //0x00002b86 shlq $4, %rcx + 0x4c, 0x8d, 0x25, 0x8f, 0x6e, 0x00, 0x00, //0x00002b8a leaq $28303(%rip), %r12 /* _POW10_M128_TAB+0(%rip) */ + 0x48, 0x89, 0xf8, //0x00002b91 movq %rdi, %rax + 0x4a, 0xf7, 0x64, 0x21, 0x08, //0x00002b94 mulq $8(%rcx,%r12) + 0x49, 0x89, 0xc7, //0x00002b99 movq %rax, %r15 + 0x49, 0x89, 0xd3, //0x00002b9c movq %rdx, %r11 + 0x44, 0x89, 0xdb, //0x00002b9f movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002ba2 andl $511, %ebx + 0x48, 0x81, 0xfb, 0xff, 0x01, 0x00, 0x00, //0x00002ba8 cmpq $511, %rbx + 0x0f, 0x85, 0x52, 0x00, 0x00, 0x00, //0x00002baf jne LBB12_11 + 0x49, 0x89, 0xfe, //0x00002bb5 movq %rdi, %r14 + 0x49, 0xf7, 0xd6, //0x00002bb8 notq %r14 + 0x4c, 0x89, 0xfa, //0x00002bbb movq %r15, %rdx + 0x4d, 0x39, 0xf7, //0x00002bbe cmpq %r14, %r15 + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x00002bc1 jbe LBB12_13 + 0x48, 0x89, 0xf8, //0x00002bc7 movq %rdi, %rax + 0x4a, 0xf7, 0x24, 0x21, //0x00002bca mulq (%rcx,%r12) + 0x4c, 0x01, 0xfa, //0x00002bce addq %r15, %rdx + 0x49, 0x83, 0xd3, 0x00, //0x00002bd1 adcq $0, %r11 + 0x44, 0x89, 0xd9, //0x00002bd5 movl %r11d, %ecx + 0xf7, 0xd1, //0x00002bd8 notl %ecx + 0xf7, 0xc1, 0xff, 0x01, 0x00, 0x00, //0x00002bda testl $511, %ecx + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00002be0 jne LBB12_12 + 0x48, 0x83, 0xfa, 0xff, //0x00002be6 cmpq $-1, %rdx + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x00002bea jne LBB12_12 + 0x4c, 0x39, 0xf0, //0x00002bf0 cmpq %r14, %rax + 0x0f, 0x87, 0x80, 0x00, 0x00, 0x00, //0x00002bf3 ja LBB12_1 + //0x00002bf9 LBB12_12 + 0x44, 0x89, 0xdb, //0x00002bf9 movl %r11d, %ebx + 0x81, 0xe3, 0xff, 0x01, 0x00, 0x00, //0x00002bfc andl $511, %ebx + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x00002c02 jmp LBB12_13 + //0x00002c07 LBB12_11 + 0x4c, 0x89, 0xfa, //0x00002c07 movq %r15, %rdx + //0x00002c0a LBB12_13 + 0x4c, 0x89, 0xd8, //0x00002c0a movq %r11, %rax + 0x48, 0xc1, 0xe8, 0x3f, //0x00002c0d shrq $63, %rax + 0x8d, 0x48, 0x09, //0x00002c11 leal $9(%rax), %ecx + 0x49, 0xd3, 0xeb, //0x00002c14 shrq %cl, %r11 + 0x48, 0x85, 0xd2, //0x00002c17 testq %rdx, %rdx + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002c1a jne LBB12_17 + 0x48, 0x85, 0xdb, //0x00002c20 testq %rbx, %rbx + 0x0f, 0x85, 0x0f, 0x00, 0x00, 0x00, //0x00002c23 jne LBB12_17 + 0x44, 0x89, 0xd9, //0x00002c29 movl %r11d, %ecx + 0x83, 0xe1, 0x03, //0x00002c2c andl $3, %ecx + 0x83, 0xf9, 0x01, //0x00002c2f cmpl $1, %ecx + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00002c32 je LBB12_1 + //0x00002c38 LBB12_17 + 0x69, 0xce, 0x6a, 0x52, 0x03, 0x00, //0x00002c38 imull $217706, %esi, %ecx + 0xc1, 0xf9, 0x10, //0x00002c3e sarl $16, %ecx + 0x81, 0xc1, 0x3f, 0x04, 0x00, 0x00, //0x00002c41 addl $1087, %ecx + 0x48, 0x63, 0xf1, //0x00002c47 movslq %ecx, %rsi + 0x4c, 0x29, 0xd6, //0x00002c4a subq %r10, %rsi + 0x44, 0x89, 0xda, //0x00002c4d movl %r11d, %edx + 0x83, 0xe2, 0x01, //0x00002c50 andl $1, %edx + 0x4c, 0x01, 0xda, //0x00002c53 addq %r11, %rdx + 0x48, 0x89, 0xd1, //0x00002c56 movq %rdx, %rcx + 0x48, 0xc1, 0xe9, 0x36, //0x00002c59 shrq $54, %rcx + 0x48, 0x01, 0xf0, //0x00002c5d addq %rsi, %rax + 0x48, 0x83, 0xf9, 0x01, //0x00002c60 cmpq $1, %rcx + 0x48, 0x83, 0xd8, 0x00, //0x00002c64 sbbq $0, %rax + 0x48, 0x8d, 0x70, 0xff, //0x00002c68 leaq $-1(%rax), %rsi + 0x48, 0x81, 0xfe, 0xfd, 0x07, 0x00, 0x00, //0x00002c6c cmpq $2045, %rsi + 0x0f, 0x86, 0x0b, 0x00, 0x00, 0x00, //0x00002c73 jbe LBB12_19 + //0x00002c79 LBB12_1 + 0x31, 0xc0, //0x00002c79 xorl %eax, %eax + //0x00002c7b LBB12_20 + 0x5b, //0x00002c7b popq %rbx + 0x41, 0x5c, //0x00002c7c popq %r12 + 0x41, 0x5e, //0x00002c7e popq %r14 + 0x41, 0x5f, //0x00002c80 popq %r15 + 0x5d, //0x00002c82 popq %rbp + 0xc3, //0x00002c83 retq + //0x00002c84 LBB12_19 + 0x48, 0x83, 0xf9, 0x01, //0x00002c84 cmpq $1, %rcx + 0xb1, 0x02, //0x00002c88 movb $2, %cl + 0x80, 0xd9, 0x00, //0x00002c8a sbbb $0, %cl + 0x48, 0xd3, 0xea, //0x00002c8d shrq %cl, %rdx + 0x48, 0xc1, 0xe0, 0x34, //0x00002c90 shlq $52, %rax + 0x48, 0xb9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x00, //0x00002c94 movabsq $4503599627370495, %rcx + 0x48, 0x21, 0xd1, //0x00002c9e andq %rdx, %rcx + 0x48, 0x09, 0xc1, //0x00002ca1 orq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00002ca4 movabsq $-9223372036854775808, %rax + 0x48, 0x09, 0xc8, //0x00002cae orq %rcx, %rax + 0x41, 0x83, 0xf9, 0xff, //0x00002cb1 cmpl $-1, %r9d + 0x48, 0x0f, 0x45, 0xc1, //0x00002cb5 cmovneq %rcx, %rax + 0x49, 0x89, 0x00, //0x00002cb9 movq %rax, (%r8) + 0xb0, 0x01, //0x00002cbc movb $1, %al + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x00002cbe jmp LBB12_20 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002cc3 .p2align 4, 0x90 + //0x00002cd0 _decimal_to_f64 + 0x55, //0x00002cd0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00002cd1 movq %rsp, %rbp + 0x41, 0x57, //0x00002cd4 pushq %r15 + 0x41, 0x56, //0x00002cd6 pushq %r14 + 0x41, 0x55, //0x00002cd8 pushq %r13 + 0x41, 0x54, //0x00002cda pushq %r12 + 0x53, //0x00002cdc pushq %rbx + 0x50, //0x00002cdd pushq %rax + 0x48, 0x89, 0xf3, //0x00002cde movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00002ce1 movq %rdi, %r15 + 0x49, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, //0x00002ce4 movabsq $4503599627370496, %r13 + 0x83, 0x7f, 0x10, 0x00, //0x00002cee cmpl $0, $16(%rdi) + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002cf2 je LBB13_4 + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x00002cf8 movabsq $9218868437227405312, %r14 + 0x41, 0x8b, 0x47, 0x14, //0x00002d02 movl $20(%r15), %eax + 0x45, 0x31, 0xe4, //0x00002d06 xorl %r12d, %r12d + 0x3d, 0x36, 0x01, 0x00, 0x00, //0x00002d09 cmpl $310, %eax + 0x0f, 0x8f, 0x4e, 0x03, 0x00, 0x00, //0x00002d0e jg LBB13_64 + 0x3d, 0xb6, 0xfe, 0xff, 0xff, //0x00002d14 cmpl $-330, %eax + 0x0f, 0x8d, 0x13, 0x00, 0x00, 0x00, //0x00002d19 jge LBB13_5 + 0x45, 0x31, 0xf6, //0x00002d1f xorl %r14d, %r14d + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00002d22 jmp LBB13_64 + //0x00002d27 LBB13_4 + 0x45, 0x31, 0xf6, //0x00002d27 xorl %r14d, %r14d + 0x45, 0x31, 0xe4, //0x00002d2a xorl %r12d, %r12d + 0xe9, 0x30, 0x03, 0x00, 0x00, //0x00002d2d jmp LBB13_64 + //0x00002d32 LBB13_5 + 0x85, 0xc0, //0x00002d32 testl %eax, %eax + 0x48, 0x89, 0x5d, 0xd0, //0x00002d34 movq %rbx, $-48(%rbp) + 0x0f, 0x8e, 0x5a, 0x00, 0x00, 0x00, //0x00002d38 jle LBB13_12 + 0x45, 0x31, 0xe4, //0x00002d3e xorl %r12d, %r12d + 0x4c, 0x8d, 0x35, 0x68, 0x98, 0x00, 0x00, //0x00002d41 leaq $39016(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d48 jmp LBB13_8 + 0x90, 0x90, 0x90, //0x00002d4d .p2align 4, 0x90 + //0x00002d50 LBB13_10 + 0x89, 0xc0, //0x00002d50 movl %eax, %eax + 0x41, 0x8b, 0x1c, 0x86, //0x00002d52 movl (%r14,%rax,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d56 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00002d5b je LBB13_7 + //0x00002d61 LBB13_11 + 0x4c, 0x89, 0xff, //0x00002d61 movq %r15, %rdi + 0x89, 0xde, //0x00002d64 movl %ebx, %esi + 0xe8, 0x45, 0x64, 0x00, 0x00, //0x00002d66 callq _right_shift + //0x00002d6b LBB13_7 + 0x41, 0x01, 0xdc, //0x00002d6b addl %ebx, %r12d + 0x41, 0x8b, 0x47, 0x14, //0x00002d6e movl $20(%r15), %eax + 0x85, 0xc0, //0x00002d72 testl %eax, %eax + 0x0f, 0x8e, 0x1e, 0x00, 0x00, 0x00, //0x00002d74 jle LBB13_12 + //0x00002d7a LBB13_8 + 0x83, 0xf8, 0x08, //0x00002d7a cmpl $8, %eax + 0x0f, 0x8e, 0xcd, 0xff, 0xff, 0xff, //0x00002d7d jle LBB13_10 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002d83 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002d88 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00002d8d jne LBB13_11 + 0xe9, 0xd3, 0xff, 0xff, 0xff, //0x00002d93 jmp LBB13_7 + //0x00002d98 LBB13_12 + 0x4c, 0x8d, 0x35, 0x11, 0x98, 0x00, 0x00, //0x00002d98 leaq $38929(%rip), %r14 /* _POW_TAB+0(%rip) */ + 0xe9, 0x2d, 0x00, 0x00, 0x00, //0x00002d9f jmp LBB13_14 + //0x00002da4 LBB13_18 + 0xbb, 0x1b, 0x00, 0x00, 0x00, //0x00002da4 movl $27, %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002da9 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00002dae je LBB13_13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002db4 .p2align 4, 0x90 + //0x00002dc0 LBB13_20 + 0x4c, 0x89, 0xff, //0x00002dc0 movq %r15, %rdi + 0x89, 0xde, //0x00002dc3 movl %ebx, %esi + 0xe8, 0xc6, 0x61, 0x00, 0x00, //0x00002dc5 callq _left_shift + 0x41, 0x8b, 0x47, 0x14, //0x00002dca movl $20(%r15), %eax + //0x00002dce LBB13_13 + 0x41, 0x29, 0xdc, //0x00002dce subl %ebx, %r12d + //0x00002dd1 LBB13_14 + 0x85, 0xc0, //0x00002dd1 testl %eax, %eax + 0x0f, 0x88, 0x17, 0x00, 0x00, 0x00, //0x00002dd3 js LBB13_17 + 0x0f, 0x85, 0x32, 0x00, 0x00, 0x00, //0x00002dd9 jne LBB13_21 + 0x49, 0x8b, 0x0f, //0x00002ddf movq (%r15), %rcx + 0x80, 0x39, 0x35, //0x00002de2 cmpb $53, (%rcx) + 0x0f, 0x8c, 0x0e, 0x00, 0x00, 0x00, //0x00002de5 jl LBB13_19 + 0xe9, 0x21, 0x00, 0x00, 0x00, //0x00002deb jmp LBB13_21 + //0x00002df0 .p2align 4, 0x90 + //0x00002df0 LBB13_17 + 0x83, 0xf8, 0xf8, //0x00002df0 cmpl $-8, %eax + 0x0f, 0x8c, 0xab, 0xff, 0xff, 0xff, //0x00002df3 jl LBB13_18 + //0x00002df9 LBB13_19 + 0x89, 0xc1, //0x00002df9 movl %eax, %ecx + 0xf7, 0xd9, //0x00002dfb negl %ecx + 0x41, 0x8b, 0x1c, 0x8e, //0x00002dfd movl (%r14,%rcx,4), %ebx + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e01 cmpl $0, $16(%r15) + 0x0f, 0x85, 0xb4, 0xff, 0xff, 0xff, //0x00002e06 jne LBB13_20 + 0xe9, 0xbd, 0xff, 0xff, 0xff, //0x00002e0c jmp LBB13_13 + //0x00002e11 LBB13_21 + 0x41, 0x81, 0xfc, 0x02, 0xfc, 0xff, 0xff, //0x00002e11 cmpl $-1022, %r12d + 0x0f, 0x8f, 0x56, 0x00, 0x00, 0x00, //0x00002e18 jg LBB13_27 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002e1e cmpl $0, $16(%r15) + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e23 movq $-48(%rbp), %rbx + 0x0f, 0x84, 0x64, 0x00, 0x00, 0x00, //0x00002e27 je LBB13_29 + 0x41, 0x81, 0xfc, 0xc6, 0xfb, 0xff, 0xff, //0x00002e2d cmpl $-1082, %r12d + 0x0f, 0x8f, 0x62, 0x00, 0x00, 0x00, //0x00002e34 jg LBB13_30 + 0x41, 0x81, 0xc4, 0xc1, 0x03, 0x00, 0x00, //0x00002e3a addl $961, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002e41 .p2align 4, 0x90 + //0x00002e50 LBB13_25 + 0x4c, 0x89, 0xff, //0x00002e50 movq %r15, %rdi + 0xbe, 0x3c, 0x00, 0x00, 0x00, //0x00002e53 movl $60, %esi + 0xe8, 0x53, 0x63, 0x00, 0x00, //0x00002e58 callq _right_shift + 0x41, 0x83, 0xc4, 0x3c, //0x00002e5d addl $60, %r12d + 0x41, 0x83, 0xfc, 0x88, //0x00002e61 cmpl $-120, %r12d + 0x0f, 0x8c, 0xe5, 0xff, 0xff, 0xff, //0x00002e65 jl LBB13_25 + 0x41, 0x83, 0xc4, 0x3c, //0x00002e6b addl $60, %r12d + 0xe9, 0x2f, 0x00, 0x00, 0x00, //0x00002e6f jmp LBB13_31 + //0x00002e74 LBB13_27 + 0x41, 0x81, 0xfc, 0x00, 0x04, 0x00, 0x00, //0x00002e74 cmpl $1024, %r12d + 0x48, 0x8b, 0x5d, 0xd0, //0x00002e7b movq $-48(%rbp), %rbx + 0x0f, 0x8f, 0xa5, 0x01, 0x00, 0x00, //0x00002e7f jg LBB13_61 + 0x41, 0x83, 0xc4, 0xff, //0x00002e85 addl $-1, %r12d + 0x45, 0x89, 0xe6, //0x00002e89 movl %r12d, %r14d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00002e8c jmp LBB13_32 + //0x00002e91 LBB13_29 + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002e91 movl $-1022, %r14d + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x00002e97 jmp LBB13_34 + //0x00002e9c LBB13_30 + 0x41, 0x81, 0xc4, 0xfd, 0x03, 0x00, 0x00, //0x00002e9c addl $1021, %r12d + //0x00002ea3 LBB13_31 + 0x41, 0xf7, 0xdc, //0x00002ea3 negl %r12d + 0x4c, 0x89, 0xff, //0x00002ea6 movq %r15, %rdi + 0x44, 0x89, 0xe6, //0x00002ea9 movl %r12d, %esi + 0xe8, 0xff, 0x62, 0x00, 0x00, //0x00002eac callq _right_shift + 0x41, 0xbe, 0x02, 0xfc, 0xff, 0xff, //0x00002eb1 movl $-1022, %r14d + //0x00002eb7 LBB13_32 + 0x41, 0x83, 0x7f, 0x10, 0x00, //0x00002eb7 cmpl $0, $16(%r15) + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00002ebc je LBB13_34 + 0x4c, 0x89, 0xff, //0x00002ec2 movq %r15, %rdi + 0xbe, 0x35, 0x00, 0x00, 0x00, //0x00002ec5 movl $53, %esi + 0xe8, 0xc1, 0x60, 0x00, 0x00, //0x00002eca callq _left_shift + //0x00002ecf LBB13_34 + 0x41, 0x8b, 0x47, 0x14, //0x00002ecf movl $20(%r15), %eax + 0x49, 0xc7, 0xc4, 0xff, 0xff, 0xff, 0xff, //0x00002ed3 movq $-1, %r12 + 0x83, 0xf8, 0x14, //0x00002eda cmpl $20, %eax + 0x0f, 0x8f, 0x60, 0x01, 0x00, 0x00, //0x00002edd jg LBB13_63 + 0x85, 0xc0, //0x00002ee3 testl %eax, %eax + 0x0f, 0x8e, 0x57, 0x00, 0x00, 0x00, //0x00002ee5 jle LBB13_40 + 0x41, 0x8b, 0x57, 0x10, //0x00002eeb movl $16(%r15), %edx + 0x31, 0xf6, //0x00002eef xorl %esi, %esi + 0x85, 0xd2, //0x00002ef1 testl %edx, %edx + 0x0f, 0x4e, 0xd6, //0x00002ef3 cmovlel %esi, %edx + 0x4c, 0x8d, 0x48, 0xff, //0x00002ef6 leaq $-1(%rax), %r9 + 0x49, 0x39, 0xd1, //0x00002efa cmpq %rdx, %r9 + 0x4c, 0x0f, 0x43, 0xca, //0x00002efd cmovaeq %rdx, %r9 + 0x45, 0x8d, 0x41, 0x01, //0x00002f01 leal $1(%r9), %r8d + 0x45, 0x31, 0xe4, //0x00002f05 xorl %r12d, %r12d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f08 .p2align 4, 0x90 + //0x00002f10 LBB13_37 + 0x48, 0x39, 0xf2, //0x00002f10 cmpq %rsi, %rdx + 0x0f, 0x84, 0x2f, 0x00, 0x00, 0x00, //0x00002f13 je LBB13_41 + 0x4b, 0x8d, 0x3c, 0xa4, //0x00002f19 leaq (%r12,%r12,4), %rdi + 0x49, 0x8b, 0x0f, //0x00002f1d movq (%r15), %rcx + 0x48, 0x0f, 0xbe, 0x0c, 0x31, //0x00002f20 movsbq (%rcx,%rsi), %rcx + 0x4c, 0x8d, 0x24, 0x79, //0x00002f25 leaq (%rcx,%rdi,2), %r12 + 0x49, 0x83, 0xc4, 0xd0, //0x00002f29 addq $-48, %r12 + 0x48, 0x83, 0xc6, 0x01, //0x00002f2d addq $1, %rsi + 0x48, 0x39, 0xf0, //0x00002f31 cmpq %rsi, %rax + 0x0f, 0x85, 0xd6, 0xff, 0xff, 0xff, //0x00002f34 jne LBB13_37 + 0x45, 0x89, 0xc1, //0x00002f3a movl %r8d, %r9d + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00002f3d jmp LBB13_41 + //0x00002f42 LBB13_40 + 0x45, 0x31, 0xc9, //0x00002f42 xorl %r9d, %r9d + 0x45, 0x31, 0xe4, //0x00002f45 xorl %r12d, %r12d + //0x00002f48 LBB13_41 + 0x44, 0x39, 0xc8, //0x00002f48 cmpl %r9d, %eax + 0x0f, 0x8e, 0x5f, 0x00, 0x00, 0x00, //0x00002f4b jle LBB13_49 + 0x89, 0xc6, //0x00002f51 movl %eax, %esi + 0x44, 0x29, 0xce, //0x00002f53 subl %r9d, %esi + 0x44, 0x89, 0xca, //0x00002f56 movl %r9d, %edx + 0xf7, 0xd2, //0x00002f59 notl %edx + 0x01, 0xc2, //0x00002f5b addl %eax, %edx + 0x83, 0xe6, 0x07, //0x00002f5d andl $7, %esi + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00002f60 je LBB13_46 + 0xf7, 0xde, //0x00002f66 negl %esi + 0x31, 0xff, //0x00002f68 xorl %edi, %edi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f6a .p2align 4, 0x90 + //0x00002f70 LBB13_44 + 0x4d, 0x01, 0xe4, //0x00002f70 addq %r12, %r12 + 0x4f, 0x8d, 0x24, 0xa4, //0x00002f73 leaq (%r12,%r12,4), %r12 + 0x83, 0xc7, 0xff, //0x00002f77 addl $-1, %edi + 0x39, 0xfe, //0x00002f7a cmpl %edi, %esi + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x00002f7c jne LBB13_44 + 0x41, 0x29, 0xf9, //0x00002f82 subl %edi, %r9d + //0x00002f85 LBB13_46 + 0x83, 0xfa, 0x07, //0x00002f85 cmpl $7, %edx + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00002f88 jb LBB13_49 + 0x89, 0xc2, //0x00002f8e movl %eax, %edx + 0x44, 0x29, 0xca, //0x00002f90 subl %r9d, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00002f93 .p2align 4, 0x90 + //0x00002fa0 LBB13_48 + 0x4d, 0x69, 0xe4, 0x00, 0xe1, 0xf5, 0x05, //0x00002fa0 imulq $100000000, %r12, %r12 + 0x83, 0xc2, 0xf8, //0x00002fa7 addl $-8, %edx + 0x0f, 0x85, 0xf0, 0xff, 0xff, 0xff, //0x00002faa jne LBB13_48 + //0x00002fb0 LBB13_49 + 0x85, 0xc0, //0x00002fb0 testl %eax, %eax + 0x0f, 0x88, 0x4a, 0x00, 0x00, 0x00, //0x00002fb2 js LBB13_57 + 0x41, 0x8b, 0x4f, 0x10, //0x00002fb8 movl $16(%r15), %ecx + 0x39, 0xc1, //0x00002fbc cmpl %eax, %ecx + 0x0f, 0x8e, 0x3e, 0x00, 0x00, 0x00, //0x00002fbe jle LBB13_57 + 0x49, 0x8b, 0x37, //0x00002fc4 movq (%r15), %rsi + 0x8a, 0x14, 0x06, //0x00002fc7 movb (%rsi,%rax), %dl + 0x80, 0xfa, 0x35, //0x00002fca cmpb $53, %dl + 0x0f, 0x85, 0xc3, 0x00, 0x00, 0x00, //0x00002fcd jne LBB13_58 + 0x8d, 0x78, 0x01, //0x00002fd3 leal $1(%rax), %edi + 0x39, 0xcf, //0x00002fd6 cmpl %ecx, %edi + 0x0f, 0x85, 0xb8, 0x00, 0x00, 0x00, //0x00002fd8 jne LBB13_58 + 0x41, 0x83, 0x7f, 0x1c, 0x00, //0x00002fde cmpl $0, $28(%r15) + 0x0f, 0x95, 0xc1, //0x00002fe3 setne %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x00002fe6 jne LBB13_59 + 0x85, 0xc0, //0x00002fec testl %eax, %eax + 0x0f, 0x8e, 0x10, 0x00, 0x00, 0x00, //0x00002fee jle LBB13_59 + 0x83, 0xc0, 0xff, //0x00002ff4 addl $-1, %eax + 0x8a, 0x0c, 0x06, //0x00002ff7 movb (%rsi,%rax), %cl + 0x80, 0xe1, 0x01, //0x00002ffa andb $1, %cl + 0xe9, 0x02, 0x00, 0x00, 0x00, //0x00002ffd jmp LBB13_59 + //0x00003002 LBB13_57 + 0x31, 0xc9, //0x00003002 xorl %ecx, %ecx + //0x00003004 LBB13_59 + 0x0f, 0xb6, 0xc1, //0x00003004 movzbl %cl, %eax + 0x49, 0x01, 0xc4, //0x00003007 addq %rax, %r12 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, //0x0000300a movabsq $9007199254740992, %rax + 0x49, 0x39, 0xc4, //0x00003014 cmpq %rax, %r12 + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003017 jne LBB13_63 + 0x41, 0x81, 0xfe, 0xfe, 0x03, 0x00, 0x00, //0x0000301d cmpl $1022, %r14d + 0x0f, 0x8e, 0x12, 0x00, 0x00, 0x00, //0x00003024 jle LBB13_62 + //0x0000302a LBB13_61 + 0x45, 0x31, 0xe4, //0x0000302a xorl %r12d, %r12d + 0x49, 0xbe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x0000302d movabsq $9218868437227405312, %r14 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003037 jmp LBB13_64 + //0x0000303c LBB13_62 + 0x41, 0x83, 0xc6, 0x01, //0x0000303c addl $1, %r14d + 0x4d, 0x89, 0xec, //0x00003040 movq %r13, %r12 + //0x00003043 LBB13_63 + 0x4c, 0x89, 0xe0, //0x00003043 movq %r12, %rax + 0x4c, 0x21, 0xe8, //0x00003046 andq %r13, %rax + 0x41, 0x81, 0xc6, 0xff, 0x03, 0x00, 0x00, //0x00003049 addl $1023, %r14d + 0x41, 0x81, 0xe6, 0xff, 0x07, 0x00, 0x00, //0x00003050 andl $2047, %r14d + 0x49, 0xc1, 0xe6, 0x34, //0x00003057 shlq $52, %r14 + 0x48, 0x85, 0xc0, //0x0000305b testq %rax, %rax + 0x4c, 0x0f, 0x44, 0xf0, //0x0000305e cmoveq %rax, %r14 + //0x00003062 LBB13_64 + 0x49, 0x83, 0xc5, 0xff, //0x00003062 addq $-1, %r13 + 0x4d, 0x21, 0xe5, //0x00003066 andq %r12, %r13 + 0x4d, 0x09, 0xf5, //0x00003069 orq %r14, %r13 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000306c movabsq $-9223372036854775808, %rax + 0x4c, 0x09, 0xe8, //0x00003076 orq %r13, %rax + 0x41, 0x83, 0x7f, 0x18, 0x00, //0x00003079 cmpl $0, $24(%r15) + 0x49, 0x0f, 0x44, 0xc5, //0x0000307e cmoveq %r13, %rax + 0x48, 0x89, 0x03, //0x00003082 movq %rax, (%rbx) + 0x31, 0xc0, //0x00003085 xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00003087 addq $8, %rsp + 0x5b, //0x0000308b popq %rbx + 0x41, 0x5c, //0x0000308c popq %r12 + 0x41, 0x5d, //0x0000308e popq %r13 + 0x41, 0x5e, //0x00003090 popq %r14 + 0x41, 0x5f, //0x00003092 popq %r15 + 0x5d, //0x00003094 popq %rbp + 0xc3, //0x00003095 retq + //0x00003096 LBB13_58 + 0x80, 0xfa, 0x35, //0x00003096 cmpb $53, %dl + 0x0f, 0x9d, 0xc1, //0x00003099 setge %cl + 0xe9, 0x63, 0xff, 0xff, 0xff, //0x0000309c jmp LBB13_59 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030a1 .p2align 4, 0x90 + //0x000030b0 _atof_native + 0x55, //0x000030b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000030b1 movq %rsp, %rbp + 0x48, 0x83, 0xec, 0x30, //0x000030b4 subq $48, %rsp + 0x48, 0xc7, 0x45, 0xd8, 0x00, 0x00, 0x00, 0x00, //0x000030b8 movq $0, $-40(%rbp) + 0x48, 0x89, 0x55, 0xe0, //0x000030c0 movq %rdx, $-32(%rbp) + 0x48, 0x89, 0x4d, 0xe8, //0x000030c4 movq %rcx, $-24(%rbp) + 0x48, 0x85, 0xc9, //0x000030c8 testq %rcx, %rcx + 0x0f, 0x84, 0x45, 0x00, 0x00, 0x00, //0x000030cb je LBB14_5 + 0xc6, 0x02, 0x00, //0x000030d1 movb $0, (%rdx) + 0x48, 0x83, 0xf9, 0x01, //0x000030d4 cmpq $1, %rcx + 0x0f, 0x84, 0x38, 0x00, 0x00, 0x00, //0x000030d8 je LBB14_5 + 0xc6, 0x42, 0x01, 0x00, //0x000030de movb $0, $1(%rdx) + 0x48, 0x83, 0x7d, 0xe8, 0x03, //0x000030e2 cmpq $3, $-24(%rbp) + 0x0f, 0x82, 0x29, 0x00, 0x00, 0x00, //0x000030e7 jb LBB14_5 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x000030ed movl $2, %eax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000030f2 .p2align 4, 0x90 + //0x00003100 LBB14_4 + 0x48, 0x8b, 0x4d, 0xe0, //0x00003100 movq $-32(%rbp), %rcx + 0xc6, 0x04, 0x01, 0x00, //0x00003104 movb $0, (%rcx,%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00003108 addq $1, %rax + 0x48, 0x39, 0x45, 0xe8, //0x0000310c cmpq %rax, $-24(%rbp) + 0x0f, 0x87, 0xea, 0xff, 0xff, 0xff, //0x00003110 ja LBB14_4 + //0x00003116 LBB14_5 + 0x0f, 0x57, 0xc0, //0x00003116 xorps %xmm0, %xmm0 + 0x0f, 0x11, 0x45, 0xf0, //0x00003119 movups %xmm0, $-16(%rbp) + 0x31, 0xd2, //0x0000311d xorl %edx, %edx + 0x80, 0x3f, 0x2d, //0x0000311f cmpb $45, (%rdi) + 0x0f, 0x85, 0x1a, 0x00, 0x00, 0x00, //0x00003122 jne LBB14_7 + 0xc7, 0x45, 0xf8, 0x01, 0x00, 0x00, 0x00, //0x00003128 movl $1, $-8(%rbp) + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000312f movl $1, %eax + 0x48, 0x39, 0xf0, //0x00003134 cmpq %rsi, %rax + 0x0f, 0x8c, 0x10, 0x00, 0x00, 0x00, //0x00003137 jl LBB14_8 + 0xe9, 0xad, 0x01, 0x00, 0x00, //0x0000313d jmp LBB14_39 + //0x00003142 LBB14_7 + 0x31, 0xc0, //0x00003142 xorl %eax, %eax + 0x48, 0x39, 0xf0, //0x00003144 cmpq %rsi, %rax + 0x0f, 0x8d, 0xa2, 0x01, 0x00, 0x00, //0x00003147 jge LBB14_39 + //0x0000314d LBB14_8 + 0x41, 0xb3, 0x01, //0x0000314d movb $1, %r11b + 0x45, 0x31, 0xc9, //0x00003150 xorl %r9d, %r9d + 0x45, 0x31, 0xd2, //0x00003153 xorl %r10d, %r10d + 0x45, 0x31, 0xc0, //0x00003156 xorl %r8d, %r8d + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00003159 jmp LBB14_12 + //0x0000315e LBB14_20 + 0xc7, 0x45, 0xfc, 0x01, 0x00, 0x00, 0x00, //0x0000315e movl $1, $-4(%rbp) + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003165 .p2align 4, 0x90 + //0x00003170 LBB14_11 + 0x48, 0x83, 0xc0, 0x01, //0x00003170 addq $1, %rax + 0x48, 0x39, 0xf0, //0x00003174 cmpq %rsi, %rax + 0x41, 0x0f, 0x9c, 0xc3, //0x00003177 setl %r11b + 0x48, 0x39, 0xc6, //0x0000317b cmpq %rax, %rsi + 0x0f, 0x84, 0x91, 0x00, 0x00, 0x00, //0x0000317e je LBB14_22 + //0x00003184 LBB14_12 + 0x0f, 0xb6, 0x0c, 0x07, //0x00003184 movzbl (%rdi,%rax), %ecx + 0x8d, 0x51, 0xd0, //0x00003188 leal $-48(%rcx), %edx + 0x80, 0xfa, 0x09, //0x0000318b cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000318e ja LBB14_17 + 0x80, 0xf9, 0x30, //0x00003194 cmpb $48, %cl + 0x0f, 0x85, 0x43, 0x00, 0x00, 0x00, //0x00003197 jne LBB14_19 + 0x45, 0x85, 0xd2, //0x0000319d testl %r10d, %r10d + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x000031a0 je LBB14_21 + 0x4d, 0x63, 0xd9, //0x000031a6 movslq %r9d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x000031a9 cmpq %r11, $-24(%rbp) + 0x0f, 0x87, 0x3a, 0x00, 0x00, 0x00, //0x000031ad ja LBB14_9 + 0xe9, 0x49, 0x00, 0x00, 0x00, //0x000031b3 jmp LBB14_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031b8 .p2align 4, 0x90 + //0x000031c0 LBB14_17 + 0x80, 0xf9, 0x2e, //0x000031c0 cmpb $46, %cl + 0x0f, 0x85, 0x4f, 0x00, 0x00, 0x00, //0x000031c3 jne LBB14_23 + 0x44, 0x89, 0x55, 0xf4, //0x000031c9 movl %r10d, $-12(%rbp) + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000031cd movl $1, %r8d + 0xe9, 0x98, 0xff, 0xff, 0xff, //0x000031d3 jmp LBB14_11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000031d8 .p2align 4, 0x90 + //0x000031e0 LBB14_19 + 0x4d, 0x63, 0xda, //0x000031e0 movslq %r10d, %r11 + 0x4c, 0x39, 0x5d, 0xe8, //0x000031e3 cmpq %r11, $-24(%rbp) + 0x0f, 0x86, 0x71, 0xff, 0xff, 0xff, //0x000031e7 jbe LBB14_20 + //0x000031ed LBB14_9 + 0x48, 0x8b, 0x55, 0xe0, //0x000031ed movq $-32(%rbp), %rdx + 0x42, 0x88, 0x0c, 0x1a, //0x000031f1 movb %cl, (%rdx,%r11) + 0x44, 0x8b, 0x4d, 0xf0, //0x000031f5 movl $-16(%rbp), %r9d + 0x41, 0x83, 0xc1, 0x01, //0x000031f9 addl $1, %r9d + 0x44, 0x89, 0x4d, 0xf0, //0x000031fd movl %r9d, $-16(%rbp) + //0x00003201 LBB14_10 + 0x45, 0x89, 0xca, //0x00003201 movl %r9d, %r10d + 0xe9, 0x67, 0xff, 0xff, 0xff, //0x00003204 jmp LBB14_11 + //0x00003209 LBB14_21 + 0x83, 0x45, 0xf4, 0xff, //0x00003209 addl $-1, $-12(%rbp) + 0x45, 0x31, 0xd2, //0x0000320d xorl %r10d, %r10d + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00003210 jmp LBB14_11 + //0x00003215 LBB14_22 + 0x48, 0x89, 0xf0, //0x00003215 movq %rsi, %rax + //0x00003218 LBB14_23 + 0x45, 0x85, 0xc0, //0x00003218 testl %r8d, %r8d + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x0000321b je LBB14_25 + 0x41, 0xf6, 0xc3, 0x01, //0x00003221 testb $1, %r11b + 0x0f, 0x85, 0x13, 0x00, 0x00, 0x00, //0x00003225 jne LBB14_26 + 0xe9, 0xc2, 0x00, 0x00, 0x00, //0x0000322b jmp LBB14_40 + //0x00003230 LBB14_25 + 0x44, 0x89, 0x4d, 0xf4, //0x00003230 movl %r9d, $-12(%rbp) + 0x41, 0xf6, 0xc3, 0x01, //0x00003234 testb $1, %r11b + 0x0f, 0x84, 0xb4, 0x00, 0x00, 0x00, //0x00003238 je LBB14_40 + //0x0000323e LBB14_26 + 0x89, 0xc2, //0x0000323e movl %eax, %edx + 0x8a, 0x0c, 0x17, //0x00003240 movb (%rdi,%rdx), %cl + 0x80, 0xc9, 0x20, //0x00003243 orb $32, %cl + 0x80, 0xf9, 0x65, //0x00003246 cmpb $101, %cl + 0x0f, 0x85, 0xa3, 0x00, 0x00, 0x00, //0x00003249 jne LBB14_40 + 0x8a, 0x4c, 0x17, 0x01, //0x0000324f movb $1(%rdi,%rdx), %cl + 0x80, 0xf9, 0x2d, //0x00003253 cmpb $45, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00003256 je LBB14_30 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000325c movl $1, %r8d + 0x80, 0xf9, 0x2b, //0x00003262 cmpb $43, %cl + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00003265 jne LBB14_32 + 0x83, 0xc0, 0x02, //0x0000326b addl $2, %eax + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x0000326e jmp LBB14_31 + //0x00003273 LBB14_30 + 0x83, 0xc0, 0x02, //0x00003273 addl $2, %eax + 0x41, 0xb8, 0xff, 0xff, 0xff, 0xff, //0x00003276 movl $-1, %r8d + //0x0000327c LBB14_31 + 0x89, 0xc2, //0x0000327c movl %eax, %edx + 0x48, 0x63, 0xc2, //0x0000327e movslq %edx, %rax + 0x31, 0xd2, //0x00003281 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x00003283 cmpq %rsi, %rax + 0x0f, 0x8c, 0x17, 0x00, 0x00, 0x00, //0x00003286 jl LBB14_33 + 0xe9, 0x57, 0x00, 0x00, 0x00, //0x0000328c jmp LBB14_38 + //0x00003291 LBB14_32 + 0x48, 0x83, 0xc2, 0x01, //0x00003291 addq $1, %rdx + 0x48, 0x63, 0xc2, //0x00003295 movslq %edx, %rax + 0x31, 0xd2, //0x00003298 xorl %edx, %edx + 0x48, 0x39, 0xf0, //0x0000329a cmpq %rsi, %rax + 0x0f, 0x8d, 0x45, 0x00, 0x00, 0x00, //0x0000329d jge LBB14_38 + //0x000032a3 LBB14_33 + 0x31, 0xd2, //0x000032a3 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000032a5 .p2align 4, 0x90 + //0x000032b0 LBB14_34 + 0x0f, 0xbe, 0x0c, 0x07, //0x000032b0 movsbl (%rdi,%rax), %ecx + 0x83, 0xf9, 0x30, //0x000032b4 cmpl $48, %ecx + 0x0f, 0x8c, 0x2b, 0x00, 0x00, 0x00, //0x000032b7 jl LBB14_38 + 0x80, 0xf9, 0x39, //0x000032bd cmpb $57, %cl + 0x0f, 0x8f, 0x22, 0x00, 0x00, 0x00, //0x000032c0 jg LBB14_38 + 0x81, 0xfa, 0x0f, 0x27, 0x00, 0x00, //0x000032c6 cmpl $9999, %edx + 0x0f, 0x8f, 0x16, 0x00, 0x00, 0x00, //0x000032cc jg LBB14_38 + 0x8d, 0x14, 0x92, //0x000032d2 leal (%rdx,%rdx,4), %edx + 0x8d, 0x14, 0x51, //0x000032d5 leal (%rcx,%rdx,2), %edx + 0x83, 0xc2, 0xd0, //0x000032d8 addl $-48, %edx + 0x48, 0x83, 0xc0, 0x01, //0x000032db addq $1, %rax + 0x48, 0x39, 0xc6, //0x000032df cmpq %rax, %rsi + 0x0f, 0x85, 0xc8, 0xff, 0xff, 0xff, //0x000032e2 jne LBB14_34 + //0x000032e8 LBB14_38 + 0x41, 0x0f, 0xaf, 0xd0, //0x000032e8 imull %r8d, %edx + 0x03, 0x55, 0xf4, //0x000032ec addl $-12(%rbp), %edx + //0x000032ef LBB14_39 + 0x89, 0x55, 0xf4, //0x000032ef movl %edx, $-12(%rbp) + //0x000032f2 LBB14_40 + 0x48, 0x8d, 0x7d, 0xe0, //0x000032f2 leaq $-32(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd8, //0x000032f6 leaq $-40(%rbp), %rsi + 0xe8, 0xd1, 0xf9, 0xff, 0xff, //0x000032fa callq _decimal_to_f64 + 0xf2, 0x0f, 0x10, 0x45, 0xd8, //0x000032ff movsd $-40(%rbp), %xmm0 + 0x48, 0x83, 0xc4, 0x30, //0x00003304 addq $48, %rsp + 0x5d, //0x00003308 popq %rbp + 0xc3, //0x00003309 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000330a .p2align 4, 0x90 + //0x00003310 _value + 0x55, //0x00003310 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003311 movq %rsp, %rbp + 0x41, 0x57, //0x00003314 pushq %r15 + 0x41, 0x56, //0x00003316 pushq %r14 + 0x41, 0x55, //0x00003318 pushq %r13 + 0x41, 0x54, //0x0000331a pushq %r12 + 0x53, //0x0000331c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000331d subq $40, %rsp + 0x49, 0x89, 0xc9, //0x00003321 movq %rcx, %r9 + 0x49, 0x89, 0xd4, //0x00003324 movq %rdx, %r12 + 0x49, 0x89, 0xf5, //0x00003327 movq %rsi, %r13 + 0x49, 0x89, 0xff, //0x0000332a movq %rdi, %r15 + 0x48, 0x89, 0x7d, 0xb8, //0x0000332d movq %rdi, $-72(%rbp) + 0x48, 0x89, 0x75, 0xc0, //0x00003331 movq %rsi, $-64(%rbp) + 0x48, 0x39, 0xf2, //0x00003335 cmpq %rsi, %rdx + 0x0f, 0x83, 0x28, 0x00, 0x00, 0x00, //0x00003338 jae LBB15_5 + 0x43, 0x8a, 0x04, 0x27, //0x0000333e movb (%r15,%r12), %al + 0x3c, 0x0d, //0x00003342 cmpb $13, %al + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x00003344 je LBB15_5 + 0x3c, 0x20, //0x0000334a cmpb $32, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000334c je LBB15_5 + 0x8d, 0x48, 0xf7, //0x00003352 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x00003355 cmpb $1, %cl + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x00003358 jbe LBB15_5 + 0x4c, 0x89, 0xe3, //0x0000335e movq %r12, %rbx + 0xe9, 0x09, 0x01, 0x00, 0x00, //0x00003361 jmp LBB15_27 + //0x00003366 LBB15_5 + 0x49, 0x8d, 0x5c, 0x24, 0x01, //0x00003366 leaq $1(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x0000336b cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000336e jae LBB15_9 + 0x41, 0x8a, 0x04, 0x1f, //0x00003374 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x00003378 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x0000337a je LBB15_9 + 0x3c, 0x20, //0x00003380 cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x00003382 je LBB15_9 + 0x8d, 0x48, 0xf7, //0x00003388 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x0000338b cmpb $1, %cl + 0x0f, 0x87, 0xdb, 0x00, 0x00, 0x00, //0x0000338e ja LBB15_27 + //0x00003394 LBB15_9 + 0x49, 0x8d, 0x5c, 0x24, 0x02, //0x00003394 leaq $2(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x00003399 cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x0000339c jae LBB15_13 + 0x41, 0x8a, 0x04, 0x1f, //0x000033a2 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x000033a6 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033a8 je LBB15_13 + 0x3c, 0x20, //0x000033ae cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033b0 je LBB15_13 + 0x8d, 0x48, 0xf7, //0x000033b6 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000033b9 cmpb $1, %cl + 0x0f, 0x87, 0xad, 0x00, 0x00, 0x00, //0x000033bc ja LBB15_27 + //0x000033c2 LBB15_13 + 0x49, 0x8d, 0x5c, 0x24, 0x03, //0x000033c2 leaq $3(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x000033c7 cmpq %r13, %rbx + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x000033ca jae LBB15_17 + 0x41, 0x8a, 0x04, 0x1f, //0x000033d0 movb (%r15,%rbx), %al + 0x3c, 0x0d, //0x000033d4 cmpb $13, %al + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000033d6 je LBB15_17 + 0x3c, 0x20, //0x000033dc cmpb $32, %al + 0x0f, 0x84, 0x0c, 0x00, 0x00, 0x00, //0x000033de je LBB15_17 + 0x8d, 0x48, 0xf7, //0x000033e4 leal $-9(%rax), %ecx + 0x80, 0xf9, 0x01, //0x000033e7 cmpb $1, %cl + 0x0f, 0x87, 0x7f, 0x00, 0x00, 0x00, //0x000033ea ja LBB15_27 + //0x000033f0 LBB15_17 + 0x49, 0x8d, 0x5c, 0x24, 0x04, //0x000033f0 leaq $4(%r12), %rbx + 0x4c, 0x39, 0xeb, //0x000033f5 cmpq %r13, %rbx + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x000033f8 jae LBB15_31 + 0x49, 0x39, 0xdd, //0x000033fe cmpq %rbx, %r13 + 0x0f, 0x84, 0x4f, 0x00, 0x00, 0x00, //0x00003401 je LBB15_23 + 0x4b, 0x8d, 0x04, 0x2f, //0x00003407 leaq (%r15,%r13), %rax + 0x48, 0xb9, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x0000340b movabsq $4294977024, %rcx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00003415 .p2align 4, 0x90 + //0x00003420 LBB15_20 + 0x41, 0x0f, 0xbe, 0x14, 0x1f, //0x00003420 movsbl (%r15,%rbx), %edx + 0x83, 0xfa, 0x20, //0x00003425 cmpl $32, %edx + 0x0f, 0x87, 0x34, 0x00, 0x00, 0x00, //0x00003428 ja LBB15_25 + 0x48, 0x0f, 0xa3, 0xd1, //0x0000342e btq %rdx, %rcx + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x00003432 jae LBB15_25 + 0x48, 0x83, 0xc3, 0x01, //0x00003438 addq $1, %rbx + 0x49, 0x39, 0xdd, //0x0000343c cmpq %rbx, %r13 + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x0000343f jne LBB15_20 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00003445 jmp LBB15_24 + //0x0000344a LBB15_31 + 0x48, 0x89, 0x5d, 0xd0, //0x0000344a movq %rbx, $-48(%rbp) + 0x49, 0x89, 0xdc, //0x0000344e movq %rbx, %r12 + 0xe9, 0x64, 0x00, 0x00, 0x00, //0x00003451 jmp LBB15_32 + //0x00003456 LBB15_23 + 0x4c, 0x01, 0xfb, //0x00003456 addq %r15, %rbx + 0x48, 0x89, 0xd8, //0x00003459 movq %rbx, %rax + //0x0000345c LBB15_24 + 0x4c, 0x29, 0xf8, //0x0000345c subq %r15, %rax + 0x48, 0x89, 0xc3, //0x0000345f movq %rax, %rbx + //0x00003462 LBB15_25 + 0x4c, 0x39, 0xeb, //0x00003462 cmpq %r13, %rbx + 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00003465 jae LBB15_32 + 0x41, 0x8a, 0x04, 0x1f, //0x0000346b movb (%r15,%rbx), %al + //0x0000346f LBB15_27 + 0x0f, 0xbe, 0xc8, //0x0000346f movsbl %al, %ecx + 0x83, 0xf9, 0x7d, //0x00003472 cmpl $125, %ecx + 0x0f, 0x87, 0xcf, 0x00, 0x00, 0x00, //0x00003475 ja LBB15_41 + 0x4c, 0x8d, 0x63, 0x01, //0x0000347b leaq $1(%rbx), %r12 + 0x4d, 0x8d, 0x34, 0x1f, //0x0000347f leaq (%r15,%rbx), %r14 + 0x48, 0x8d, 0x15, 0x7a, 0x03, 0x00, 0x00, //0x00003483 leaq $890(%rip), %rdx /* LJTI15_0+0(%rip) */ + 0x48, 0x63, 0x0c, 0x8a, //0x0000348a movslq (%rdx,%rcx,4), %rcx + 0x48, 0x01, 0xd1, //0x0000348e addq %rdx, %rcx + 0xff, 0xe1, //0x00003491 jmpq *%rcx + //0x00003493 LBB15_29 + 0x48, 0x89, 0x5d, 0xd0, //0x00003493 movq %rbx, $-48(%rbp) + 0x41, 0xf6, 0xc0, 0x02, //0x00003497 testb $2, %r8b + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x0000349b jne LBB15_35 + 0x48, 0x8d, 0x7d, 0xb8, //0x000034a1 leaq $-72(%rbp), %rdi + 0x48, 0x8d, 0x75, 0xd0, //0x000034a5 leaq $-48(%rbp), %rsi + 0x4c, 0x89, 0xca, //0x000034a9 movq %r9, %rdx + 0xe8, 0x5f, 0x0b, 0x00, 0x00, //0x000034ac callq _vnumber + 0x48, 0x8b, 0x5d, 0xd0, //0x000034b1 movq $-48(%rbp), %rbx + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x000034b5 jmp LBB15_34 + //0x000034ba LBB15_32 + 0x49, 0xc7, 0x01, 0x01, 0x00, 0x00, 0x00, //0x000034ba movq $1, (%r9) + //0x000034c1 LBB15_33 + 0x4c, 0x89, 0xe3, //0x000034c1 movq %r12, %rbx + //0x000034c4 LBB15_34 + 0x48, 0x89, 0xd8, //0x000034c4 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x28, //0x000034c7 addq $40, %rsp + 0x5b, //0x000034cb popq %rbx + 0x41, 0x5c, //0x000034cc popq %r12 + 0x41, 0x5d, //0x000034ce popq %r13 + 0x41, 0x5e, //0x000034d0 popq %r14 + 0x41, 0x5f, //0x000034d2 popq %r15 + 0x5d, //0x000034d4 popq %rbp + 0xc3, //0x000034d5 retq + //0x000034d6 LBB15_35 + 0x49, 0x29, 0xdd, //0x000034d6 subq %rbx, %r13 + 0x31, 0xc9, //0x000034d9 xorl %ecx, %ecx + 0x3c, 0x2d, //0x000034db cmpb $45, %al + 0x0f, 0x94, 0xc1, //0x000034dd sete %cl + 0x49, 0x01, 0xce, //0x000034e0 addq %rcx, %r14 + 0x49, 0x29, 0xcd, //0x000034e3 subq %rcx, %r13 + 0x0f, 0x84, 0xf0, 0x02, 0x00, 0x00, //0x000034e6 je LBB15_84 + 0x4d, 0x89, 0xcc, //0x000034ec movq %r9, %r12 + 0x41, 0x8a, 0x06, //0x000034ef movb (%r14), %al + 0x04, 0xd0, //0x000034f2 addb $-48, %al + 0x3c, 0x09, //0x000034f4 cmpb $9, %al + 0x0f, 0x87, 0xf2, 0x02, 0x00, 0x00, //0x000034f6 ja LBB15_86 + 0x4c, 0x89, 0xf7, //0x000034fc movq %r14, %rdi + 0x4c, 0x89, 0xee, //0x000034ff movq %r13, %rsi + 0xe8, 0x79, 0x1e, 0x00, 0x00, //0x00003502 callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00003507 testq %rax, %rax + 0x0f, 0x88, 0xd8, 0x02, 0x00, 0x00, //0x0000350a js LBB15_85 + 0x49, 0x01, 0xc6, //0x00003510 addq %rax, %r14 + 0x4d, 0x29, 0xfe, //0x00003513 subq %r15, %r14 + 0x48, 0xb8, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, //0x00003516 movabsq $9223372036854775807, %rax + 0x48, 0x39, 0xc3, //0x00003520 cmpq %rax, %rbx + 0x4d, 0x89, 0xe1, //0x00003523 movq %r12, %r9 + 0x0f, 0x82, 0x0b, 0x00, 0x00, 0x00, //0x00003526 jb LBB15_40 + //0x0000352c LBB15_39 + 0x49, 0x89, 0x19, //0x0000352c movq %rbx, (%r9) + 0x4c, 0x89, 0xf3, //0x0000352f movq %r14, %rbx + 0xe9, 0x8d, 0xff, 0xff, 0xff, //0x00003532 jmp LBB15_34 + //0x00003537 LBB15_40 + 0x49, 0xc7, 0x01, 0x08, 0x00, 0x00, 0x00, //0x00003537 movq $8, (%r9) + 0x49, 0x89, 0x59, 0x18, //0x0000353e movq %rbx, $24(%r9) + 0x4c, 0x89, 0xf3, //0x00003542 movq %r14, %rbx + 0xe9, 0x7a, 0xff, 0xff, 0xff, //0x00003545 jmp LBB15_34 + //0x0000354a LBB15_41 + 0x49, 0xc7, 0x01, 0xfe, 0xff, 0xff, 0xff, //0x0000354a movq $-2, (%r9) + 0xe9, 0x6e, 0xff, 0xff, 0xff, //0x00003551 jmp LBB15_34 + //0x00003556 LBB15_42 + 0x4d, 0x89, 0xce, //0x00003556 movq %r9, %r14 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003559 movq $-1, $-56(%rbp) + 0x48, 0x8d, 0x7d, 0xb8, //0x00003561 leaq $-72(%rbp), %rdi + 0x48, 0x8d, 0x55, 0xc8, //0x00003565 leaq $-56(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003569 movq %r12, %rsi + 0x4c, 0x89, 0xc1, //0x0000356c movq %r8, %rcx + 0xe8, 0x3c, 0x05, 0x00, 0x00, //0x0000356f callq _advance_string + 0x48, 0x89, 0xc3, //0x00003574 movq %rax, %rbx + 0x48, 0x85, 0xc0, //0x00003577 testq %rax, %rax + 0x0f, 0x88, 0x55, 0x01, 0x00, 0x00, //0x0000357a js LBB15_65 + 0x48, 0x89, 0x5d, 0xd0, //0x00003580 movq %rbx, $-48(%rbp) + 0x4d, 0x89, 0x66, 0x10, //0x00003584 movq %r12, $16(%r14) + 0x48, 0x8b, 0x45, 0xc8, //0x00003588 movq $-56(%rbp), %rax + 0x48, 0x39, 0xd8, //0x0000358c cmpq %rbx, %rax + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000358f movq $-1, %rcx + 0x48, 0x0f, 0x4c, 0xc8, //0x00003596 cmovlq %rax, %rcx + 0x49, 0x89, 0x4e, 0x18, //0x0000359a movq %rcx, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x0000359e movl $7, %eax + 0x49, 0x89, 0x06, //0x000035a3 movq %rax, (%r14) + 0xe9, 0x19, 0xff, 0xff, 0xff, //0x000035a6 jmp LBB15_34 + //0x000035ab LBB15_44 + 0x45, 0x85, 0xc0, //0x000035ab testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035ae movq $-2, %rax + 0xb9, 0x0b, 0x00, 0x00, 0x00, //0x000035b5 movl $11, %ecx + 0xe9, 0xfd, 0x00, 0x00, 0x00, //0x000035ba jmp LBB15_64 + //0x000035bf LBB15_45 + 0x45, 0x85, 0xc0, //0x000035bf testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035c2 movq $-2, %rax + 0xb9, 0x0a, 0x00, 0x00, 0x00, //0x000035c9 movl $10, %ecx + 0xe9, 0xe9, 0x00, 0x00, 0x00, //0x000035ce jmp LBB15_64 + //0x000035d3 LBB15_46 + 0x49, 0xc7, 0x01, 0x05, 0x00, 0x00, 0x00, //0x000035d3 movq $5, (%r9) + 0xe9, 0xe2, 0xfe, 0xff, 0xff, //0x000035da jmp LBB15_33 + //0x000035df LBB15_47 + 0x45, 0x85, 0xc0, //0x000035df testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000035e2 movq $-2, %rax + 0xb9, 0x0c, 0x00, 0x00, 0x00, //0x000035e9 movl $12, %ecx + 0xe9, 0xc9, 0x00, 0x00, 0x00, //0x000035ee jmp LBB15_64 + //0x000035f3 LBB15_48 + 0x49, 0x8d, 0x4d, 0xfc, //0x000035f3 leaq $-4(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000035f7 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x000035fe cmpq %rcx, %rbx + 0x0f, 0x83, 0x1c, 0x00, 0x00, 0x00, //0x00003601 jae LBB15_51 + 0x43, 0x8b, 0x0c, 0x27, //0x00003607 movl (%r15,%r12), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x0000360b cmpl $1702063201, %ecx + 0x0f, 0x85, 0xcd, 0x00, 0x00, 0x00, //0x00003611 jne LBB15_66 + 0x48, 0x83, 0xc3, 0x05, //0x00003617 addq $5, %rbx + 0xb8, 0x04, 0x00, 0x00, 0x00, //0x0000361b movl $4, %eax + 0x49, 0x89, 0xdd, //0x00003620 movq %rbx, %r13 + //0x00003623 LBB15_51 + 0x4c, 0x89, 0x6d, 0xd0, //0x00003623 movq %r13, $-48(%rbp) + 0x4d, 0x89, 0xec, //0x00003627 movq %r13, %r12 + //0x0000362a LBB15_52 + 0x49, 0x89, 0x01, //0x0000362a movq %rax, (%r9) + 0xe9, 0x8f, 0xfe, 0xff, 0xff, //0x0000362d jmp LBB15_33 + //0x00003632 LBB15_53 + 0x49, 0x8d, 0x4d, 0xfd, //0x00003632 leaq $-3(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003636 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x0000363d cmpq %rcx, %rbx + 0x0f, 0x83, 0x4c, 0x00, 0x00, 0x00, //0x00003640 jae LBB15_57 + 0x41, 0x8b, 0x0e, //0x00003646 movl (%r14), %ecx + 0x81, 0xf9, 0x6e, 0x75, 0x6c, 0x6c, //0x00003649 cmpl $1819047278, %ecx + 0x0f, 0x85, 0xd3, 0x00, 0x00, 0x00, //0x0000364f jne LBB15_70 + 0x48, 0x83, 0xc3, 0x04, //0x00003655 addq $4, %rbx + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00003659 movl $2, %eax + 0xe9, 0x2c, 0x00, 0x00, 0x00, //0x0000365e jmp LBB15_56 + //0x00003663 LBB15_59 + 0x49, 0x8d, 0x4d, 0xfd, //0x00003663 leaq $-3(%r13), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003667 movq $-1, %rax + 0x48, 0x39, 0xcb, //0x0000366e cmpq %rcx, %rbx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x00003671 jae LBB15_57 + 0x41, 0x8b, 0x0e, //0x00003677 movl (%r14), %ecx + 0x81, 0xf9, 0x74, 0x72, 0x75, 0x65, //0x0000367a cmpl $1702195828, %ecx + 0x0f, 0x85, 0xd7, 0x00, 0x00, 0x00, //0x00003680 jne LBB15_74 + 0x48, 0x83, 0xc3, 0x04, //0x00003686 addq $4, %rbx + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x0000368a movl $3, %eax + //0x0000368f LBB15_56 + 0x49, 0x89, 0xdd, //0x0000368f movq %rbx, %r13 + //0x00003692 LBB15_57 + 0x4c, 0x89, 0x6d, 0xd0, //0x00003692 movq %r13, $-48(%rbp) + 0x4c, 0x89, 0xeb, //0x00003696 movq %r13, %rbx + //0x00003699 LBB15_58 + 0x49, 0x89, 0x01, //0x00003699 movq %rax, (%r9) + 0xe9, 0x23, 0xfe, 0xff, 0xff, //0x0000369c jmp LBB15_34 + //0x000036a1 LBB15_62 + 0x49, 0xc7, 0x01, 0x06, 0x00, 0x00, 0x00, //0x000036a1 movq $6, (%r9) + 0xe9, 0x14, 0xfe, 0xff, 0xff, //0x000036a8 jmp LBB15_33 + //0x000036ad LBB15_63 + 0x45, 0x85, 0xc0, //0x000036ad testl %r8d, %r8d + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036b0 movq $-2, %rax + 0xb9, 0x0d, 0x00, 0x00, 0x00, //0x000036b7 movl $13, %ecx + //0x000036bc LBB15_64 + 0x48, 0x0f, 0x49, 0xc8, //0x000036bc cmovnsq %rax, %rcx + 0x49, 0x89, 0x09, //0x000036c0 movq %rcx, (%r9) + 0x41, 0xc1, 0xf8, 0x1f, //0x000036c3 sarl $31, %r8d + 0x41, 0xf7, 0xd0, //0x000036c7 notl %r8d + 0x49, 0x63, 0xc0, //0x000036ca movslq %r8d, %rax + 0x49, 0x01, 0xc4, //0x000036cd addq %rax, %r12 + 0xe9, 0xec, 0xfd, 0xff, 0xff, //0x000036d0 jmp LBB15_33 + //0x000036d5 LBB15_65 + 0x4c, 0x89, 0x6d, 0xd0, //0x000036d5 movq %r13, $-48(%rbp) + 0x49, 0x89, 0x1e, //0x000036d9 movq %rbx, (%r14) + 0x4c, 0x89, 0xeb, //0x000036dc movq %r13, %rbx + 0xe9, 0xe0, 0xfd, 0xff, 0xff, //0x000036df jmp LBB15_34 + //0x000036e4 LBB15_66 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000036e4 movq $-2, %rax + 0x80, 0xf9, 0x61, //0x000036eb cmpb $97, %cl + 0x0f, 0x85, 0x36, 0xff, 0xff, 0xff, //0x000036ee jne LBB15_52 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x000036f4 cmpb $108, $2(%r15,%rbx) + 0x0f, 0x85, 0xb3, 0x00, 0x00, 0x00, //0x000036fa jne LBB15_79 + 0x41, 0x80, 0x7c, 0x1f, 0x03, 0x73, //0x00003700 cmpb $115, $3(%r15,%rbx) + 0x0f, 0x85, 0xc0, 0x00, 0x00, 0x00, //0x00003706 jne LBB15_81 + 0x31, 0xc9, //0x0000370c xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x04, 0x65, //0x0000370e cmpb $101, $4(%rbx,%r15) + 0x0f, 0x94, 0xc1, //0x00003714 sete %cl + 0x4c, 0x8d, 0x24, 0x19, //0x00003717 leaq (%rcx,%rbx), %r12 + 0x49, 0x83, 0xc4, 0x04, //0x0000371b addq $4, %r12 + 0x4c, 0x89, 0x65, 0xd0, //0x0000371f movq %r12, $-48(%rbp) + 0xe9, 0x02, 0xff, 0xff, 0xff, //0x00003723 jmp LBB15_52 + //0x00003728 LBB15_70 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003728 movq $-2, %rax + 0x80, 0xf9, 0x6e, //0x0000372f cmpb $110, %cl + 0x0f, 0x85, 0x61, 0xff, 0xff, 0xff, //0x00003732 jne LBB15_58 + 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x75, //0x00003738 cmpb $117, $1(%r15,%rbx) + 0x0f, 0x85, 0x5f, 0x00, 0x00, 0x00, //0x0000373e jne LBB15_80 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x6c, //0x00003744 cmpb $108, $2(%r15,%rbx) + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x0000374a jne LBB15_83 + 0x31, 0xc9, //0x00003750 xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x6c, //0x00003752 cmpb $108, $3(%rbx,%r15) + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00003758 jmp LBB15_78 + //0x0000375d LBB15_74 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x0000375d movq $-2, %rax + 0x80, 0xf9, 0x74, //0x00003764 cmpb $116, %cl + 0x0f, 0x85, 0x2c, 0xff, 0xff, 0xff, //0x00003767 jne LBB15_58 + 0x41, 0x80, 0x7c, 0x1f, 0x01, 0x72, //0x0000376d cmpb $114, $1(%r15,%rbx) + 0x0f, 0x85, 0x2a, 0x00, 0x00, 0x00, //0x00003773 jne LBB15_80 + 0x41, 0x80, 0x7c, 0x1f, 0x02, 0x75, //0x00003779 cmpb $117, $2(%r15,%rbx) + 0x0f, 0x85, 0x37, 0x00, 0x00, 0x00, //0x0000377f jne LBB15_83 + 0x31, 0xc9, //0x00003785 xorl %ecx, %ecx + 0x42, 0x80, 0x7c, 0x3b, 0x03, 0x65, //0x00003787 cmpb $101, $3(%rbx,%r15) + //0x0000378d LBB15_78 + 0x0f, 0x94, 0xc1, //0x0000378d sete %cl + 0x48, 0x01, 0xcb, //0x00003790 addq %rcx, %rbx + 0x48, 0x83, 0xc3, 0x03, //0x00003793 addq $3, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x00003797 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x0000379b movq %rax, (%r9) + 0xe9, 0x21, 0xfd, 0xff, 0xff, //0x0000379e jmp LBB15_34 + //0x000037a3 LBB15_80 + 0x48, 0x83, 0xc3, 0x01, //0x000037a3 addq $1, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000037a7 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x000037ab movq %rax, (%r9) + 0xe9, 0x11, 0xfd, 0xff, 0xff, //0x000037ae jmp LBB15_34 + //0x000037b3 LBB15_79 + 0x48, 0x83, 0xc3, 0x02, //0x000037b3 addq $2, %rbx + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x000037b7 jmp LBB15_82 + //0x000037bc LBB15_83 + 0x48, 0x83, 0xc3, 0x02, //0x000037bc addq $2, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x000037c0 movq %rbx, $-48(%rbp) + 0x49, 0x89, 0x01, //0x000037c4 movq %rax, (%r9) + 0xe9, 0xf8, 0xfc, 0xff, 0xff, //0x000037c7 jmp LBB15_34 + //0x000037cc LBB15_81 + 0x48, 0x83, 0xc3, 0x03, //0x000037cc addq $3, %rbx + //0x000037d0 LBB15_82 + 0x49, 0x89, 0xdc, //0x000037d0 movq %rbx, %r12 + 0x48, 0x89, 0x5d, 0xd0, //0x000037d3 movq %rbx, $-48(%rbp) + 0xe9, 0x4e, 0xfe, 0xff, 0xff, //0x000037d7 jmp LBB15_52 + //0x000037dc LBB15_84 + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x000037dc movq $-1, %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000037e3 jmp LBB15_87 + //0x000037e8 LBB15_85 + 0x48, 0xf7, 0xd0, //0x000037e8 notq %rax + 0x49, 0x01, 0xc6, //0x000037eb addq %rax, %r14 + //0x000037ee LBB15_86 + 0x4d, 0x89, 0xe1, //0x000037ee movq %r12, %r9 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000037f1 movq $-2, %rbx + //0x000037f8 LBB15_87 + 0x4d, 0x29, 0xfe, //0x000037f8 subq %r15, %r14 + 0x4c, 0x89, 0x75, 0xd0, //0x000037fb movq %r14, $-48(%rbp) + 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x000037ff jmp LBB15_39 + //0x00003804 .p2align 2, 0x90 + // // .set L15_0_set_32, LBB15_32-LJTI15_0 + // // .set L15_0_set_41, LBB15_41-LJTI15_0 + // // .set L15_0_set_42, LBB15_42-LJTI15_0 + // // .set L15_0_set_44, LBB15_44-LJTI15_0 + // // .set L15_0_set_29, LBB15_29-LJTI15_0 + // // .set L15_0_set_45, LBB15_45-LJTI15_0 + // // .set L15_0_set_46, LBB15_46-LJTI15_0 + // // .set L15_0_set_47, LBB15_47-LJTI15_0 + // // .set L15_0_set_48, LBB15_48-LJTI15_0 + // // .set L15_0_set_53, LBB15_53-LJTI15_0 + // // .set L15_0_set_59, LBB15_59-LJTI15_0 + // // .set L15_0_set_62, LBB15_62-LJTI15_0 + // // .set L15_0_set_63, LBB15_63-LJTI15_0 + //0x00003804 LJTI15_0 + 0xb6, 0xfc, 0xff, 0xff, //0x00003804 .long L15_0_set_32 + 0x46, 0xfd, 0xff, 0xff, //0x00003808 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000380c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003810 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003814 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003818 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000381c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003820 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003824 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003828 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000382c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003830 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003834 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003838 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000383c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003840 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003844 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003848 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000384c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003850 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003854 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003858 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000385c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003860 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003864 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003868 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000386c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003870 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003874 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003878 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000387c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003880 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003884 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003888 .long L15_0_set_41 + 0x52, 0xfd, 0xff, 0xff, //0x0000388c .long L15_0_set_42 + 0x46, 0xfd, 0xff, 0xff, //0x00003890 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003894 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003898 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000389c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038a8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038ac .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038b0 .long L15_0_set_41 + 0xa7, 0xfd, 0xff, 0xff, //0x000038b4 .long L15_0_set_44 + 0x8f, 0xfc, 0xff, 0xff, //0x000038b8 .long L15_0_set_29 + 0x46, 0xfd, 0xff, 0xff, //0x000038bc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038c0 .long L15_0_set_41 + 0x8f, 0xfc, 0xff, 0xff, //0x000038c4 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038c8 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038cc .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038d0 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038d4 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038d8 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038dc .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038e0 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038e4 .long L15_0_set_29 + 0x8f, 0xfc, 0xff, 0xff, //0x000038e8 .long L15_0_set_29 + 0xbb, 0xfd, 0xff, 0xff, //0x000038ec .long L15_0_set_45 + 0x46, 0xfd, 0xff, 0xff, //0x000038f0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038f4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038f8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000038fc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003900 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003904 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003908 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000390c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003910 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003914 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003918 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000391c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003920 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003924 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003928 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000392c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003930 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003934 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003938 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000393c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003940 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003944 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003948 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000394c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003950 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003954 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003958 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000395c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003960 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003964 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003968 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000396c .long L15_0_set_41 + 0xcf, 0xfd, 0xff, 0xff, //0x00003970 .long L15_0_set_46 + 0x46, 0xfd, 0xff, 0xff, //0x00003974 .long L15_0_set_41 + 0xdb, 0xfd, 0xff, 0xff, //0x00003978 .long L15_0_set_47 + 0x46, 0xfd, 0xff, 0xff, //0x0000397c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003980 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003984 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003988 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x0000398c .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003990 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003994 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x00003998 .long L15_0_set_41 + 0xef, 0xfd, 0xff, 0xff, //0x0000399c .long L15_0_set_48 + 0x46, 0xfd, 0xff, 0xff, //0x000039a0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039a4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039a8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039ac .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039b8 .long L15_0_set_41 + 0x2e, 0xfe, 0xff, 0xff, //0x000039bc .long L15_0_set_53 + 0x46, 0xfd, 0xff, 0xff, //0x000039c0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039c4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039c8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039cc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039d0 .long L15_0_set_41 + 0x5f, 0xfe, 0xff, 0xff, //0x000039d4 .long L15_0_set_59 + 0x46, 0xfd, 0xff, 0xff, //0x000039d8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039dc .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039e0 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039e4 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039e8 .long L15_0_set_41 + 0x46, 0xfd, 0xff, 0xff, //0x000039ec .long L15_0_set_41 + 0x9d, 0xfe, 0xff, 0xff, //0x000039f0 .long L15_0_set_62 + 0x46, 0xfd, 0xff, 0xff, //0x000039f4 .long L15_0_set_41 + 0xa9, 0xfe, 0xff, 0xff, //0x000039f8 .long L15_0_set_63 + 0x90, 0x90, 0x90, 0x90, //0x000039fc .p2align 4, 0x90 + //0x00003a00 _vstring + 0x55, //0x00003a00 pushq %rbp + 0x48, 0x89, 0xe5, //0x00003a01 movq %rsp, %rbp + 0x41, 0x57, //0x00003a04 pushq %r15 + 0x41, 0x56, //0x00003a06 pushq %r14 + 0x41, 0x54, //0x00003a08 pushq %r12 + 0x53, //0x00003a0a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00003a0b subq $16, %rsp + 0x49, 0x89, 0xd6, //0x00003a0f movq %rdx, %r14 + 0x48, 0x89, 0xf3, //0x00003a12 movq %rsi, %rbx + 0x49, 0x89, 0xff, //0x00003a15 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00003a18 movq $-1, $-40(%rbp) + 0x4c, 0x8b, 0x26, //0x00003a20 movq (%rsi), %r12 + 0x48, 0x8d, 0x55, 0xd8, //0x00003a23 leaq $-40(%rbp), %rdx + 0x4c, 0x89, 0xe6, //0x00003a27 movq %r12, %rsi + 0xe8, 0x81, 0x00, 0x00, 0x00, //0x00003a2a callq _advance_string + 0x48, 0x85, 0xc0, //0x00003a2f testq %rax, %rax + 0x0f, 0x88, 0x27, 0x00, 0x00, 0x00, //0x00003a32 js LBB16_1 + 0x48, 0x89, 0x03, //0x00003a38 movq %rax, (%rbx) + 0x4d, 0x89, 0x66, 0x10, //0x00003a3b movq %r12, $16(%r14) + 0x48, 0x8b, 0x4d, 0xd8, //0x00003a3f movq $-40(%rbp), %rcx + 0x48, 0x39, 0xc1, //0x00003a43 cmpq %rax, %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003a46 movq $-1, %rax + 0x48, 0x0f, 0x4c, 0xc1, //0x00003a4d cmovlq %rcx, %rax + 0x49, 0x89, 0x46, 0x18, //0x00003a51 movq %rax, $24(%r14) + 0xb8, 0x07, 0x00, 0x00, 0x00, //0x00003a55 movl $7, %eax + 0xe9, 0x07, 0x00, 0x00, 0x00, //0x00003a5a jmp LBB16_3 + //0x00003a5f LBB16_1 + 0x49, 0x8b, 0x4f, 0x08, //0x00003a5f movq $8(%r15), %rcx + 0x48, 0x89, 0x0b, //0x00003a63 movq %rcx, (%rbx) + //0x00003a66 LBB16_3 + 0x49, 0x89, 0x06, //0x00003a66 movq %rax, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x00003a69 addq $16, %rsp + 0x5b, //0x00003a6d popq %rbx + 0x41, 0x5c, //0x00003a6e popq %r12 + 0x41, 0x5e, //0x00003a70 popq %r14 + 0x41, 0x5f, //0x00003a72 popq %r15 + 0x5d, //0x00003a74 popq %rbp + 0xc3, //0x00003a75 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00003a76 .p2align 4, 0x00 + //0x00003a80 LCPI17_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00003a80 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00003a90 LCPI17_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00003a90 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00003aa0 LCPI17_2 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00003aa0 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00003ab0 .p2align 4, 0x90 + //0x00003ab0 _advance_string + 0xf6, 0xc1, 0x20, //0x00003ab0 testb $32, %cl + 0x0f, 0x85, 0x05, 0x00, 0x00, 0x00, //0x00003ab3 jne LBB17_2 + 0xe9, 0xf2, 0x58, 0x00, 0x00, //0x00003ab9 jmp _advance_string_default + //0x00003abe LBB17_2 + 0x55, //0x00003abe pushq %rbp + 0x48, 0x89, 0xe5, //0x00003abf movq %rsp, %rbp + 0x41, 0x57, //0x00003ac2 pushq %r15 + 0x41, 0x56, //0x00003ac4 pushq %r14 + 0x41, 0x55, //0x00003ac6 pushq %r13 + 0x41, 0x54, //0x00003ac8 pushq %r12 + 0x53, //0x00003aca pushq %rbx + 0x48, 0x83, 0xec, 0x18, //0x00003acb subq $24, %rsp + 0x4c, 0x8b, 0x7f, 0x08, //0x00003acf movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x00003ad3 subq %rsi, %r15 + 0x0f, 0x84, 0xec, 0x04, 0x00, 0x00, //0x00003ad6 je LBB17_47 + 0x48, 0x8b, 0x07, //0x00003adc movq (%rdi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x00003adf movq %rax, $-48(%rbp) + 0x48, 0x89, 0x55, 0xc0, //0x00003ae3 movq %rdx, $-64(%rbp) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x00003ae7 movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x00003aee cmpq $64, %r15 + 0x0f, 0x82, 0xf7, 0x03, 0x00, 0x00, //0x00003af2 jb LBB17_48 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003af8 movq $-1, $-56(%rbp) + 0x45, 0x31, 0xf6, //0x00003b00 xorl %r14d, %r14d + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x74, 0xff, 0xff, 0xff, //0x00003b03 movdqa $-140(%rip), %xmm8 /* LCPI17_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x7c, 0xff, 0xff, 0xff, //0x00003b0c movdqa $-132(%rip), %xmm1 /* LCPI17_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x84, 0xff, 0xff, 0xff, //0x00003b14 movdqa $-124(%rip), %xmm2 /* LCPI17_2+0(%rip) */ + 0x66, 0x0f, 0x76, 0xdb, //0x00003b1c pcmpeqd %xmm3, %xmm3 + //0x00003b20 .p2align 4, 0x90 + //0x00003b20 LBB17_5 + 0x48, 0x8b, 0x45, 0xd0, //0x00003b20 movq $-48(%rbp), %rax + 0xf3, 0x0f, 0x6f, 0x04, 0x30, //0x00003b24 movdqu (%rax,%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x7c, 0x30, 0x10, //0x00003b29 movdqu $16(%rax,%rsi), %xmm7 + 0xf3, 0x0f, 0x6f, 0x74, 0x30, 0x20, //0x00003b2f movdqu $32(%rax,%rsi), %xmm6 + 0xf3, 0x0f, 0x6f, 0x6c, 0x30, 0x30, //0x00003b35 movdqu $48(%rax,%rsi), %xmm5 + 0x66, 0x0f, 0x6f, 0xe0, //0x00003b3b movdqa %xmm0, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b3f pcmpeqb %xmm8, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xe4, //0x00003b44 pmovmskb %xmm4, %r12d + 0x66, 0x0f, 0x6f, 0xe7, //0x00003b49 movdqa %xmm7, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b4d pcmpeqb %xmm8, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00003b52 pmovmskb %xmm4, %eax + 0x66, 0x0f, 0x6f, 0xe6, //0x00003b56 movdqa %xmm6, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b5a pcmpeqb %xmm8, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xcc, //0x00003b5f pmovmskb %xmm4, %r9d + 0x66, 0x0f, 0x6f, 0xe5, //0x00003b64 movdqa %xmm5, %xmm4 + 0x66, 0x41, 0x0f, 0x74, 0xe0, //0x00003b68 pcmpeqb %xmm8, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xdc, //0x00003b6d pmovmskb %xmm4, %r11d + 0x66, 0x0f, 0x6f, 0xe0, //0x00003b72 movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe1, //0x00003b76 pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xec, //0x00003b7a pmovmskb %xmm4, %r13d + 0x66, 0x0f, 0x6f, 0xe7, //0x00003b7f movdqa %xmm7, %xmm4 + 0x66, 0x0f, 0x74, 0xe1, //0x00003b83 pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00003b87 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xe6, //0x00003b8b movdqa %xmm6, %xmm4 + 0x66, 0x0f, 0x74, 0xe1, //0x00003b8f pcmpeqb %xmm1, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x00003b93 pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x6f, 0xe5, //0x00003b97 movdqa %xmm5, %xmm4 + 0x66, 0x0f, 0x74, 0xe1, //0x00003b9b pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x00003b9f pmovmskb %xmm4, %r10d + 0x66, 0x0f, 0x6f, 0xe2, //0x00003ba4 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x64, 0xe7, //0x00003ba8 pcmpgtb %xmm7, %xmm4 + 0x66, 0x0f, 0x64, 0xfb, //0x00003bac pcmpgtb %xmm3, %xmm7 + 0x66, 0x0f, 0xdb, 0xfc, //0x00003bb0 pand %xmm4, %xmm7 + 0x66, 0x0f, 0xd7, 0xdf, //0x00003bb4 pmovmskb %xmm7, %ebx + 0x66, 0x0f, 0x6f, 0xe2, //0x00003bb8 movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x64, 0xe6, //0x00003bbc pcmpgtb %xmm6, %xmm4 + 0x66, 0x0f, 0x64, 0xf3, //0x00003bc0 pcmpgtb %xmm3, %xmm6 + 0x66, 0x0f, 0xdb, 0xf4, //0x00003bc4 pand %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00003bc8 pmovmskb %xmm6, %r8d + 0x66, 0x0f, 0x6f, 0xe2, //0x00003bcd movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x64, 0xe5, //0x00003bd1 pcmpgtb %xmm5, %xmm4 + 0x66, 0x0f, 0x64, 0xeb, //0x00003bd5 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00003bd9 pand %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xd5, //0x00003bdd pmovmskb %xmm5, %edx + 0x49, 0xc1, 0xe3, 0x30, //0x00003be1 shlq $48, %r11 + 0x49, 0xc1, 0xe1, 0x20, //0x00003be5 shlq $32, %r9 + 0x4d, 0x09, 0xd9, //0x00003be9 orq %r11, %r9 + 0x48, 0xc1, 0xe0, 0x10, //0x00003bec shlq $16, %rax + 0x4c, 0x09, 0xc8, //0x00003bf0 orq %r9, %rax + 0x49, 0x09, 0xc4, //0x00003bf3 orq %rax, %r12 + 0x49, 0xc1, 0xe2, 0x30, //0x00003bf6 shlq $48, %r10 + 0x48, 0xc1, 0xe7, 0x20, //0x00003bfa shlq $32, %rdi + 0x4c, 0x09, 0xd7, //0x00003bfe orq %r10, %rdi + 0x48, 0xc1, 0xe1, 0x10, //0x00003c01 shlq $16, %rcx + 0x48, 0x09, 0xf9, //0x00003c05 orq %rdi, %rcx + 0x48, 0xc1, 0xe2, 0x30, //0x00003c08 shlq $48, %rdx + 0x49, 0xc1, 0xe0, 0x20, //0x00003c0c shlq $32, %r8 + 0x49, 0x09, 0xd0, //0x00003c10 orq %rdx, %r8 + 0x48, 0xc1, 0xe3, 0x10, //0x00003c13 shlq $16, %rbx + 0x4c, 0x09, 0xc3, //0x00003c17 orq %r8, %rbx + 0x49, 0x09, 0xcd, //0x00003c1a orq %rcx, %r13 + 0x0f, 0x85, 0x4c, 0x00, 0x00, 0x00, //0x00003c1d jne LBB17_11 + 0x4d, 0x85, 0xf6, //0x00003c23 testq %r14, %r14 + 0x0f, 0x85, 0x60, 0x00, 0x00, 0x00, //0x00003c26 jne LBB17_13 + 0x45, 0x31, 0xf6, //0x00003c2c xorl %r14d, %r14d + //0x00003c2f LBB17_8 + 0x66, 0x0f, 0x6f, 0xe2, //0x00003c2f movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x00003c33 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x64, 0xc3, //0x00003c37 pcmpgtb %xmm3, %xmm0 + 0x66, 0x0f, 0xdb, 0xc4, //0x00003c3b pand %xmm4, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x00003c3f pmovmskb %xmm0, %eax + 0x48, 0x09, 0xc3, //0x00003c43 orq %rax, %rbx + 0x4d, 0x85, 0xe4, //0x00003c46 testq %r12, %r12 + 0x0f, 0x85, 0x8b, 0x00, 0x00, 0x00, //0x00003c49 jne LBB17_14 + 0x48, 0x85, 0xdb, //0x00003c4f testq %rbx, %rbx + 0x0f, 0x85, 0xd6, 0x00, 0x00, 0x00, //0x00003c52 jne LBB17_20 + 0x49, 0x83, 0xc7, 0xc0, //0x00003c58 addq $-64, %r15 + 0x48, 0x83, 0xc6, 0x40, //0x00003c5c addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x00003c60 cmpq $63, %r15 + 0x0f, 0x87, 0xb6, 0xfe, 0xff, 0xff, //0x00003c64 ja LBB17_5 + 0xe9, 0xe4, 0x00, 0x00, 0x00, //0x00003c6a jmp LBB17_22 + //0x00003c6f LBB17_11 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003c6f cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00003c74 jne LBB17_13 + 0x49, 0x0f, 0xbc, 0xcd, //0x00003c7a bsfq %r13, %rcx + 0x48, 0x01, 0xf1, //0x00003c7e addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003c81 movq $-64(%rbp), %rax + 0x48, 0x89, 0x4d, 0xc8, //0x00003c85 movq %rcx, $-56(%rbp) + 0x48, 0x89, 0x08, //0x00003c89 movq %rcx, (%rax) + //0x00003c8c LBB17_13 + 0x4c, 0x89, 0xf0, //0x00003c8c movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x00003c8f notq %rax + 0x4c, 0x21, 0xe8, //0x00003c92 andq %r13, %rax + 0x48, 0x8d, 0x0c, 0x00, //0x00003c95 leaq (%rax,%rax), %rcx + 0x4c, 0x09, 0xf1, //0x00003c99 orq %r14, %rcx + 0x48, 0x89, 0xca, //0x00003c9c movq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003c9f notq %rdx + 0x4c, 0x21, 0xea, //0x00003ca2 andq %r13, %rdx + 0x48, 0xbf, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003ca5 movabsq $-6148914691236517206, %rdi + 0x48, 0x21, 0xfa, //0x00003caf andq %rdi, %rdx + 0x45, 0x31, 0xf6, //0x00003cb2 xorl %r14d, %r14d + 0x48, 0x01, 0xc2, //0x00003cb5 addq %rax, %rdx + 0x41, 0x0f, 0x92, 0xc6, //0x00003cb8 setb %r14b + 0x48, 0x01, 0xd2, //0x00003cbc addq %rdx, %rdx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00003cbf movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc2, //0x00003cc9 xorq %rax, %rdx + 0x48, 0x21, 0xca, //0x00003ccc andq %rcx, %rdx + 0x48, 0xf7, 0xd2, //0x00003ccf notq %rdx + 0x49, 0x21, 0xd4, //0x00003cd2 andq %rdx, %r12 + 0xe9, 0x55, 0xff, 0xff, 0xff, //0x00003cd5 jmp LBB17_8 + //0x00003cda LBB17_14 + 0x49, 0x0f, 0xbc, 0xc4, //0x00003cda bsfq %r12, %rax + 0x48, 0x85, 0xdb, //0x00003cde testq %rbx, %rbx + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00003ce1 je LBB17_18 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003ce7 bsfq %rbx, %rcx + 0x48, 0x39, 0xc1, //0x00003ceb cmpq %rax, %rcx + 0x0f, 0x82, 0x24, 0x00, 0x00, 0x00, //0x00003cee jb LBB17_19 + //0x00003cf4 LBB17_16 + 0x48, 0x01, 0xf0, //0x00003cf4 addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x00003cf7 addq $1, %rax + //0x00003cfb LBB17_17 + 0x48, 0x83, 0xc4, 0x18, //0x00003cfb addq $24, %rsp + 0x5b, //0x00003cff popq %rbx + 0x41, 0x5c, //0x00003d00 popq %r12 + 0x41, 0x5d, //0x00003d02 popq %r13 + 0x41, 0x5e, //0x00003d04 popq %r14 + 0x41, 0x5f, //0x00003d06 popq %r15 + 0x5d, //0x00003d08 popq %rbp + 0xc3, //0x00003d09 retq + //0x00003d0a LBB17_18 + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003d0a movl $64, %ecx + 0x48, 0x39, 0xc1, //0x00003d0f cmpq %rax, %rcx + 0x0f, 0x83, 0xdc, 0xff, 0xff, 0xff, //0x00003d12 jae LBB17_16 + //0x00003d18 LBB17_19 + 0x48, 0x01, 0xf1, //0x00003d18 addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003d1b movq $-64(%rbp), %rax + 0x48, 0x89, 0x08, //0x00003d1f movq %rcx, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d22 movq $-2, %rax + 0xe9, 0xcd, 0xff, 0xff, 0xff, //0x00003d29 jmp LBB17_17 + //0x00003d2e LBB17_20 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003d2e movq $-2, %rax + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003d35 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0xbb, 0xff, 0xff, 0xff, //0x00003d3a jne LBB17_17 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003d40 bsfq %rbx, %rcx + 0x48, 0x01, 0xf1, //0x00003d44 addq %rsi, %rcx + 0x48, 0x8b, 0x55, 0xc0, //0x00003d47 movq $-64(%rbp), %rdx + 0x48, 0x89, 0x0a, //0x00003d4b movq %rcx, (%rdx) + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x00003d4e jmp LBB17_17 + //0x00003d53 LBB17_22 + 0x48, 0x03, 0x75, 0xd0, //0x00003d53 addq $-48(%rbp), %rsi + 0x49, 0x83, 0xff, 0x20, //0x00003d57 cmpq $32, %r15 + 0x0f, 0x82, 0xf2, 0x00, 0x00, 0x00, //0x00003d5b jb LBB17_35 + //0x00003d61 LBB17_23 + 0xf3, 0x0f, 0x6f, 0x06, //0x00003d61 movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00003d65 movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x0e, 0xfd, 0xff, 0xff, //0x00003d6a movdqa $-754(%rip), %xmm2 /* LCPI17_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003d72 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003d76 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xd7, 0xc3, //0x00003d7a pmovmskb %xmm3, %eax + 0x66, 0x0f, 0x74, 0xd1, //0x00003d7e pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00003d82 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0x15, 0x02, 0xfd, 0xff, 0xff, //0x00003d86 movdqa $-766(%rip), %xmm2 /* LCPI17_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00003d8e movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00003d92 pcmpeqb %xmm2, %xmm3 + 0x66, 0x44, 0x0f, 0xd7, 0xd3, //0x00003d96 pmovmskb %xmm3, %r10d + 0x66, 0x0f, 0x74, 0xd1, //0x00003d9b pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00003d9f pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0x15, 0xf5, 0xfc, 0xff, 0xff, //0x00003da3 movdqa $-779(%rip), %xmm2 /* LCPI17_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xda, //0x00003dab movdqa %xmm2, %xmm3 + 0x66, 0x0f, 0x64, 0xd8, //0x00003daf pcmpgtb %xmm0, %xmm3 + 0x66, 0x0f, 0x76, 0xe4, //0x00003db3 pcmpeqd %xmm4, %xmm4 + 0x66, 0x0f, 0x64, 0xc4, //0x00003db7 pcmpgtb %xmm4, %xmm0 + 0x66, 0x0f, 0xdb, 0xc3, //0x00003dbb pand %xmm3, %xmm0 + 0x66, 0x44, 0x0f, 0xd7, 0xc8, //0x00003dbf pmovmskb %xmm0, %r9d + 0x66, 0x0f, 0x64, 0xd1, //0x00003dc4 pcmpgtb %xmm1, %xmm2 + 0x66, 0x0f, 0x64, 0xcc, //0x00003dc8 pcmpgtb %xmm4, %xmm1 + 0x66, 0x0f, 0xdb, 0xca, //0x00003dcc pand %xmm2, %xmm1 + 0x66, 0x0f, 0xd7, 0xd9, //0x00003dd0 pmovmskb %xmm1, %ebx + 0x48, 0xc1, 0xe1, 0x10, //0x00003dd4 shlq $16, %rcx + 0x48, 0x09, 0xc8, //0x00003dd8 orq %rcx, %rax + 0x48, 0xc1, 0xe2, 0x10, //0x00003ddb shlq $16, %rdx + 0x48, 0xc1, 0xe3, 0x10, //0x00003ddf shlq $16, %rbx + 0x49, 0x09, 0xd2, //0x00003de3 orq %rdx, %r10 + 0x0f, 0x85, 0x21, 0x01, 0x00, 0x00, //0x00003de6 jne LBB17_49 + 0x4d, 0x85, 0xf6, //0x00003dec testq %r14, %r14 + 0x0f, 0x85, 0x3c, 0x01, 0x00, 0x00, //0x00003def jne LBB17_51 + 0x45, 0x31, 0xf6, //0x00003df5 xorl %r14d, %r14d + //0x00003df8 LBB17_26 + 0x4c, 0x09, 0xcb, //0x00003df8 orq %r9, %rbx + 0xb9, 0x40, 0x00, 0x00, 0x00, //0x00003dfb movl $64, %ecx + 0xba, 0x40, 0x00, 0x00, 0x00, //0x00003e00 movl $64, %edx + 0x48, 0x85, 0xc0, //0x00003e05 testq %rax, %rax + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003e08 je LBB17_28 + 0x48, 0x0f, 0xbc, 0xd0, //0x00003e0e bsfq %rax, %rdx + //0x00003e12 LBB17_28 + 0x48, 0x85, 0xdb, //0x00003e12 testq %rbx, %rbx + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00003e15 je LBB17_30 + 0x48, 0x0f, 0xbc, 0xcb, //0x00003e1b bsfq %rbx, %rcx + //0x00003e1f LBB17_30 + 0x48, 0x85, 0xc0, //0x00003e1f testq %rax, %rax + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x00003e22 je LBB17_33 + 0x48, 0x39, 0xd1, //0x00003e28 cmpq %rdx, %rcx + 0x0f, 0x82, 0x37, 0x01, 0x00, 0x00, //0x00003e2b jb LBB17_52 + 0x48, 0x2b, 0x75, 0xd0, //0x00003e31 subq $-48(%rbp), %rsi + 0x48, 0x8d, 0x04, 0x16, //0x00003e35 leaq (%rsi,%rdx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x00003e39 addq $1, %rax + 0xe9, 0xb9, 0xfe, 0xff, 0xff, //0x00003e3d jmp LBB17_17 + //0x00003e42 LBB17_33 + 0x48, 0x85, 0xdb, //0x00003e42 testq %rbx, %rbx + 0x0f, 0x85, 0x1d, 0x01, 0x00, 0x00, //0x00003e45 jne LBB17_52 + 0x48, 0x83, 0xc6, 0x20, //0x00003e4b addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00003e4f addq $-32, %r15 + //0x00003e53 LBB17_35 + 0x4d, 0x85, 0xf6, //0x00003e53 testq %r14, %r14 + 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00003e56 jne LBB17_54 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003e5c movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003e63 testq %r15, %r15 + 0x0f, 0x84, 0x8f, 0xfe, 0xff, 0xff, //0x00003e66 je LBB17_17 + //0x00003e6c LBB17_37 + 0x48, 0x8b, 0x7d, 0xc0, //0x00003e6c movq $-64(%rbp), %rdi + //0x00003e70 LBB17_38 + 0x0f, 0xb6, 0x0e, //0x00003e70 movzbl (%rsi), %ecx + 0x80, 0xf9, 0x22, //0x00003e73 cmpb $34, %cl + 0x0f, 0x84, 0x63, 0x00, 0x00, 0x00, //0x00003e76 je LBB17_46 + 0x80, 0xf9, 0x5c, //0x00003e7c cmpb $92, %cl + 0x0f, 0x84, 0x26, 0x00, 0x00, 0x00, //0x00003e7f je LBB17_43 + 0x80, 0xf9, 0x1f, //0x00003e85 cmpb $31, %cl + 0x0f, 0x86, 0x46, 0x01, 0x00, 0x00, //0x00003e88 jbe LBB17_58 + 0x48, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x00003e8e movq $-1, %rcx + 0xba, 0x01, 0x00, 0x00, 0x00, //0x00003e95 movl $1, %edx + //0x00003e9a LBB17_42 + 0x48, 0x01, 0xd6, //0x00003e9a addq %rdx, %rsi + 0x49, 0x01, 0xcf, //0x00003e9d addq %rcx, %r15 + 0x0f, 0x85, 0xca, 0xff, 0xff, 0xff, //0x00003ea0 jne LBB17_38 + 0xe9, 0x50, 0xfe, 0xff, 0xff, //0x00003ea6 jmp LBB17_17 + //0x00003eab LBB17_43 + 0x49, 0x83, 0xff, 0x01, //0x00003eab cmpq $1, %r15 + 0x0f, 0x84, 0x46, 0xfe, 0xff, 0xff, //0x00003eaf je LBB17_17 + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x00003eb5 movq $-2, %rcx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x00003ebc movl $2, %edx + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003ec1 cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0xce, 0xff, 0xff, 0xff, //0x00003ec6 jne LBB17_42 + 0x48, 0x89, 0xf3, //0x00003ecc movq %rsi, %rbx + 0x48, 0x2b, 0x5d, 0xd0, //0x00003ecf subq $-48(%rbp), %rbx + 0x48, 0x89, 0x5d, 0xc8, //0x00003ed3 movq %rbx, $-56(%rbp) + 0x48, 0x89, 0x1f, //0x00003ed7 movq %rbx, (%rdi) + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00003eda jmp LBB17_42 + //0x00003edf LBB17_46 + 0x48, 0x2b, 0x75, 0xd0, //0x00003edf subq $-48(%rbp), %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00003ee3 addq $1, %rsi + 0x48, 0x89, 0xf0, //0x00003ee7 movq %rsi, %rax + 0xe9, 0x0c, 0xfe, 0xff, 0xff, //0x00003eea jmp LBB17_17 + //0x00003eef LBB17_48 + 0x48, 0x03, 0x75, 0xd0, //0x00003eef addq $-48(%rbp), %rsi + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00003ef3 movq $-1, $-56(%rbp) + 0x45, 0x31, 0xf6, //0x00003efb xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x00003efe cmpq $32, %r15 + 0x0f, 0x83, 0x59, 0xfe, 0xff, 0xff, //0x00003f02 jae LBB17_23 + 0xe9, 0x46, 0xff, 0xff, 0xff, //0x00003f08 jmp LBB17_35 + //0x00003f0d LBB17_49 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f0d cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00003f12 jne LBB17_51 + 0x48, 0x89, 0xf1, //0x00003f18 movq %rsi, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00003f1b subq $-48(%rbp), %rcx + 0x49, 0x0f, 0xbc, 0xd2, //0x00003f1f bsfq %r10, %rdx + 0x48, 0x01, 0xca, //0x00003f23 addq %rcx, %rdx + 0x48, 0x8b, 0x4d, 0xc0, //0x00003f26 movq $-64(%rbp), %rcx + 0x48, 0x89, 0x55, 0xc8, //0x00003f2a movq %rdx, $-56(%rbp) + 0x48, 0x89, 0x11, //0x00003f2e movq %rdx, (%rcx) + //0x00003f31 LBB17_51 + 0x44, 0x89, 0xf1, //0x00003f31 movl %r14d, %ecx + 0xf7, 0xd1, //0x00003f34 notl %ecx + 0x44, 0x21, 0xd1, //0x00003f36 andl %r10d, %ecx + 0x45, 0x8d, 0x04, 0x4e, //0x00003f39 leal (%r14,%rcx,2), %r8d + 0x8d, 0x14, 0x09, //0x00003f3d leal (%rcx,%rcx), %edx + 0xf7, 0xd2, //0x00003f40 notl %edx + 0x44, 0x21, 0xd2, //0x00003f42 andl %r10d, %edx + 0x81, 0xe2, 0xaa, 0xaa, 0xaa, 0xaa, //0x00003f45 andl $-1431655766, %edx + 0x45, 0x31, 0xf6, //0x00003f4b xorl %r14d, %r14d + 0x01, 0xca, //0x00003f4e addl %ecx, %edx + 0x41, 0x0f, 0x92, 0xc6, //0x00003f50 setb %r14b + 0x01, 0xd2, //0x00003f54 addl %edx, %edx + 0x81, 0xf2, 0x55, 0x55, 0x55, 0x55, //0x00003f56 xorl $1431655765, %edx + 0x44, 0x21, 0xc2, //0x00003f5c andl %r8d, %edx + 0xf7, 0xd2, //0x00003f5f notl %edx + 0x21, 0xd0, //0x00003f61 andl %edx, %eax + 0xe9, 0x90, 0xfe, 0xff, 0xff, //0x00003f63 jmp LBB17_26 + //0x00003f68 LBB17_52 + 0x48, 0x2b, 0x75, 0xd0, //0x00003f68 subq $-48(%rbp), %rsi + 0x48, 0x01, 0xce, //0x00003f6c addq %rcx, %rsi + //0x00003f6f LBB17_53 + 0x48, 0x8b, 0x45, 0xc0, //0x00003f6f movq $-64(%rbp), %rax + 0x48, 0x89, 0x30, //0x00003f73 movq %rsi, (%rax) + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00003f76 movq $-2, %rax + 0xe9, 0x79, 0xfd, 0xff, 0xff, //0x00003f7d jmp LBB17_17 + //0x00003f82 LBB17_54 + 0x4d, 0x85, 0xff, //0x00003f82 testq %r15, %r15 + 0x0f, 0x84, 0x3d, 0x00, 0x00, 0x00, //0x00003f85 je LBB17_47 + 0x48, 0x83, 0x7d, 0xc8, 0xff, //0x00003f8b cmpq $-1, $-56(%rbp) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00003f90 jne LBB17_57 + 0x48, 0x8b, 0x4d, 0xd0, //0x00003f96 movq $-48(%rbp), %rcx + 0x48, 0xf7, 0xd1, //0x00003f9a notq %rcx + 0x48, 0x01, 0xf1, //0x00003f9d addq %rsi, %rcx + 0x48, 0x8b, 0x45, 0xc0, //0x00003fa0 movq $-64(%rbp), %rax + 0x48, 0x89, 0x4d, 0xc8, //0x00003fa4 movq %rcx, $-56(%rbp) + 0x48, 0x89, 0x08, //0x00003fa8 movq %rcx, (%rax) + //0x00003fab LBB17_57 + 0x48, 0x83, 0xc6, 0x01, //0x00003fab addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x00003faf addq $-1, %r15 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fb3 movq $-1, %rax + 0x4d, 0x85, 0xff, //0x00003fba testq %r15, %r15 + 0x0f, 0x85, 0xa9, 0xfe, 0xff, 0xff, //0x00003fbd jne LBB17_37 + 0xe9, 0x33, 0xfd, 0xff, 0xff, //0x00003fc3 jmp LBB17_17 + //0x00003fc8 LBB17_47 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00003fc8 movq $-1, %rax + 0xe9, 0x27, 0xfd, 0xff, 0xff, //0x00003fcf jmp LBB17_17 + //0x00003fd4 LBB17_58 + 0x48, 0x2b, 0x75, 0xd0, //0x00003fd4 subq $-48(%rbp), %rsi + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x00003fd8 jmp LBB17_53 + 0x00, 0x00, 0x00, //0x00003fdd .p2align 4, 0x00 + //0x00003fe0 LCPI18_0 + 0x00, 0x00, 0x30, 0x43, //0x00003fe0 .long 1127219200 + 0x00, 0x00, 0x30, 0x45, //0x00003fe4 .long 1160773632 + 0x00, 0x00, 0x00, 0x00, //0x00003fe8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00003fec .long 0 + //0x00003ff0 LCPI18_1 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x43, //0x00003ff0 .quad 0x4330000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x45, //0x00003ff8 .quad 0x4530000000000000 + //0x00004000 .p2align 3, 0x00 + //0x00004000 LCPI18_2 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00004000 .quad 0x430c6bf526340000 + //0x00004008 LCPI18_3 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0xc3, //0x00004008 .quad 0xc30c6bf526340000 + //0x00004010 .p2align 4, 0x90 + //0x00004010 _vnumber + 0x55, //0x00004010 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004011 movq %rsp, %rbp + 0x41, 0x57, //0x00004014 pushq %r15 + 0x41, 0x56, //0x00004016 pushq %r14 + 0x41, 0x55, //0x00004018 pushq %r13 + 0x41, 0x54, //0x0000401a pushq %r12 + 0x53, //0x0000401c pushq %rbx + 0x48, 0x83, 0xec, 0x48, //0x0000401d subq $72, %rsp + 0x49, 0x89, 0xd6, //0x00004021 movq %rdx, %r14 + 0x48, 0x8b, 0x06, //0x00004024 movq (%rsi), %rax + 0x4c, 0x8b, 0x3f, //0x00004027 movq (%rdi), %r15 + 0x4c, 0x8b, 0x6f, 0x08, //0x0000402a movq $8(%rdi), %r13 + 0x4c, 0x8b, 0x5a, 0x20, //0x0000402e movq $32(%rdx), %r11 + 0x48, 0x8b, 0x5a, 0x28, //0x00004032 movq $40(%rdx), %rbx + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004036 movq $9, (%rdx) + 0x66, 0x0f, 0x57, 0xc0, //0x0000403d xorpd %xmm0, %xmm0 + 0x66, 0x0f, 0x11, 0x42, 0x08, //0x00004041 movupd %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x00004046 movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x00004049 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xe8, //0x0000404d cmpq %r13, %rax + 0x0f, 0x83, 0x46, 0x00, 0x00, 0x00, //0x00004050 jae LBB18_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004056 movb (%r15,%rax), %dil + 0x41, 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000405a movl $1, %r10d + 0x40, 0x80, 0xff, 0x2d, //0x00004060 cmpb $45, %dil + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00004064 jne LBB18_4 + 0x48, 0x83, 0xc0, 0x01, //0x0000406a addq $1, %rax + 0x4c, 0x39, 0xe8, //0x0000406e cmpq %r13, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004071 jae LBB18_6 + 0x41, 0x8a, 0x3c, 0x07, //0x00004077 movb (%r15,%rax), %dil + 0x41, 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000407b movl $-1, %r10d + //0x00004081 LBB18_4 + 0x8d, 0x4f, 0xd0, //0x00004081 leal $-48(%rdi), %ecx + 0x80, 0xf9, 0x0a, //0x00004084 cmpb $10, %cl + 0x0f, 0x82, 0x28, 0x00, 0x00, 0x00, //0x00004087 jb LBB18_9 + 0x48, 0x89, 0x06, //0x0000408d movq %rax, (%rsi) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x00004090 movq $-2, (%r14) + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004097 jmp LBB18_8 + //0x0000409c LBB18_6 + 0x4c, 0x89, 0x2e, //0x0000409c movq %r13, (%rsi) + //0x0000409f LBB18_7 + 0x49, 0xc7, 0x06, 0xff, 0xff, 0xff, 0xff, //0x0000409f movq $-1, (%r14) + //0x000040a6 LBB18_8 + 0x48, 0x83, 0xc4, 0x48, //0x000040a6 addq $72, %rsp + 0x5b, //0x000040aa popq %rbx + 0x41, 0x5c, //0x000040ab popq %r12 + 0x41, 0x5d, //0x000040ad popq %r13 + 0x41, 0x5e, //0x000040af popq %r14 + 0x41, 0x5f, //0x000040b1 popq %r15 + 0x5d, //0x000040b3 popq %rbp + 0xc3, //0x000040b4 retq + //0x000040b5 LBB18_9 + 0x40, 0x80, 0xff, 0x30, //0x000040b5 cmpb $48, %dil + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x000040b9 jne LBB18_13 + 0x4c, 0x8d, 0x48, 0x01, //0x000040bf leaq $1(%rax), %r9 + 0x4c, 0x39, 0xe8, //0x000040c3 cmpq %r13, %rax + 0x0f, 0x83, 0xcd, 0x00, 0x00, 0x00, //0x000040c6 jae LBB18_22 + 0x43, 0x8a, 0x14, 0x0f, //0x000040cc movb (%r15,%r9), %dl + 0x80, 0xc2, 0xd2, //0x000040d0 addb $-46, %dl + 0x80, 0xfa, 0x37, //0x000040d3 cmpb $55, %dl + 0x0f, 0x87, 0xbd, 0x00, 0x00, 0x00, //0x000040d6 ja LBB18_22 + 0x44, 0x0f, 0xb6, 0xc2, //0x000040dc movzbl %dl, %r8d + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000040e0 movabsq $36028797027352577, %rdx + 0x4c, 0x0f, 0xa3, 0xc2, //0x000040ea btq %r8, %rdx + 0x0f, 0x83, 0xa5, 0x00, 0x00, 0x00, //0x000040ee jae LBB18_22 + //0x000040f4 LBB18_13 + 0x4c, 0x39, 0xe8, //0x000040f4 cmpq %r13, %rax + 0x4c, 0x89, 0x5d, 0x98, //0x000040f7 movq %r11, $-104(%rbp) + 0x48, 0x89, 0x5d, 0xa0, //0x000040fb movq %rbx, $-96(%rbp) + 0x48, 0x89, 0x75, 0xc8, //0x000040ff movq %rsi, $-56(%rbp) + 0x0f, 0x83, 0x7e, 0x00, 0x00, 0x00, //0x00004103 jae LBB18_21 + 0x80, 0xf9, 0x09, //0x00004109 cmpb $9, %cl + 0x44, 0x89, 0x55, 0xbc, //0x0000410c movl %r10d, $-68(%rbp) + 0xb1, 0x01, //0x00004110 movb $1, %cl + 0x0f, 0x87, 0x89, 0x00, 0x00, 0x00, //0x00004112 ja LBB18_23 + 0x89, 0x4d, 0xd4, //0x00004118 movl %ecx, $-44(%rbp) + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x0000411b movl $4294967248, %r9d + 0x4d, 0x8d, 0x55, 0xff, //0x00004121 leaq $-1(%r13), %r10 + 0x31, 0xc9, //0x00004125 xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x00004127 xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x0000412a xorl %r12d, %r12d + 0x90, 0x90, 0x90, //0x0000412d .p2align 4, 0x90 + //0x00004130 LBB18_16 + 0x41, 0x83, 0xf8, 0x12, //0x00004130 cmpl $18, %r8d + 0x0f, 0x8f, 0x26, 0x00, 0x00, 0x00, //0x00004134 jg LBB18_18 + 0x4b, 0x8d, 0x14, 0xa4, //0x0000413a leaq (%r12,%r12,4), %rdx + 0x40, 0x0f, 0xbe, 0xff, //0x0000413e movsbl %dil, %edi + 0x44, 0x01, 0xcf, //0x00004142 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004145 leaq (%rdi,%rdx,2), %r12 + 0x41, 0x83, 0xc0, 0x01, //0x00004149 addl $1, %r8d + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000414d jmp LBB18_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004152 .p2align 4, 0x90 + //0x00004160 LBB18_18 + 0x83, 0xc1, 0x01, //0x00004160 addl $1, %ecx + //0x00004163 LBB18_19 + 0x49, 0x39, 0xc2, //0x00004163 cmpq %rax, %r10 + 0x0f, 0x84, 0x7a, 0x00, 0x00, 0x00, //0x00004166 je LBB18_28 + 0x41, 0x0f, 0xb6, 0x7c, 0x07, 0x01, //0x0000416c movzbl $1(%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004172 leal $-48(%rdi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00004175 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x00004179 cmpb $10, %dl + 0x0f, 0x82, 0xae, 0xff, 0xff, 0xff, //0x0000417c jb LBB18_16 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x00004182 jmp LBB18_24 + //0x00004187 LBB18_21 + 0xb1, 0x01, //0x00004187 movb $1, %cl + 0x89, 0x4d, 0xd4, //0x00004189 movl %ecx, $-44(%rbp) + 0x31, 0xc9, //0x0000418c xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x0000418e xorl %r8d, %r8d + 0x45, 0x31, 0xe4, //0x00004191 xorl %r12d, %r12d + 0xe9, 0x54, 0x00, 0x00, 0x00, //0x00004194 jmp LBB18_30 + //0x00004199 LBB18_22 + 0x4c, 0x89, 0x0e, //0x00004199 movq %r9, (%rsi) + 0xe9, 0x05, 0xff, 0xff, 0xff, //0x0000419c jmp LBB18_8 + //0x000041a1 LBB18_23 + 0x89, 0x4d, 0xd4, //0x000041a1 movl %ecx, $-44(%rbp) + 0x45, 0x31, 0xe4, //0x000041a4 xorl %r12d, %r12d + 0x45, 0x31, 0xc0, //0x000041a7 xorl %r8d, %r8d + 0x31, 0xc9, //0x000041aa xorl %ecx, %ecx + //0x000041ac LBB18_24 + 0x40, 0x80, 0xff, 0x2e, //0x000041ac cmpb $46, %dil + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x000041b0 jne LBB18_29 + 0x48, 0x83, 0xc0, 0x01, //0x000041b6 addq $1, %rax + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x000041ba movq $8, (%r14) + 0x4c, 0x39, 0xe8, //0x000041c1 cmpq %r13, %rax + 0x0f, 0x83, 0x72, 0x02, 0x00, 0x00, //0x000041c4 jae LBB18_68 + 0x41, 0x8a, 0x14, 0x07, //0x000041ca movb (%r15,%rax), %dl + 0x80, 0xc2, 0xd0, //0x000041ce addb $-48, %dl + 0x80, 0xfa, 0x0a, //0x000041d1 cmpb $10, %dl + 0x0f, 0x83, 0x1b, 0x04, 0x00, 0x00, //0x000041d4 jae LBB18_92 + 0xc7, 0x45, 0xd4, 0x00, 0x00, 0x00, 0x00, //0x000041da movl $0, $-44(%rbp) + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x000041e1 jmp LBB18_29 + //0x000041e6 LBB18_28 + 0x4c, 0x89, 0xe8, //0x000041e6 movq %r13, %rax + //0x000041e9 LBB18_29 + 0x44, 0x8b, 0x55, 0xbc, //0x000041e9 movl $-68(%rbp), %r10d + //0x000041ed LBB18_30 + 0x45, 0x31, 0xdb, //0x000041ed xorl %r11d, %r11d + 0x85, 0xc9, //0x000041f0 testl %ecx, %ecx + 0x41, 0x0f, 0x9f, 0xc3, //0x000041f2 setg %r11b + 0x4d, 0x85, 0xe4, //0x000041f6 testq %r12, %r12 + 0x0f, 0x85, 0x56, 0x00, 0x00, 0x00, //0x000041f9 jne LBB18_39 + 0x85, 0xc9, //0x000041ff testl %ecx, %ecx + 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x00004201 jne LBB18_39 + 0x4c, 0x39, 0xe8, //0x00004207 cmpq %r13, %rax + 0x0f, 0x83, 0x3d, 0x00, 0x00, 0x00, //0x0000420a jae LBB18_37 + 0x89, 0xc6, //0x00004210 movl %eax, %esi + 0x44, 0x29, 0xee, //0x00004212 subl %r13d, %esi + 0x45, 0x31, 0xc0, //0x00004215 xorl %r8d, %r8d + 0x31, 0xc9, //0x00004218 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000421a .p2align 4, 0x90 + //0x00004220 LBB18_34 + 0x41, 0x80, 0x3c, 0x07, 0x30, //0x00004220 cmpb $48, (%r15,%rax) + 0x0f, 0x85, 0x27, 0x00, 0x00, 0x00, //0x00004225 jne LBB18_38 + 0x48, 0x83, 0xc0, 0x01, //0x0000422b addq $1, %rax + 0x83, 0xc1, 0xff, //0x0000422f addl $-1, %ecx + 0x49, 0x39, 0xc5, //0x00004232 cmpq %rax, %r13 + 0x0f, 0x85, 0xe5, 0xff, 0xff, 0xff, //0x00004235 jne LBB18_34 + 0x45, 0x31, 0xe4, //0x0000423b xorl %r12d, %r12d + 0x80, 0x7d, 0xd4, 0x00, //0x0000423e cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x26, 0x01, 0x00, 0x00, //0x00004242 jne LBB18_58 + 0xe9, 0x55, 0x01, 0x00, 0x00, //0x00004248 jmp LBB18_62 + //0x0000424d LBB18_37 + 0x31, 0xc9, //0x0000424d xorl %ecx, %ecx + 0x45, 0x31, 0xc0, //0x0000424f xorl %r8d, %r8d + //0x00004252 LBB18_38 + 0x45, 0x31, 0xe4, //0x00004252 xorl %r12d, %r12d + //0x00004255 LBB18_39 + 0x4c, 0x39, 0xe8, //0x00004255 cmpq %r13, %rax + 0x0f, 0x83, 0x4f, 0x00, 0x00, 0x00, //0x00004258 jae LBB18_45 + 0x41, 0x83, 0xf8, 0x12, //0x0000425e cmpl $18, %r8d + 0x0f, 0x8f, 0x45, 0x00, 0x00, 0x00, //0x00004262 jg LBB18_45 + 0x41, 0xb9, 0xd0, 0xff, 0xff, 0xff, //0x00004268 movl $4294967248, %r9d + 0x90, 0x90, //0x0000426e .p2align 4, 0x90 + //0x00004270 LBB18_42 + 0x41, 0x0f, 0xb6, 0x3c, 0x07, //0x00004270 movzbl (%r15,%rax), %edi + 0x8d, 0x57, 0xd0, //0x00004275 leal $-48(%rdi), %edx + 0x80, 0xfa, 0x09, //0x00004278 cmpb $9, %dl + 0x0f, 0x87, 0x2c, 0x00, 0x00, 0x00, //0x0000427b ja LBB18_45 + 0x4b, 0x8d, 0x14, 0xa4, //0x00004281 leaq (%r12,%r12,4), %rdx + 0x44, 0x01, 0xcf, //0x00004285 addl %r9d, %edi + 0x4c, 0x8d, 0x24, 0x57, //0x00004288 leaq (%rdi,%rdx,2), %r12 + 0x83, 0xc1, 0xff, //0x0000428c addl $-1, %ecx + 0x48, 0x83, 0xc0, 0x01, //0x0000428f addq $1, %rax + 0x4c, 0x39, 0xe8, //0x00004293 cmpq %r13, %rax + 0x0f, 0x83, 0x11, 0x00, 0x00, 0x00, //0x00004296 jae LBB18_45 + 0x41, 0x8d, 0x50, 0x01, //0x0000429c leal $1(%r8), %edx + 0x41, 0x83, 0xf8, 0x12, //0x000042a0 cmpl $18, %r8d + 0x41, 0x89, 0xd0, //0x000042a4 movl %edx, %r8d + 0x0f, 0x8c, 0xc3, 0xff, 0xff, 0xff, //0x000042a7 jl LBB18_42 + //0x000042ad LBB18_45 + 0x4c, 0x39, 0xe8, //0x000042ad cmpq %r13, %rax + 0x0f, 0x83, 0xa9, 0x00, 0x00, 0x00, //0x000042b0 jae LBB18_57 + 0x41, 0x8a, 0x14, 0x07, //0x000042b6 movb (%r15,%rax), %dl + 0x8d, 0x72, 0xd0, //0x000042ba leal $-48(%rdx), %esi + 0x40, 0x80, 0xfe, 0x09, //0x000042bd cmpb $9, %sil + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x000042c1 ja LBB18_51 + 0x49, 0x8d, 0x75, 0xff, //0x000042c7 leaq $-1(%r13), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000042cb .p2align 4, 0x90 + //0x000042d0 LBB18_48 + 0x48, 0x39, 0xc6, //0x000042d0 cmpq %rax, %rsi + 0x0f, 0x84, 0x6f, 0x01, 0x00, 0x00, //0x000042d3 je LBB18_69 + 0x41, 0x0f, 0xb6, 0x54, 0x07, 0x01, //0x000042d9 movzbl $1(%r15,%rax), %edx + 0x8d, 0x7a, 0xd0, //0x000042df leal $-48(%rdx), %edi + 0x48, 0x83, 0xc0, 0x01, //0x000042e2 addq $1, %rax + 0x40, 0x80, 0xff, 0x09, //0x000042e6 cmpb $9, %dil + 0x0f, 0x86, 0xe0, 0xff, 0xff, 0xff, //0x000042ea jbe LBB18_48 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000042f0 movl $1, %r11d + //0x000042f6 LBB18_51 + 0x80, 0xca, 0x20, //0x000042f6 orb $32, %dl + 0x80, 0xfa, 0x65, //0x000042f9 cmpb $101, %dl + 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x000042fc jne LBB18_57 + 0x48, 0x8d, 0x50, 0x01, //0x00004302 leaq $1(%rax), %rdx + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x00004306 movq $8, (%r14) + 0x4c, 0x39, 0xea, //0x0000430d cmpq %r13, %rdx + 0x0f, 0x83, 0x26, 0x01, 0x00, 0x00, //0x00004310 jae LBB18_68 + 0x44, 0x89, 0x5d, 0xd4, //0x00004316 movl %r11d, $-44(%rbp) + 0x41, 0x8a, 0x34, 0x17, //0x0000431a movb (%r15,%rdx), %sil + 0x40, 0x80, 0xfe, 0x2d, //0x0000431e cmpb $45, %sil + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x00004322 je LBB18_55 + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00004328 movl $1, %r8d + 0x40, 0x80, 0xfe, 0x2b, //0x0000432e cmpb $43, %sil + 0x0f, 0x85, 0xad, 0x02, 0x00, 0x00, //0x00004332 jne LBB18_90 + //0x00004338 LBB18_55 + 0x48, 0x83, 0xc0, 0x02, //0x00004338 addq $2, %rax + 0x4c, 0x39, 0xe8, //0x0000433c cmpq %r13, %rax + 0x0f, 0x83, 0xf7, 0x00, 0x00, 0x00, //0x0000433f jae LBB18_68 + 0x31, 0xd2, //0x00004345 xorl %edx, %edx + 0x40, 0x80, 0xfe, 0x2b, //0x00004347 cmpb $43, %sil + 0x0f, 0x94, 0xc2, //0x0000434b sete %dl + 0x44, 0x8d, 0x04, 0x12, //0x0000434e leal (%rdx,%rdx), %r8d + 0x41, 0x83, 0xc0, 0xff, //0x00004352 addl $-1, %r8d + 0x41, 0x8a, 0x34, 0x07, //0x00004356 movb (%r15,%rax), %sil + 0xe9, 0x89, 0x02, 0x00, 0x00, //0x0000435a jmp LBB18_91 + //0x0000435f LBB18_57 + 0x89, 0xce, //0x0000435f movl %ecx, %esi + 0x49, 0x89, 0xc5, //0x00004361 movq %rax, %r13 + 0x80, 0x7d, 0xd4, 0x00, //0x00004364 cmpb $0, $-44(%rbp) + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00004368 je LBB18_62 + //0x0000436e LBB18_58 + 0x85, 0xf6, //0x0000436e testl %esi, %esi + 0x0f, 0x85, 0x25, 0x00, 0x00, 0x00, //0x00004370 jne LBB18_61 + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00004376 movabsq $-9223372036854775808, %rax + 0x49, 0x63, 0xca, //0x00004380 movslq %r10d, %rcx + 0x4d, 0x85, 0xe4, //0x00004383 testq %r12, %r12 + 0x0f, 0x89, 0xef, 0x00, 0x00, 0x00, //0x00004386 jns LBB18_72 + 0x4c, 0x89, 0xe2, //0x0000438c movq %r12, %rdx + 0x48, 0x21, 0xca, //0x0000438f andq %rcx, %rdx + 0x48, 0x39, 0xc2, //0x00004392 cmpq %rax, %rdx + 0x0f, 0x84, 0xe0, 0x00, 0x00, 0x00, //0x00004395 je LBB18_72 + //0x0000439b LBB18_61 + 0x49, 0xc7, 0x06, 0x08, 0x00, 0x00, 0x00, //0x0000439b movq $8, (%r14) + //0x000043a2 LBB18_62 + 0x48, 0xc7, 0x45, 0xb0, 0x00, 0x00, 0x00, 0x00, //0x000043a2 movq $0, $-80(%rbp) + 0x66, 0x49, 0x0f, 0x6e, 0xcc, //0x000043aa movq %r12, %xmm1 + 0x66, 0x0f, 0x62, 0x0d, 0x29, 0xfc, 0xff, 0xff, //0x000043af punpckldq $-983(%rip), %xmm1 /* LCPI18_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x0d, 0x31, 0xfc, 0xff, 0xff, //0x000043b7 subpd $-975(%rip), %xmm1 /* LCPI18_1+0(%rip) */ + 0x66, 0x0f, 0x28, 0xc1, //0x000043bf movapd %xmm1, %xmm0 + 0x66, 0x0f, 0x15, 0xc1, //0x000043c3 unpckhpd %xmm1, %xmm0 + 0xf2, 0x0f, 0x58, 0xc1, //0x000043c7 addsd %xmm1, %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x000043cb movsd %xmm0, $-64(%rbp) + 0x4c, 0x89, 0xe0, //0x000043d0 movq %r12, %rax + 0x48, 0xc1, 0xe8, 0x34, //0x000043d3 shrq $52, %rax + 0x0f, 0x85, 0x25, 0x01, 0x00, 0x00, //0x000043d7 jne LBB18_78 + 0x66, 0x48, 0x0f, 0x7e, 0xc1, //0x000043dd movq %xmm0, %rcx + 0x44, 0x89, 0xd0, //0x000043e2 movl %r10d, %eax + 0xc1, 0xe8, 0x1f, //0x000043e5 shrl $31, %eax + 0x48, 0xc1, 0xe0, 0x3f, //0x000043e8 shlq $63, %rax + 0x48, 0x09, 0xc8, //0x000043ec orq %rcx, %rax + 0x48, 0x89, 0x45, 0xc0, //0x000043ef movq %rax, $-64(%rbp) + 0x85, 0xf6, //0x000043f3 testl %esi, %esi + 0x0f, 0x84, 0xa8, 0x01, 0x00, 0x00, //0x000043f5 je LBB18_85 + 0x4d, 0x85, 0xe4, //0x000043fb testq %r12, %r12 + 0x0f, 0x84, 0x9f, 0x01, 0x00, 0x00, //0x000043fe je LBB18_85 + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x00004404 movq %rax, %xmm0 + 0x8d, 0x46, 0xff, //0x00004409 leal $-1(%rsi), %eax + 0x83, 0xf8, 0x24, //0x0000440c cmpl $36, %eax + 0x0f, 0x87, 0x4a, 0x00, 0x00, 0x00, //0x0000440f ja LBB18_70 + 0x83, 0xfe, 0x17, //0x00004415 cmpl $23, %esi + 0x0f, 0x8c, 0xa1, 0x00, 0x00, 0x00, //0x00004418 jl LBB18_73 + 0x8d, 0x46, 0xea, //0x0000441e leal $-22(%rsi), %eax + 0x48, 0x8d, 0x0d, 0x78, 0xf4, 0x00, 0x00, //0x00004421 leaq $62584(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x00004428 mulsd (%rcx,%rax,8), %xmm0 + 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x0000442d movsd %xmm0, $-64(%rbp) + 0xb8, 0x16, 0x00, 0x00, 0x00, //0x00004432 movl $22, %eax + 0xe9, 0x85, 0x00, 0x00, 0x00, //0x00004437 jmp LBB18_74 + //0x0000443c LBB18_68 + 0x48, 0x8b, 0x45, 0xc8, //0x0000443c movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x00004440 movq %r13, (%rax) + 0xe9, 0x57, 0xfc, 0xff, 0xff, //0x00004443 jmp LBB18_7 + //0x00004448 LBB18_69 + 0x41, 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00004448 movl $1, %r11d + 0x89, 0xce, //0x0000444e movl %ecx, %esi + 0x80, 0x7d, 0xd4, 0x00, //0x00004450 cmpb $0, $-44(%rbp) + 0x0f, 0x85, 0x14, 0xff, 0xff, 0xff, //0x00004454 jne LBB18_58 + 0xe9, 0x43, 0xff, 0xff, 0xff, //0x0000445a jmp LBB18_62 + //0x0000445f LBB18_70 + 0x83, 0xfe, 0xea, //0x0000445f cmpl $-22, %esi + 0x0f, 0x82, 0x9a, 0x00, 0x00, 0x00, //0x00004462 jb LBB18_78 + 0xf7, 0xde, //0x00004468 negl %esi + 0x48, 0x8d, 0x05, 0x2f, 0xf4, 0x00, 0x00, //0x0000446a leaq $62511(%rip), %rax /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x5e, 0x04, 0xf0, //0x00004471 divsd (%rax,%rsi,8), %xmm0 + 0xe9, 0x74, 0x00, 0x00, 0x00, //0x00004476 jmp LBB18_77 + //0x0000447b LBB18_72 + 0x66, 0x49, 0x0f, 0x6e, 0xc4, //0x0000447b movq %r12, %xmm0 + 0x4c, 0x0f, 0xaf, 0xe1, //0x00004480 imulq %rcx, %r12 + 0x66, 0x0f, 0x62, 0x05, 0x54, 0xfb, 0xff, 0xff, //0x00004484 punpckldq $-1196(%rip), %xmm0 /* LCPI18_0+0(%rip) */ + 0x66, 0x0f, 0x5c, 0x05, 0x5c, 0xfb, 0xff, 0xff, //0x0000448c subpd $-1188(%rip), %xmm0 /* LCPI18_1+0(%rip) */ + 0x4d, 0x89, 0x66, 0x10, //0x00004494 movq %r12, $16(%r14) + 0x66, 0x0f, 0x28, 0xc8, //0x00004498 movapd %xmm0, %xmm1 + 0x66, 0x0f, 0x15, 0xc8, //0x0000449c unpckhpd %xmm0, %xmm1 + 0xf2, 0x0f, 0x58, 0xc8, //0x000044a0 addsd %xmm0, %xmm1 + 0x48, 0x21, 0xc8, //0x000044a4 andq %rcx, %rax + 0x66, 0x48, 0x0f, 0x7e, 0xc9, //0x000044a7 movq %xmm1, %rcx + 0x48, 0x09, 0xc1, //0x000044ac orq %rax, %rcx + 0x49, 0x89, 0x4e, 0x08, //0x000044af movq %rcx, $8(%r14) + 0x48, 0x8b, 0x45, 0xc8, //0x000044b3 movq $-56(%rbp), %rax + 0x4c, 0x89, 0x28, //0x000044b7 movq %r13, (%rax) + 0xe9, 0xe7, 0xfb, 0xff, 0xff, //0x000044ba jmp LBB18_8 + //0x000044bf LBB18_73 + 0x89, 0xf0, //0x000044bf movl %esi, %eax + //0x000044c1 LBB18_74 + 0x66, 0x0f, 0x2e, 0x05, 0x37, 0xfb, 0xff, 0xff, //0x000044c1 ucomisd $-1225(%rip), %xmm0 /* LCPI18_2+0(%rip) */ + 0x0f, 0x87, 0x33, 0x00, 0x00, 0x00, //0x000044c9 ja LBB18_78 + 0xf2, 0x0f, 0x10, 0x0d, 0x31, 0xfb, 0xff, 0xff, //0x000044cf movsd $-1231(%rip), %xmm1 /* LCPI18_3+0(%rip) */ + 0x66, 0x0f, 0x2e, 0xc8, //0x000044d7 ucomisd %xmm0, %xmm1 + 0x0f, 0x87, 0x21, 0x00, 0x00, 0x00, //0x000044db ja LBB18_78 + 0x89, 0xc0, //0x000044e1 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0xb6, 0xf3, 0x00, 0x00, //0x000044e3 leaq $62390(%rip), %rcx /* _P10_TAB+0(%rip) */ + 0xf2, 0x0f, 0x59, 0x04, 0xc1, //0x000044ea mulsd (%rcx,%rax,8), %xmm0 + //0x000044ef LBB18_77 + 0x48, 0x8b, 0x5d, 0xc8, //0x000044ef movq $-56(%rbp), %rbx + 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x000044f3 movsd %xmm0, $-64(%rbp) + 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x000044f8 movq %xmm0, %rax + 0xe9, 0xa5, 0x00, 0x00, 0x00, //0x000044fd jmp LBB18_86 + //0x00004502 LBB18_78 + 0x44, 0x89, 0x5d, 0xd4, //0x00004502 movl %r11d, $-44(%rbp) + 0x48, 0x8d, 0x4d, 0xc0, //0x00004506 leaq $-64(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x0000450a movq %r12, %rdi + 0x44, 0x89, 0xd2, //0x0000450d movl %r10d, %edx + 0x44, 0x89, 0xd3, //0x00004510 movl %r10d, %ebx + 0x48, 0x89, 0x75, 0xa8, //0x00004513 movq %rsi, $-88(%rbp) + 0xe8, 0x24, 0xe6, 0xff, 0xff, //0x00004517 callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x0000451c testb %al, %al + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x0000451e je LBB18_83 + 0x48, 0x8b, 0x75, 0xa8, //0x00004524 movq $-88(%rbp), %rsi + 0x83, 0x7d, 0xd4, 0x00, //0x00004528 cmpl $0, $-44(%rbp) + 0x0f, 0x84, 0x6d, 0x00, 0x00, 0x00, //0x0000452c je LBB18_84 + 0x89, 0xda, //0x00004532 movl %ebx, %edx + 0x49, 0x83, 0xc4, 0x01, //0x00004534 addq $1, %r12 + 0x48, 0x8d, 0x4d, 0xb0, //0x00004538 leaq $-80(%rbp), %rcx + 0x4c, 0x89, 0xe7, //0x0000453c movq %r12, %rdi + 0xe8, 0xfc, 0xe5, 0xff, 0xff, //0x0000453f callq _atof_eisel_lemire64 + 0x84, 0xc0, //0x00004544 testb %al, %al + 0x0f, 0x84, 0x24, 0x00, 0x00, 0x00, //0x00004546 je LBB18_83 + 0xf2, 0x0f, 0x10, 0x4d, 0xb0, //0x0000454c movsd $-80(%rbp), %xmm1 + 0xf2, 0x0f, 0x10, 0x45, 0xc0, //0x00004551 movsd $-64(%rbp), %xmm0 + 0x66, 0x0f, 0x2e, 0xc8, //0x00004556 ucomisd %xmm0, %xmm1 + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000455a jne LBB18_83 + 0x0f, 0x8a, 0x0a, 0x00, 0x00, 0x00, //0x00004560 jp LBB18_83 + 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x00004566 movq %xmm0, %rax + 0xe9, 0x33, 0x00, 0x00, 0x00, //0x0000456b jmp LBB18_85 + //0x00004570 LBB18_83 + 0x48, 0x8b, 0x5d, 0xc8, //0x00004570 movq $-56(%rbp), %rbx + 0x48, 0x8b, 0x03, //0x00004574 movq (%rbx), %rax + 0x49, 0x01, 0xc7, //0x00004577 addq %rax, %r15 + 0x4c, 0x89, 0xee, //0x0000457a movq %r13, %rsi + 0x48, 0x29, 0xc6, //0x0000457d subq %rax, %rsi + 0x4c, 0x89, 0xff, //0x00004580 movq %r15, %rdi + 0x48, 0x8b, 0x55, 0x98, //0x00004583 movq $-104(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xa0, //0x00004587 movq $-96(%rbp), %rcx + 0xe8, 0x20, 0xeb, 0xff, 0xff, //0x0000458b callq _atof_native + 0xf2, 0x0f, 0x11, 0x45, 0xc0, //0x00004590 movsd %xmm0, $-64(%rbp) + 0x66, 0x48, 0x0f, 0x7e, 0xc0, //0x00004595 movq %xmm0, %rax + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x0000459a jmp LBB18_87 + //0x0000459f LBB18_84 + 0x48, 0x8b, 0x45, 0xc0, //0x0000459f movq $-64(%rbp), %rax + //0x000045a3 LBB18_85 + 0x48, 0x8b, 0x5d, 0xc8, //0x000045a3 movq $-56(%rbp), %rbx + //0x000045a7 LBB18_86 + 0x66, 0x48, 0x0f, 0x6e, 0xc0, //0x000045a7 movq %rax, %xmm0 + //0x000045ac LBB18_87 + 0x48, 0xb9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x000045ac movabsq $-9223372036854775808, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x000045b6 addq $-1, %rcx + 0x48, 0x21, 0xc1, //0x000045ba andq %rax, %rcx + 0x48, 0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x7f, //0x000045bd movabsq $9218868437227405312, %rax + 0x48, 0x39, 0xc1, //0x000045c7 cmpq %rax, %rcx + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x000045ca jne LBB18_89 + 0x49, 0xc7, 0x06, 0xf8, 0xff, 0xff, 0xff, //0x000045d0 movq $-8, (%r14) + //0x000045d7 LBB18_89 + 0xf2, 0x41, 0x0f, 0x11, 0x46, 0x08, //0x000045d7 movsd %xmm0, $8(%r14) + 0x4c, 0x89, 0x2b, //0x000045dd movq %r13, (%rbx) + 0xe9, 0xc1, 0xfa, 0xff, 0xff, //0x000045e0 jmp LBB18_8 + //0x000045e5 LBB18_90 + 0x48, 0x89, 0xd0, //0x000045e5 movq %rdx, %rax + //0x000045e8 LBB18_91 + 0x8d, 0x7e, 0xd0, //0x000045e8 leal $-48(%rsi), %edi + 0x40, 0x80, 0xff, 0x09, //0x000045eb cmpb $9, %dil + 0x0f, 0x86, 0x13, 0x00, 0x00, 0x00, //0x000045ef jbe LBB18_93 + //0x000045f5 LBB18_92 + 0x48, 0x8b, 0x4d, 0xc8, //0x000045f5 movq $-56(%rbp), %rcx + 0x48, 0x89, 0x01, //0x000045f9 movq %rax, (%rcx) + 0x49, 0xc7, 0x06, 0xfe, 0xff, 0xff, 0xff, //0x000045fc movq $-2, (%r14) + 0xe9, 0x9e, 0xfa, 0xff, 0xff, //0x00004603 jmp LBB18_8 + //0x00004608 LBB18_93 + 0x4c, 0x39, 0xe8, //0x00004608 cmpq %r13, %rax + 0x0f, 0x83, 0x4a, 0x00, 0x00, 0x00, //0x0000460b jae LBB18_99 + 0x40, 0x80, 0xff, 0x09, //0x00004611 cmpb $9, %dil + 0x0f, 0x87, 0x40, 0x00, 0x00, 0x00, //0x00004615 ja LBB18_99 + 0x4d, 0x8d, 0x4d, 0xff, //0x0000461b leaq $-1(%r13), %r9 + 0x31, 0xff, //0x0000461f xorl %edi, %edi + //0x00004621 LBB18_96 + 0x89, 0xfa, //0x00004621 movl %edi, %edx + 0x40, 0x0f, 0xb6, 0xf6, //0x00004623 movzbl %sil, %esi + 0x81, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00004627 cmpl $10000, %edi + 0x8d, 0x3c, 0x92, //0x0000462d leal (%rdx,%rdx,4), %edi + 0x8d, 0x7c, 0x7e, 0xd0, //0x00004630 leal $-48(%rsi,%rdi,2), %edi + 0x0f, 0x4d, 0xfa, //0x00004634 cmovgel %edx, %edi + 0x49, 0x39, 0xc1, //0x00004637 cmpq %rax, %r9 + 0x0f, 0x84, 0x22, 0x00, 0x00, 0x00, //0x0000463a je LBB18_100 + 0x41, 0x0f, 0xb6, 0x74, 0x07, 0x01, //0x00004640 movzbl $1(%r15,%rax), %esi + 0x8d, 0x56, 0xd0, //0x00004646 leal $-48(%rsi), %edx + 0x48, 0x83, 0xc0, 0x01, //0x00004649 addq $1, %rax + 0x80, 0xfa, 0x0a, //0x0000464d cmpb $10, %dl + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00004650 jb LBB18_96 + 0xe9, 0x0a, 0x00, 0x00, 0x00, //0x00004656 jmp LBB18_101 + //0x0000465b LBB18_99 + 0x31, 0xff, //0x0000465b xorl %edi, %edi + 0xe9, 0x03, 0x00, 0x00, 0x00, //0x0000465d jmp LBB18_101 + //0x00004662 LBB18_100 + 0x4c, 0x89, 0xe8, //0x00004662 movq %r13, %rax + //0x00004665 LBB18_101 + 0x48, 0x89, 0xfe, //0x00004665 movq %rdi, %rsi + 0x41, 0x0f, 0xaf, 0xf0, //0x00004668 imull %r8d, %esi + 0x01, 0xce, //0x0000466c addl %ecx, %esi + 0x49, 0x89, 0xc5, //0x0000466e movq %rax, %r13 + 0x44, 0x8b, 0x5d, 0xd4, //0x00004671 movl $-44(%rbp), %r11d + 0xe9, 0x28, 0xfd, 0xff, 0xff, //0x00004675 jmp LBB18_62 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000467a .p2align 4, 0x90 + //0x00004680 _vsigned + 0x55, //0x00004680 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004681 movq %rsp, %rbp + 0x53, //0x00004684 pushq %rbx + 0x48, 0x8b, 0x06, //0x00004685 movq (%rsi), %rax + 0x4c, 0x8b, 0x0f, //0x00004688 movq (%rdi), %r9 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000468b movq $8(%rdi), %r11 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x0000468f movq $9, (%rdx) + 0x0f, 0x57, 0xc0, //0x00004696 xorps %xmm0, %xmm0 + 0x0f, 0x11, 0x42, 0x08, //0x00004699 movups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x0e, //0x0000469d movq (%rsi), %rcx + 0x48, 0x89, 0x4a, 0x18, //0x000046a0 movq %rcx, $24(%rdx) + 0x4c, 0x39, 0xd8, //0x000046a4 cmpq %r11, %rax + 0x0f, 0x83, 0x45, 0x00, 0x00, 0x00, //0x000046a7 jae LBB19_1 + 0x41, 0x8a, 0x0c, 0x01, //0x000046ad movb (%r9,%rax), %cl + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x000046b1 movl $1, %r8d + 0x80, 0xf9, 0x2d, //0x000046b7 cmpb $45, %cl + 0x0f, 0x85, 0x18, 0x00, 0x00, 0x00, //0x000046ba jne LBB19_5 + 0x48, 0x83, 0xc0, 0x01, //0x000046c0 addq $1, %rax + 0x4c, 0x39, 0xd8, //0x000046c4 cmpq %r11, %rax + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x000046c7 jae LBB19_1 + 0x41, 0x8a, 0x0c, 0x01, //0x000046cd movb (%r9,%rax), %cl + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000046d1 movq $-1, %r8 + //0x000046d8 LBB19_5 + 0x8d, 0x79, 0xd0, //0x000046d8 leal $-48(%rcx), %edi + 0x40, 0x80, 0xff, 0x0a, //0x000046db cmpb $10, %dil + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000046df jb LBB19_7 + 0x48, 0x89, 0x06, //0x000046e5 movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfe, 0xff, 0xff, 0xff, //0x000046e8 movq $-2, (%rdx) + 0x5b, //0x000046ef popq %rbx + 0x5d, //0x000046f0 popq %rbp + 0xc3, //0x000046f1 retq + //0x000046f2 LBB19_1 + 0x4c, 0x89, 0x1e, //0x000046f2 movq %r11, (%rsi) + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000046f5 movq $-1, (%rdx) + 0x5b, //0x000046fc popq %rbx + 0x5d, //0x000046fd popq %rbp + 0xc3, //0x000046fe retq + //0x000046ff LBB19_7 + 0x80, 0xf9, 0x30, //0x000046ff cmpb $48, %cl + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00004702 jne LBB19_12 + 0x48, 0x8d, 0x78, 0x01, //0x00004708 leaq $1(%rax), %rdi + 0x4c, 0x39, 0xd8, //0x0000470c cmpq %r11, %rax + 0x0f, 0x83, 0x84, 0x00, 0x00, 0x00, //0x0000470f jae LBB19_11 + 0x41, 0x8a, 0x0c, 0x39, //0x00004715 movb (%r9,%rdi), %cl + 0x80, 0xc1, 0xd2, //0x00004719 addb $-46, %cl + 0x80, 0xf9, 0x37, //0x0000471c cmpb $55, %cl + 0x0f, 0x87, 0x74, 0x00, 0x00, 0x00, //0x0000471f ja LBB19_11 + 0x44, 0x0f, 0xb6, 0xd1, //0x00004725 movzbl %cl, %r10d + 0x48, 0xb9, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004729 movabsq $36028797027352577, %rcx + 0x4c, 0x0f, 0xa3, 0xd1, //0x00004733 btq %r10, %rcx + 0x0f, 0x83, 0x5c, 0x00, 0x00, 0x00, //0x00004737 jae LBB19_11 + //0x0000473d LBB19_12 + 0x4c, 0x39, 0xd8, //0x0000473d cmpq %r11, %rax + 0x4d, 0x89, 0xda, //0x00004740 movq %r11, %r10 + 0x4c, 0x0f, 0x47, 0xd0, //0x00004743 cmovaq %rax, %r10 + 0x31, 0xc9, //0x00004747 xorl %ecx, %ecx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004749 .p2align 4, 0x90 + //0x00004750 LBB19_13 + 0x49, 0x39, 0xc2, //0x00004750 cmpq %rax, %r10 + 0x0f, 0x84, 0x81, 0x00, 0x00, 0x00, //0x00004753 je LBB19_23 + 0x49, 0x0f, 0xbe, 0x3c, 0x01, //0x00004759 movsbq (%r9,%rax), %rdi + 0x8d, 0x5f, 0xd0, //0x0000475e leal $-48(%rdi), %ebx + 0x80, 0xfb, 0x09, //0x00004761 cmpb $9, %bl + 0x0f, 0x87, 0x35, 0x00, 0x00, 0x00, //0x00004764 ja LBB19_18 + 0x48, 0x6b, 0xc9, 0x0a, //0x0000476a imulq $10, %rcx, %rcx + 0x0f, 0x80, 0x14, 0x00, 0x00, 0x00, //0x0000476e jo LBB19_17 + 0x48, 0x83, 0xc0, 0x01, //0x00004774 addq $1, %rax + 0x83, 0xc7, 0xd0, //0x00004778 addl $-48, %edi + 0x49, 0x0f, 0xaf, 0xf8, //0x0000477b imulq %r8, %rdi + 0x48, 0x01, 0xf9, //0x0000477f addq %rdi, %rcx + 0x0f, 0x81, 0xc8, 0xff, 0xff, 0xff, //0x00004782 jno LBB19_13 + //0x00004788 LBB19_17 + 0x48, 0x83, 0xc0, 0xff, //0x00004788 addq $-1, %rax + 0x48, 0x89, 0x06, //0x0000478c movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfb, 0xff, 0xff, 0xff, //0x0000478f movq $-5, (%rdx) + 0x5b, //0x00004796 popq %rbx + 0x5d, //0x00004797 popq %rbp + 0xc3, //0x00004798 retq + //0x00004799 LBB19_11 + 0x48, 0x89, 0x3e, //0x00004799 movq %rdi, (%rsi) + 0x5b, //0x0000479c popq %rbx + 0x5d, //0x0000479d popq %rbp + 0xc3, //0x0000479e retq + //0x0000479f LBB19_18 + 0x4c, 0x39, 0xd8, //0x0000479f cmpq %r11, %rax + 0x0f, 0x83, 0x2f, 0x00, 0x00, 0x00, //0x000047a2 jae LBB19_22 + 0x41, 0x8a, 0x3c, 0x01, //0x000047a8 movb (%r9,%rax), %dil + 0x40, 0x80, 0xff, 0x2e, //0x000047ac cmpb $46, %dil + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000047b0 je LBB19_25 + 0x40, 0x80, 0xff, 0x45, //0x000047b6 cmpb $69, %dil + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000047ba je LBB19_25 + 0x40, 0x80, 0xff, 0x65, //0x000047c0 cmpb $101, %dil + 0x0f, 0x85, 0x0d, 0x00, 0x00, 0x00, //0x000047c4 jne LBB19_22 + //0x000047ca LBB19_25 + 0x48, 0x89, 0x06, //0x000047ca movq %rax, (%rsi) + 0x48, 0xc7, 0x02, 0xfa, 0xff, 0xff, 0xff, //0x000047cd movq $-6, (%rdx) + 0x5b, //0x000047d4 popq %rbx + 0x5d, //0x000047d5 popq %rbp + 0xc3, //0x000047d6 retq + //0x000047d7 LBB19_22 + 0x49, 0x89, 0xc2, //0x000047d7 movq %rax, %r10 + //0x000047da LBB19_23 + 0x4c, 0x89, 0x16, //0x000047da movq %r10, (%rsi) + 0x48, 0x89, 0x4a, 0x10, //0x000047dd movq %rcx, $16(%rdx) + 0x5b, //0x000047e1 popq %rbx + 0x5d, //0x000047e2 popq %rbp + 0xc3, //0x000047e3 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000047e4 .p2align 4, 0x90 + //0x000047f0 _vunsigned + 0x55, //0x000047f0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000047f1 movq %rsp, %rbp + 0x41, 0x56, //0x000047f4 pushq %r14 + 0x53, //0x000047f6 pushq %rbx + 0x49, 0x89, 0xd0, //0x000047f7 movq %rdx, %r8 + 0x48, 0x8b, 0x0e, //0x000047fa movq (%rsi), %rcx + 0x4c, 0x8b, 0x0f, //0x000047fd movq (%rdi), %r9 + 0x4c, 0x8b, 0x77, 0x08, //0x00004800 movq $8(%rdi), %r14 + 0x48, 0xc7, 0x02, 0x09, 0x00, 0x00, 0x00, //0x00004804 movq $9, (%rdx) + 0x0f, 0x57, 0xc0, //0x0000480b xorps %xmm0, %xmm0 + 0x0f, 0x11, 0x42, 0x08, //0x0000480e movups %xmm0, $8(%rdx) + 0x48, 0x8b, 0x06, //0x00004812 movq (%rsi), %rax + 0x48, 0x89, 0x42, 0x18, //0x00004815 movq %rax, $24(%rdx) + 0x4c, 0x39, 0xf1, //0x00004819 cmpq %r14, %rcx + 0x0f, 0x83, 0x1b, 0x00, 0x00, 0x00, //0x0000481c jae LBB20_1 + 0x41, 0x8a, 0x04, 0x09, //0x00004822 movb (%r9,%rcx), %al + 0x3c, 0x2d, //0x00004826 cmpb $45, %al + 0x0f, 0x85, 0x1e, 0x00, 0x00, 0x00, //0x00004828 jne LBB20_4 + //0x0000482e LBB20_3 + 0x48, 0x89, 0x0e, //0x0000482e movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfa, 0xff, 0xff, 0xff, //0x00004831 movq $-6, (%r8) + 0x5b, //0x00004838 popq %rbx + 0x41, 0x5e, //0x00004839 popq %r14 + 0x5d, //0x0000483b popq %rbp + 0xc3, //0x0000483c retq + //0x0000483d LBB20_1 + 0x4c, 0x89, 0x36, //0x0000483d movq %r14, (%rsi) + 0x49, 0xc7, 0x00, 0xff, 0xff, 0xff, 0xff, //0x00004840 movq $-1, (%r8) + 0x5b, //0x00004847 popq %rbx + 0x41, 0x5e, //0x00004848 popq %r14 + 0x5d, //0x0000484a popq %rbp + 0xc3, //0x0000484b retq + //0x0000484c LBB20_4 + 0x8d, 0x50, 0xd0, //0x0000484c leal $-48(%rax), %edx + 0x80, 0xfa, 0x0a, //0x0000484f cmpb $10, %dl + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00004852 jb LBB20_6 + 0x48, 0x89, 0x0e, //0x00004858 movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfe, 0xff, 0xff, 0xff, //0x0000485b movq $-2, (%r8) + 0x5b, //0x00004862 popq %rbx + 0x41, 0x5e, //0x00004863 popq %r14 + 0x5d, //0x00004865 popq %rbp + 0xc3, //0x00004866 retq + //0x00004867 LBB20_6 + 0x3c, 0x30, //0x00004867 cmpb $48, %al + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00004869 jne LBB20_10 + 0x41, 0x8a, 0x44, 0x09, 0x01, //0x0000486f movb $1(%r9,%rcx), %al + 0x04, 0xd2, //0x00004874 addb $-46, %al + 0x3c, 0x37, //0x00004876 cmpb $55, %al + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00004878 ja LBB20_9 + 0x0f, 0xb6, 0xc0, //0x0000487e movzbl %al, %eax + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x00004881 movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xc2, //0x0000488b btq %rax, %rdx + 0x0f, 0x83, 0xb0, 0x00, 0x00, 0x00, //0x0000488f jae LBB20_9 + //0x00004895 LBB20_10 + 0x49, 0x39, 0xce, //0x00004895 cmpq %rcx, %r14 + 0x49, 0x89, 0xca, //0x00004898 movq %rcx, %r10 + 0x4d, 0x0f, 0x47, 0xd6, //0x0000489b cmovaq %r14, %r10 + 0x31, 0xc0, //0x0000489f xorl %eax, %eax + 0x41, 0xbb, 0x0a, 0x00, 0x00, 0x00, //0x000048a1 movl $10, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000048a7 .p2align 4, 0x90 + //0x000048b0 LBB20_11 + 0x49, 0x39, 0xca, //0x000048b0 cmpq %rcx, %r10 + 0x0f, 0x84, 0x80, 0x00, 0x00, 0x00, //0x000048b3 je LBB20_22 + 0x41, 0x0f, 0xbe, 0x1c, 0x09, //0x000048b9 movsbl (%r9,%rcx), %ebx + 0x8d, 0x53, 0xd0, //0x000048be leal $-48(%rbx), %edx + 0x80, 0xfa, 0x09, //0x000048c1 cmpb $9, %dl + 0x0f, 0x87, 0x44, 0x00, 0x00, 0x00, //0x000048c4 ja LBB20_17 + 0x49, 0xf7, 0xe3, //0x000048ca mulq %r11 + 0x0f, 0x80, 0x28, 0x00, 0x00, 0x00, //0x000048cd jo LBB20_16 + 0x48, 0x83, 0xc1, 0x01, //0x000048d3 addq $1, %rcx + 0x83, 0xc3, 0xd0, //0x000048d7 addl $-48, %ebx + 0x31, 0xff, //0x000048da xorl %edi, %edi + 0x48, 0x01, 0xd8, //0x000048dc addq %rbx, %rax + 0x40, 0x0f, 0x92, 0xc7, //0x000048df setb %dil + 0x48, 0x89, 0xfa, //0x000048e3 movq %rdi, %rdx + 0x48, 0xf7, 0xda, //0x000048e6 negq %rdx + 0x48, 0x31, 0xd7, //0x000048e9 xorq %rdx, %rdi + 0x0f, 0x85, 0x09, 0x00, 0x00, 0x00, //0x000048ec jne LBB20_16 + 0x48, 0x85, 0xd2, //0x000048f2 testq %rdx, %rdx + 0x0f, 0x89, 0xb5, 0xff, 0xff, 0xff, //0x000048f5 jns LBB20_11 + //0x000048fb LBB20_16 + 0x48, 0x83, 0xc1, 0xff, //0x000048fb addq $-1, %rcx + 0x48, 0x89, 0x0e, //0x000048ff movq %rcx, (%rsi) + 0x49, 0xc7, 0x00, 0xfb, 0xff, 0xff, 0xff, //0x00004902 movq $-5, (%r8) + 0x5b, //0x00004909 popq %rbx + 0x41, 0x5e, //0x0000490a popq %r14 + 0x5d, //0x0000490c popq %rbp + 0xc3, //0x0000490d retq + //0x0000490e LBB20_17 + 0x4c, 0x39, 0xf1, //0x0000490e cmpq %r14, %rcx + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00004911 jae LBB20_21 + 0x41, 0x8a, 0x14, 0x09, //0x00004917 movb (%r9,%rcx), %dl + 0x80, 0xfa, 0x2e, //0x0000491b cmpb $46, %dl + 0x0f, 0x84, 0x0a, 0xff, 0xff, 0xff, //0x0000491e je LBB20_3 + 0x80, 0xfa, 0x45, //0x00004924 cmpb $69, %dl + 0x0f, 0x84, 0x01, 0xff, 0xff, 0xff, //0x00004927 je LBB20_3 + 0x80, 0xfa, 0x65, //0x0000492d cmpb $101, %dl + 0x0f, 0x84, 0xf8, 0xfe, 0xff, 0xff, //0x00004930 je LBB20_3 + //0x00004936 LBB20_21 + 0x49, 0x89, 0xca, //0x00004936 movq %rcx, %r10 + //0x00004939 LBB20_22 + 0x4c, 0x89, 0x16, //0x00004939 movq %r10, (%rsi) + 0x49, 0x89, 0x40, 0x10, //0x0000493c movq %rax, $16(%r8) + 0x5b, //0x00004940 popq %rbx + 0x41, 0x5e, //0x00004941 popq %r14 + 0x5d, //0x00004943 popq %rbp + 0xc3, //0x00004944 retq + //0x00004945 LBB20_9 + 0x48, 0x83, 0xc1, 0x01, //0x00004945 addq $1, %rcx + 0x48, 0x89, 0x0e, //0x00004949 movq %rcx, (%rsi) + 0x5b, //0x0000494c popq %rbx + 0x41, 0x5e, //0x0000494d popq %r14 + 0x5d, //0x0000494f popq %rbp + 0xc3, //0x00004950 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004951 .p2align 4, 0x00 + //0x00004960 LCPI21_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004960 .quad 1 + 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00004968 .quad 5 + //0x00004970 .p2align 4, 0x90 + //0x00004970 _skip_array + 0x55, //0x00004970 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004971 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00004974 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00004977 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000497a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000497d movaps $-36(%rip), %xmm0 /* LCPI21_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00004984 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00004987 movq %rax, %rdi + 0x5d, //0x0000498a popq %rbp + 0xe9, 0x00, 0x00, 0x00, 0x00, //0x0000498b jmp _fsm_exec + //0x00004990 .p2align 4, 0x90 + //0x00004990 _fsm_exec + 0x55, //0x00004990 pushq %rbp + 0x48, 0x89, 0xe5, //0x00004991 movq %rsp, %rbp + 0x41, 0x57, //0x00004994 pushq %r15 + 0x41, 0x56, //0x00004996 pushq %r14 + 0x41, 0x55, //0x00004998 pushq %r13 + 0x41, 0x54, //0x0000499a pushq %r12 + 0x53, //0x0000499c pushq %rbx + 0x48, 0x83, 0xec, 0x28, //0x0000499d subq $40, %rsp + 0x48, 0x89, 0x4d, 0xb0, //0x000049a1 movq %rcx, $-80(%rbp) + 0x48, 0x83, 0x3f, 0x00, //0x000049a5 cmpq $0, (%rdi) + 0x0f, 0x84, 0xfc, 0x04, 0x00, 0x00, //0x000049a9 je LBB22_86 + 0x49, 0x89, 0xd0, //0x000049af movq %rdx, %r8 + 0x49, 0x89, 0xfb, //0x000049b2 movq %rdi, %r11 + 0x48, 0x8d, 0x46, 0x08, //0x000049b5 leaq $8(%rsi), %rax + 0x48, 0x89, 0x45, 0xd0, //0x000049b9 movq %rax, $-48(%rbp) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x000049bd movq $-1, %r14 + 0x49, 0xbc, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000049c4 movabsq $4294977024, %r12 + 0x48, 0x89, 0x75, 0xc0, //0x000049ce movq %rsi, $-64(%rbp) + 0x48, 0x89, 0x7d, 0xb8, //0x000049d2 movq %rdi, $-72(%rbp) + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000049d6 jmp LBB22_5 + //0x000049db LBB22_2 + 0x48, 0x8d, 0x48, 0x03, //0x000049db leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x000049df movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x000049e2 testq %rax, %rax + 0x0f, 0x8e, 0xc7, 0x04, 0x00, 0x00, //0x000049e5 jle LBB22_87 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000049eb .p2align 4, 0x90 + //0x000049f0 LBB22_3 + 0x4d, 0x8b, 0x13, //0x000049f0 movq (%r11), %r10 + 0x4d, 0x89, 0xf7, //0x000049f3 movq %r14, %r15 + 0x4d, 0x85, 0xd2, //0x000049f6 testq %r10, %r10 + 0x0f, 0x84, 0xb3, 0x04, 0x00, 0x00, //0x000049f9 je LBB22_87 + //0x000049ff LBB22_5 + 0x4d, 0x89, 0xf1, //0x000049ff movq %r14, %r9 + 0x48, 0x8b, 0x3e, //0x00004a02 movq (%rsi), %rdi + 0x48, 0x8b, 0x4e, 0x08, //0x00004a05 movq $8(%rsi), %rcx + 0x49, 0x8b, 0x10, //0x00004a09 movq (%r8), %rdx + 0x48, 0x39, 0xca, //0x00004a0c cmpq %rcx, %rdx + 0x0f, 0x83, 0x2b, 0x00, 0x00, 0x00, //0x00004a0f jae LBB22_10 + 0x8a, 0x1c, 0x17, //0x00004a15 movb (%rdi,%rdx), %bl + 0x80, 0xfb, 0x0d, //0x00004a18 cmpb $13, %bl + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x00004a1b je LBB22_10 + 0x80, 0xfb, 0x20, //0x00004a21 cmpb $32, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a24 je LBB22_10 + 0x80, 0xc3, 0xf7, //0x00004a2a addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a2d cmpb $1, %bl + 0x0f, 0x86, 0x0a, 0x00, 0x00, 0x00, //0x00004a30 jbe LBB22_10 + 0x49, 0x89, 0xd6, //0x00004a36 movq %rdx, %r14 + 0xe9, 0xfa, 0x00, 0x00, 0x00, //0x00004a39 jmp LBB22_31 + 0x90, 0x90, //0x00004a3e .p2align 4, 0x90 + //0x00004a40 LBB22_10 + 0x4c, 0x8d, 0x72, 0x01, //0x00004a40 leaq $1(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004a44 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a47 jae LBB22_14 + 0x42, 0x8a, 0x1c, 0x37, //0x00004a4d movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004a51 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a54 je LBB22_14 + 0x80, 0xfb, 0x20, //0x00004a5a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a5d je LBB22_14 + 0x80, 0xc3, 0xf7, //0x00004a63 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a66 cmpb $1, %bl + 0x0f, 0x87, 0xc9, 0x00, 0x00, 0x00, //0x00004a69 ja LBB22_31 + 0x90, //0x00004a6f .p2align 4, 0x90 + //0x00004a70 LBB22_14 + 0x4c, 0x8d, 0x72, 0x02, //0x00004a70 leaq $2(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004a74 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004a77 jae LBB22_18 + 0x42, 0x8a, 0x1c, 0x37, //0x00004a7d movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004a81 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004a84 je LBB22_18 + 0x80, 0xfb, 0x20, //0x00004a8a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004a8d je LBB22_18 + 0x80, 0xc3, 0xf7, //0x00004a93 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004a96 cmpb $1, %bl + 0x0f, 0x87, 0x99, 0x00, 0x00, 0x00, //0x00004a99 ja LBB22_31 + 0x90, //0x00004a9f .p2align 4, 0x90 + //0x00004aa0 LBB22_18 + 0x4c, 0x8d, 0x72, 0x03, //0x00004aa0 leaq $3(%rdx), %r14 + 0x49, 0x39, 0xce, //0x00004aa4 cmpq %rcx, %r14 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00004aa7 jae LBB22_22 + 0x42, 0x8a, 0x1c, 0x37, //0x00004aad movb (%rdi,%r14), %bl + 0x80, 0xfb, 0x0d, //0x00004ab1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00004ab4 je LBB22_22 + 0x80, 0xfb, 0x20, //0x00004aba cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00004abd je LBB22_22 + 0x80, 0xc3, 0xf7, //0x00004ac3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00004ac6 cmpb $1, %bl + 0x0f, 0x87, 0x69, 0x00, 0x00, 0x00, //0x00004ac9 ja LBB22_31 + 0x90, //0x00004acf .p2align 4, 0x90 + //0x00004ad0 LBB22_22 + 0x48, 0x83, 0xc2, 0x04, //0x00004ad0 addq $4, %rdx + 0x48, 0x39, 0xd1, //0x00004ad4 cmpq %rdx, %rcx + 0x0f, 0x86, 0xcb, 0x03, 0x00, 0x00, //0x00004ad7 jbe LBB22_85 + 0x48, 0x39, 0xd1, //0x00004add cmpq %rdx, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00004ae0 je LBB22_28 + 0x48, 0x8d, 0x04, 0x0f, //0x00004ae6 leaq (%rdi,%rcx), %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004aea .p2align 4, 0x90 + //0x00004af0 LBB22_25 + 0x0f, 0xbe, 0x1c, 0x17, //0x00004af0 movsbl (%rdi,%rdx), %ebx + 0x83, 0xfb, 0x20, //0x00004af4 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00004af7 ja LBB22_30 + 0x49, 0x0f, 0xa3, 0xdc, //0x00004afd btq %rbx, %r12 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00004b01 jae LBB22_30 + 0x48, 0x83, 0xc2, 0x01, //0x00004b07 addq $1, %rdx + 0x48, 0x39, 0xd1, //0x00004b0b cmpq %rdx, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00004b0e jne LBB22_25 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00004b14 jmp LBB22_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00004b19 .p2align 4, 0x90 + //0x00004b20 LBB22_28 + 0x48, 0x01, 0xfa, //0x00004b20 addq %rdi, %rdx + 0x48, 0x89, 0xd0, //0x00004b23 movq %rdx, %rax + //0x00004b26 LBB22_29 + 0x48, 0x29, 0xf8, //0x00004b26 subq %rdi, %rax + 0x48, 0x89, 0xc2, //0x00004b29 movq %rax, %rdx + //0x00004b2c LBB22_30 + 0x49, 0x89, 0xd6, //0x00004b2c movq %rdx, %r14 + 0x48, 0x39, 0xca, //0x00004b2f cmpq %rcx, %rdx + 0x0f, 0x83, 0x73, 0x03, 0x00, 0x00, //0x00004b32 jae LBB22_86 + //0x00004b38 LBB22_31 + 0x49, 0x8d, 0x4e, 0x01, //0x00004b38 leaq $1(%r14), %rcx + 0x49, 0x89, 0x08, //0x00004b3c movq %rcx, (%r8) + 0x42, 0x0f, 0xbe, 0x0c, 0x37, //0x00004b3f movsbl (%rdi,%r14), %ecx + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004b44 movq $-1, %r15 + 0x85, 0xc9, //0x00004b4b testl %ecx, %ecx + 0x0f, 0x84, 0x5f, 0x03, 0x00, 0x00, //0x00004b4d je LBB22_87 + 0x4d, 0x8b, 0x2b, //0x00004b53 movq (%r11), %r13 + 0x4d, 0x8d, 0x55, 0xff, //0x00004b56 leaq $-1(%r13), %r10 + 0x43, 0x8b, 0x1c, 0xeb, //0x00004b5a movl (%r11,%r13,8), %ebx + 0x49, 0x83, 0xf9, 0xff, //0x00004b5e cmpq $-1, %r9 + 0x4d, 0x0f, 0x45, 0xf1, //0x00004b62 cmovneq %r9, %r14 + 0x83, 0xc3, 0xff, //0x00004b66 addl $-1, %ebx + 0x83, 0xfb, 0x05, //0x00004b69 cmpl $5, %ebx + 0x0f, 0x87, 0x27, 0x00, 0x00, 0x00, //0x00004b6c ja LBB22_37 + 0x48, 0x8d, 0x15, 0x8f, 0x04, 0x00, 0x00, //0x00004b72 leaq $1167(%rip), %rdx /* LJTI22_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x9a, //0x00004b79 movslq (%rdx,%rbx,4), %rax + 0x48, 0x01, 0xd0, //0x00004b7d addq %rdx, %rax + 0xff, 0xe0, //0x00004b80 jmpq *%rax + //0x00004b82 LBB22_34 + 0x83, 0xf9, 0x2c, //0x00004b82 cmpl $44, %ecx + 0x0f, 0x84, 0x6c, 0x01, 0x00, 0x00, //0x00004b85 je LBB22_53 + 0x83, 0xf9, 0x5d, //0x00004b8b cmpl $93, %ecx + 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x00004b8e je LBB22_36 + 0xe9, 0x56, 0x04, 0x00, 0x00, //0x00004b94 jmp LBB22_90 + //0x00004b99 LBB22_37 + 0x4d, 0x89, 0x13, //0x00004b99 movq %r10, (%r11) + 0x83, 0xf9, 0x7b, //0x00004b9c cmpl $123, %ecx + 0x0f, 0x86, 0xba, 0x00, 0x00, 0x00, //0x00004b9f jbe LBB22_49 + 0xe9, 0x45, 0x04, 0x00, 0x00, //0x00004ba5 jmp LBB22_90 + //0x00004baa LBB22_38 + 0x83, 0xf9, 0x2c, //0x00004baa cmpl $44, %ecx + 0x0f, 0x85, 0x27, 0x01, 0x00, 0x00, //0x00004bad jne LBB22_39 + 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004bb3 cmpq $4095, %r13 + 0x0f, 0x8f, 0x04, 0x03, 0x00, 0x00, //0x00004bba jg LBB22_92 + 0x49, 0x8d, 0x45, 0x01, //0x00004bc0 leaq $1(%r13), %rax + 0x49, 0x89, 0x03, //0x00004bc4 movq %rax, (%r11) + 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x03, 0x00, 0x00, 0x00, //0x00004bc7 movq $3, $8(%r11,%r13,8) + 0xe9, 0x1b, 0xfe, 0xff, 0xff, //0x00004bd0 jmp LBB22_3 + //0x00004bd5 LBB22_40 + 0x80, 0xf9, 0x22, //0x00004bd5 cmpb $34, %cl + 0x0f, 0x85, 0x11, 0x04, 0x00, 0x00, //0x00004bd8 jne LBB22_90 + 0x4b, 0xc7, 0x04, 0xeb, 0x04, 0x00, 0x00, 0x00, //0x00004bde movq $4, (%r11,%r13,8) + //0x00004be6 LBB22_42 + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004be6 movq $-1, $-56(%rbp) + 0x4d, 0x8b, 0x28, //0x00004bee movq (%r8), %r13 + 0x48, 0x89, 0xf7, //0x00004bf1 movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004bf4 movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc8, //0x00004bf7 leaq $-56(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004bfb movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x00004bff movq %r8, %rbx + 0xe8, 0xa9, 0xee, 0xff, 0xff, //0x00004c02 callq _advance_string + 0x49, 0x89, 0xc7, //0x00004c07 movq %rax, %r15 + 0x48, 0x85, 0xc0, //0x00004c0a testq %rax, %rax + 0x0f, 0x88, 0xbd, 0x02, 0x00, 0x00, //0x00004c0d js LBB22_88 + 0x4c, 0x89, 0x3b, //0x00004c13 movq %r15, (%rbx) + 0x4d, 0x85, 0xed, //0x00004c16 testq %r13, %r13 + 0x49, 0x89, 0xd8, //0x00004c19 movq %rbx, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x00004c1c movq $-64(%rbp), %rsi + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c20 movq $-72(%rbp), %r11 + 0x0f, 0x8f, 0xc6, 0xfd, 0xff, 0xff, //0x00004c24 jg LBB22_3 + 0xe9, 0xb9, 0x02, 0x00, 0x00, //0x00004c2a jmp LBB22_44 + //0x00004c2f LBB22_45 + 0x80, 0xf9, 0x3a, //0x00004c2f cmpb $58, %cl + 0x0f, 0x85, 0xb7, 0x03, 0x00, 0x00, //0x00004c32 jne LBB22_90 + 0x4b, 0xc7, 0x04, 0xeb, 0x00, 0x00, 0x00, 0x00, //0x00004c38 movq $0, (%r11,%r13,8) + 0xe9, 0xab, 0xfd, 0xff, 0xff, //0x00004c40 jmp LBB22_3 + //0x00004c45 LBB22_47 + 0x80, 0xf9, 0x5d, //0x00004c45 cmpb $93, %cl + 0x0f, 0x84, 0x95, 0x00, 0x00, 0x00, //0x00004c48 je LBB22_36 + 0x4b, 0xc7, 0x04, 0xeb, 0x01, 0x00, 0x00, 0x00, //0x00004c4e movq $1, (%r11,%r13,8) + 0x83, 0xf9, 0x7b, //0x00004c56 cmpl $123, %ecx + 0x0f, 0x87, 0x90, 0x03, 0x00, 0x00, //0x00004c59 ja LBB22_90 + //0x00004c5f LBB22_49 + 0x89, 0xc8, //0x00004c5f movl %ecx, %eax + 0x48, 0x8d, 0x0d, 0xb8, 0x03, 0x00, 0x00, //0x00004c61 leaq $952(%rip), %rcx /* LJTI22_1+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00004c68 movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00004c6c addq %rcx, %rax + 0xff, 0xe0, //0x00004c6f jmpq *%rax + //0x00004c71 LBB22_52 + 0x49, 0x8b, 0x18, //0x00004c71 movq (%r8), %rbx + 0x4c, 0x8d, 0x7b, 0xff, //0x00004c74 leaq $-1(%rbx), %r15 + 0x48, 0x01, 0xdf, //0x00004c78 addq %rbx, %rdi + 0x48, 0x83, 0xc7, 0xff, //0x00004c7b addq $-1, %rdi + 0x48, 0x8b, 0x45, 0xd0, //0x00004c7f movq $-48(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004c83 movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004c86 subq %r15, %rsi + 0x4d, 0x89, 0xc5, //0x00004c89 movq %r8, %r13 + 0xe8, 0xef, 0x06, 0x00, 0x00, //0x00004c8c callq _do_skip_number + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004c91 movq $-72(%rbp), %r11 + 0x48, 0x8b, 0x75, 0xc0, //0x00004c95 movq $-64(%rbp), %rsi + 0x4d, 0x89, 0xe8, //0x00004c99 movq %r13, %r8 + 0x48, 0x8d, 0x48, 0xff, //0x00004c9c leaq $-1(%rax), %rcx + 0x48, 0xc7, 0xc2, 0xfe, 0xff, 0xff, 0xff, //0x00004ca0 movq $-2, %rdx + 0x48, 0x29, 0xc2, //0x00004ca7 subq %rax, %rdx + 0x48, 0x85, 0xc0, //0x00004caa testq %rax, %rax + 0x48, 0x0f, 0x49, 0xd1, //0x00004cad cmovnsq %rcx, %rdx + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00004cb1 movq $-2, %rax + 0x4c, 0x0f, 0x48, 0xf8, //0x00004cb8 cmovsq %rax, %r15 + 0x48, 0x01, 0xda, //0x00004cbc addq %rbx, %rdx + 0x49, 0x89, 0x55, 0x00, //0x00004cbf movq %rdx, (%r13) + 0x4d, 0x85, 0xff, //0x00004cc3 testq %r15, %r15 + 0x0f, 0x89, 0x24, 0xfd, 0xff, 0xff, //0x00004cc6 jns LBB22_3 + 0xe9, 0xe1, 0x01, 0x00, 0x00, //0x00004ccc jmp LBB22_87 + //0x00004cd1 LBB22_50 + 0x83, 0xf9, 0x22, //0x00004cd1 cmpl $34, %ecx + 0x0f, 0x84, 0x3f, 0x00, 0x00, 0x00, //0x00004cd4 je LBB22_57 + //0x00004cda LBB22_39 + 0x83, 0xf9, 0x7d, //0x00004cda cmpl $125, %ecx + 0x0f, 0x85, 0x0c, 0x03, 0x00, 0x00, //0x00004cdd jne LBB22_90 + //0x00004ce3 LBB22_36 + 0x4d, 0x89, 0x13, //0x00004ce3 movq %r10, (%r11) + 0x4d, 0x89, 0xf7, //0x00004ce6 movq %r14, %r15 + 0x4d, 0x85, 0xd2, //0x00004ce9 testq %r10, %r10 + 0x0f, 0x85, 0x0d, 0xfd, 0xff, 0xff, //0x00004cec jne LBB22_5 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00004cf2 jmp LBB22_87 + //0x00004cf7 LBB22_53 + 0x49, 0x81, 0xfd, 0xff, 0x0f, 0x00, 0x00, //0x00004cf7 cmpq $4095, %r13 + 0x0f, 0x8f, 0xc0, 0x01, 0x00, 0x00, //0x00004cfe jg LBB22_92 + 0x49, 0x8d, 0x45, 0x01, //0x00004d04 leaq $1(%r13), %rax + 0x49, 0x89, 0x03, //0x00004d08 movq %rax, (%r11) + 0x4b, 0xc7, 0x44, 0xeb, 0x08, 0x00, 0x00, 0x00, 0x00, //0x00004d0b movq $0, $8(%r11,%r13,8) + 0xe9, 0xd7, 0xfc, 0xff, 0xff, //0x00004d14 jmp LBB22_3 + //0x00004d19 LBB22_57 + 0x4b, 0xc7, 0x04, 0xeb, 0x02, 0x00, 0x00, 0x00, //0x00004d19 movq $2, (%r11,%r13,8) + 0x48, 0xc7, 0x45, 0xc8, 0xff, 0xff, 0xff, 0xff, //0x00004d21 movq $-1, $-56(%rbp) + 0x4d, 0x8b, 0x28, //0x00004d29 movq (%r8), %r13 + 0x48, 0x89, 0xf7, //0x00004d2c movq %rsi, %rdi + 0x4c, 0x89, 0xee, //0x00004d2f movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xc8, //0x00004d32 leaq $-56(%rbp), %rdx + 0x48, 0x8b, 0x4d, 0xb0, //0x00004d36 movq $-80(%rbp), %rcx + 0x4c, 0x89, 0xc3, //0x00004d3a movq %r8, %rbx + 0xe8, 0x6e, 0xed, 0xff, 0xff, //0x00004d3d callq _advance_string + 0x49, 0x89, 0xc7, //0x00004d42 movq %rax, %r15 + 0x48, 0x85, 0xc0, //0x00004d45 testq %rax, %rax + 0x0f, 0x88, 0x82, 0x01, 0x00, 0x00, //0x00004d48 js LBB22_88 + 0x4c, 0x89, 0x3b, //0x00004d4e movq %r15, (%rbx) + 0x4d, 0x85, 0xed, //0x00004d51 testq %r13, %r13 + 0x0f, 0x8e, 0x8e, 0x01, 0x00, 0x00, //0x00004d54 jle LBB22_44 + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004d5a movq $-72(%rbp), %r11 + 0x49, 0x8b, 0x03, //0x00004d5e movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004d61 cmpq $4095, %rax + 0x0f, 0x8f, 0x57, 0x01, 0x00, 0x00, //0x00004d67 jg LBB22_92 + 0x49, 0x89, 0xd8, //0x00004d6d movq %rbx, %r8 + 0x48, 0x8d, 0x48, 0x01, //0x00004d70 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004d74 movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x04, 0x00, 0x00, 0x00, //0x00004d77 movq $4, $8(%r11,%rax,8) + 0x48, 0x8b, 0x75, 0xc0, //0x00004d80 movq $-64(%rbp), %rsi + 0xe9, 0x67, 0xfc, 0xff, 0xff, //0x00004d84 jmp LBB22_3 + //0x00004d89 LBB22_61 + 0x4d, 0x8b, 0x38, //0x00004d89 movq (%r8), %r15 + 0x4c, 0x01, 0xff, //0x00004d8c addq %r15, %rdi + 0x48, 0x8b, 0x45, 0xd0, //0x00004d8f movq $-48(%rbp), %rax + 0x48, 0x8b, 0x30, //0x00004d93 movq (%rax), %rsi + 0x4c, 0x29, 0xfe, //0x00004d96 subq %r15, %rsi + 0x4c, 0x89, 0xc3, //0x00004d99 movq %r8, %rbx + 0xe8, 0xdf, 0x05, 0x00, 0x00, //0x00004d9c callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00004da1 testq %rax, %rax + 0x0f, 0x88, 0x52, 0x01, 0x00, 0x00, //0x00004da4 js LBB22_89 + 0x4c, 0x01, 0xf8, //0x00004daa addq %r15, %rax + 0x48, 0x89, 0x03, //0x00004dad movq %rax, (%rbx) + 0x4d, 0x85, 0xff, //0x00004db0 testq %r15, %r15 + 0x49, 0x89, 0xd8, //0x00004db3 movq %rbx, %r8 + 0x48, 0x8b, 0x75, 0xc0, //0x00004db6 movq $-64(%rbp), %rsi + 0x4c, 0x8b, 0x5d, 0xb8, //0x00004dba movq $-72(%rbp), %r11 + 0x0f, 0x8f, 0x2c, 0xfc, 0xff, 0xff, //0x00004dbe jg LBB22_3 + 0xe9, 0x93, 0x01, 0x00, 0x00, //0x00004dc4 jmp LBB22_63 + //0x00004dc9 LBB22_64 + 0x49, 0x8b, 0x03, //0x00004dc9 movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004dcc cmpq $4095, %rax + 0x0f, 0x8f, 0xec, 0x00, 0x00, 0x00, //0x00004dd2 jg LBB22_92 + 0x48, 0x8d, 0x48, 0x01, //0x00004dd8 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004ddc movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x05, 0x00, 0x00, 0x00, //0x00004ddf movq $5, $8(%r11,%rax,8) + 0xe9, 0x03, 0xfc, 0xff, 0xff, //0x00004de8 jmp LBB22_3 + //0x00004ded LBB22_66 + 0x49, 0x8b, 0x00, //0x00004ded movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004df0 movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004df4 movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfc, //0x00004df7 leaq $-4(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004dfb cmpq %rdx, %rax + 0x0f, 0x87, 0xf0, 0x00, 0x00, 0x00, //0x00004dfe ja LBB22_91 + 0x8b, 0x0c, 0x07, //0x00004e04 movl (%rdi,%rax), %ecx + 0x81, 0xf9, 0x61, 0x6c, 0x73, 0x65, //0x00004e07 cmpl $1702063201, %ecx + 0x0f, 0x85, 0xf7, 0x00, 0x00, 0x00, //0x00004e0d jne LBB22_93 + 0x48, 0x8d, 0x48, 0x04, //0x00004e13 leaq $4(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004e17 movq %rcx, (%r8) + 0x48, 0x85, 0xc0, //0x00004e1a testq %rax, %rax + 0x0f, 0x8f, 0xcd, 0xfb, 0xff, 0xff, //0x00004e1d jg LBB22_3 + 0xe9, 0xd3, 0x01, 0x00, 0x00, //0x00004e23 jmp LBB22_69 + //0x00004e28 LBB22_70 + 0x49, 0x8b, 0x00, //0x00004e28 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004e2b movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004e2f movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00004e32 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004e36 cmpq %rdx, %rax + 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00004e39 ja LBB22_91 + 0x4c, 0x8d, 0x78, 0xff, //0x00004e3f leaq $-1(%rax), %r15 + 0x81, 0x7c, 0x07, 0xff, 0x6e, 0x75, 0x6c, 0x6c, //0x00004e43 cmpl $1819047278, $-1(%rdi,%rax) + 0x0f, 0x84, 0x8a, 0xfb, 0xff, 0xff, //0x00004e4b je LBB22_2 + 0xe9, 0x0f, 0x01, 0x00, 0x00, //0x00004e51 jmp LBB22_72 + //0x00004e56 LBB22_76 + 0x49, 0x8b, 0x00, //0x00004e56 movq (%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00004e59 movq $-48(%rbp), %rcx + 0x48, 0x8b, 0x09, //0x00004e5d movq (%rcx), %rcx + 0x48, 0x8d, 0x51, 0xfd, //0x00004e60 leaq $-3(%rcx), %rdx + 0x48, 0x39, 0xd0, //0x00004e64 cmpq %rdx, %rax + 0x0f, 0x87, 0x87, 0x00, 0x00, 0x00, //0x00004e67 ja LBB22_91 + 0x4c, 0x8d, 0x78, 0xff, //0x00004e6d leaq $-1(%rax), %r15 + 0x81, 0x7c, 0x07, 0xff, 0x74, 0x72, 0x75, 0x65, //0x00004e71 cmpl $1702195828, $-1(%rdi,%rax) + 0x0f, 0x84, 0x5c, 0xfb, 0xff, 0xff, //0x00004e79 je LBB22_2 + 0xe9, 0x25, 0x01, 0x00, 0x00, //0x00004e7f jmp LBB22_78 + //0x00004e84 LBB22_83 + 0x49, 0x8b, 0x03, //0x00004e84 movq (%r11), %rax + 0x48, 0x3d, 0xff, 0x0f, 0x00, 0x00, //0x00004e87 cmpq $4095, %rax + 0x0f, 0x8f, 0x31, 0x00, 0x00, 0x00, //0x00004e8d jg LBB22_92 + 0x48, 0x8d, 0x48, 0x01, //0x00004e93 leaq $1(%rax), %rcx + 0x49, 0x89, 0x0b, //0x00004e97 movq %rcx, (%r11) + 0x49, 0xc7, 0x44, 0xc3, 0x08, 0x06, 0x00, 0x00, 0x00, //0x00004e9a movq $6, $8(%r11,%rax,8) + 0xe9, 0x48, 0xfb, 0xff, 0xff, //0x00004ea3 jmp LBB22_3 + //0x00004ea8 LBB22_85 + 0x49, 0x89, 0x10, //0x00004ea8 movq %rdx, (%r8) + //0x00004eab LBB22_86 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x00004eab movq $-1, %r15 + //0x00004eb2 LBB22_87 + 0x4c, 0x89, 0xf8, //0x00004eb2 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x28, //0x00004eb5 addq $40, %rsp + 0x5b, //0x00004eb9 popq %rbx + 0x41, 0x5c, //0x00004eba popq %r12 + 0x41, 0x5d, //0x00004ebc popq %r13 + 0x41, 0x5e, //0x00004ebe popq %r14 + 0x41, 0x5f, //0x00004ec0 popq %r15 + 0x5d, //0x00004ec2 popq %rbp + 0xc3, //0x00004ec3 retq + //0x00004ec4 LBB22_92 + 0x49, 0xc7, 0xc7, 0xf9, 0xff, 0xff, 0xff, //0x00004ec4 movq $-7, %r15 + 0xe9, 0xe2, 0xff, 0xff, 0xff, //0x00004ecb jmp LBB22_87 + //0x00004ed0 LBB22_88 + 0x49, 0x83, 0xff, 0xff, //0x00004ed0 cmpq $-1, %r15 + 0x48, 0x8d, 0x45, 0xc8, //0x00004ed4 leaq $-56(%rbp), %rax + 0x48, 0x0f, 0x44, 0x45, 0xd0, //0x00004ed8 cmoveq $-48(%rbp), %rax + 0x48, 0x8b, 0x00, //0x00004edd movq (%rax), %rax + 0x48, 0x89, 0x03, //0x00004ee0 movq %rax, (%rbx) + 0xe9, 0xca, 0xff, 0xff, 0xff, //0x00004ee3 jmp LBB22_87 + //0x00004ee8 LBB22_44 + 0x49, 0x83, 0xc5, 0xff, //0x00004ee8 addq $-1, %r13 + 0x4d, 0x89, 0xef, //0x00004eec movq %r13, %r15 + 0xe9, 0xbe, 0xff, 0xff, 0xff, //0x00004eef jmp LBB22_87 + //0x00004ef4 LBB22_91 + 0x49, 0x89, 0x08, //0x00004ef4 movq %rcx, (%r8) + 0xe9, 0xb6, 0xff, 0xff, 0xff, //0x00004ef7 jmp LBB22_87 + //0x00004efc LBB22_89 + 0x48, 0xf7, 0xd0, //0x00004efc notq %rax + 0x49, 0x01, 0xc7, //0x00004eff addq %rax, %r15 + 0x4c, 0x89, 0x3b, //0x00004f02 movq %r15, (%rbx) + 0xe9, 0xe5, 0x00, 0x00, 0x00, //0x00004f05 jmp LBB22_90 + //0x00004f0a LBB22_93 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004f0a movq $-2, %r15 + 0x80, 0xf9, 0x61, //0x00004f11 cmpb $97, %cl + 0x0f, 0x85, 0x98, 0xff, 0xff, 0xff, //0x00004f14 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x01, //0x00004f1a leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f1e movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f21 cmpb $108, $1(%rdi,%rax) + 0x0f, 0x85, 0x86, 0xff, 0xff, 0xff, //0x00004f26 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x02, //0x00004f2c leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f30 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x73, //0x00004f33 cmpb $115, $2(%rdi,%rax) + 0x0f, 0x85, 0x74, 0xff, 0xff, 0xff, //0x00004f38 jne LBB22_87 + 0x48, 0x8d, 0x48, 0x03, //0x00004f3e leaq $3(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f42 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x03, 0x65, //0x00004f45 cmpb $101, $3(%rdi,%rax) + 0x0f, 0x85, 0x62, 0xff, 0xff, 0xff, //0x00004f4a jne LBB22_87 + 0x48, 0x83, 0xc0, 0x04, //0x00004f50 addq $4, %rax + 0x49, 0x89, 0x00, //0x00004f54 movq %rax, (%r8) + 0xe9, 0x56, 0xff, 0xff, 0xff, //0x00004f57 jmp LBB22_87 + //0x00004f5c LBB22_63 + 0x49, 0x83, 0xc7, 0xff, //0x00004f5c addq $-1, %r15 + 0xe9, 0x4d, 0xff, 0xff, 0xff, //0x00004f60 jmp LBB22_87 + //0x00004f65 LBB22_72 + 0x4d, 0x89, 0x38, //0x00004f65 movq %r15, (%r8) + 0x42, 0x80, 0x3c, 0x3f, 0x6e, //0x00004f68 cmpb $110, (%rdi,%r15) + 0x0f, 0x85, 0x7c, 0x00, 0x00, 0x00, //0x00004f6d jne LBB22_90 + 0x49, 0x89, 0x00, //0x00004f73 movq %rax, (%r8) + 0x80, 0x3c, 0x07, 0x75, //0x00004f76 cmpb $117, (%rdi,%rax) + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00004f7a jne LBB22_90 + 0x48, 0x8d, 0x48, 0x01, //0x00004f80 leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f84 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x6c, //0x00004f87 cmpb $108, $1(%rdi,%rax) + 0x0f, 0x85, 0x5d, 0x00, 0x00, 0x00, //0x00004f8c jne LBB22_90 + 0x48, 0x8d, 0x48, 0x02, //0x00004f92 leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004f96 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x6c, //0x00004f99 cmpb $108, $2(%rdi,%rax) + 0x0f, 0x84, 0x44, 0x00, 0x00, 0x00, //0x00004f9e je LBB22_82 + 0xe9, 0x46, 0x00, 0x00, 0x00, //0x00004fa4 jmp LBB22_90 + //0x00004fa9 LBB22_78 + 0x4d, 0x89, 0x38, //0x00004fa9 movq %r15, (%r8) + 0x42, 0x80, 0x3c, 0x3f, 0x74, //0x00004fac cmpb $116, (%rdi,%r15) + 0x0f, 0x85, 0x38, 0x00, 0x00, 0x00, //0x00004fb1 jne LBB22_90 + 0x49, 0x89, 0x00, //0x00004fb7 movq %rax, (%r8) + 0x80, 0x3c, 0x07, 0x72, //0x00004fba cmpb $114, (%rdi,%rax) + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x00004fbe jne LBB22_90 + 0x48, 0x8d, 0x48, 0x01, //0x00004fc4 leaq $1(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004fc8 movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x01, 0x75, //0x00004fcb cmpb $117, $1(%rdi,%rax) + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00004fd0 jne LBB22_90 + 0x48, 0x8d, 0x48, 0x02, //0x00004fd6 leaq $2(%rax), %rcx + 0x49, 0x89, 0x08, //0x00004fda movq %rcx, (%r8) + 0x80, 0x7c, 0x07, 0x02, 0x65, //0x00004fdd cmpb $101, $2(%rdi,%rax) + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00004fe2 jne LBB22_90 + //0x00004fe8 LBB22_82 + 0x48, 0x83, 0xc0, 0x03, //0x00004fe8 addq $3, %rax + 0x49, 0x89, 0x00, //0x00004fec movq %rax, (%r8) + //0x00004fef LBB22_90 + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x00004fef movq $-2, %r15 + 0xe9, 0xb7, 0xfe, 0xff, 0xff, //0x00004ff6 jmp LBB22_87 + //0x00004ffb LBB22_69 + 0x48, 0x83, 0xc0, 0xff, //0x00004ffb addq $-1, %rax + 0x49, 0x89, 0xc7, //0x00004fff movq %rax, %r15 + 0xe9, 0xab, 0xfe, 0xff, 0xff, //0x00005002 jmp LBB22_87 + 0x90, //0x00005007 .p2align 2, 0x90 + // // .set L22_0_set_34, LBB22_34-LJTI22_0 + // // .set L22_0_set_38, LBB22_38-LJTI22_0 + // // .set L22_0_set_40, LBB22_40-LJTI22_0 + // // .set L22_0_set_45, LBB22_45-LJTI22_0 + // // .set L22_0_set_47, LBB22_47-LJTI22_0 + // // .set L22_0_set_50, LBB22_50-LJTI22_0 + //0x00005008 LJTI22_0 + 0x7a, 0xfb, 0xff, 0xff, //0x00005008 .long L22_0_set_34 + 0xa2, 0xfb, 0xff, 0xff, //0x0000500c .long L22_0_set_38 + 0xcd, 0xfb, 0xff, 0xff, //0x00005010 .long L22_0_set_40 + 0x27, 0xfc, 0xff, 0xff, //0x00005014 .long L22_0_set_45 + 0x3d, 0xfc, 0xff, 0xff, //0x00005018 .long L22_0_set_47 + 0xc9, 0xfc, 0xff, 0xff, //0x0000501c .long L22_0_set_50 + // // .set L22_1_set_87, LBB22_87-LJTI22_1 + // // .set L22_1_set_90, LBB22_90-LJTI22_1 + // // .set L22_1_set_42, LBB22_42-LJTI22_1 + // // .set L22_1_set_61, LBB22_61-LJTI22_1 + // // .set L22_1_set_52, LBB22_52-LJTI22_1 + // // .set L22_1_set_64, LBB22_64-LJTI22_1 + // // .set L22_1_set_66, LBB22_66-LJTI22_1 + // // .set L22_1_set_70, LBB22_70-LJTI22_1 + // // .set L22_1_set_76, LBB22_76-LJTI22_1 + // // .set L22_1_set_83, LBB22_83-LJTI22_1 + //0x00005020 LJTI22_1 + 0x92, 0xfe, 0xff, 0xff, //0x00005020 .long L22_1_set_87 + 0xcf, 0xff, 0xff, 0xff, //0x00005024 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005028 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000502c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005030 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005034 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005038 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000503c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005040 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005044 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005048 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000504c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005050 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005054 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005058 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000505c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005060 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005064 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005068 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000506c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005070 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005074 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005078 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000507c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005080 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005084 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005088 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000508c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005090 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005094 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005098 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000509c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050a0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050a4 .long L22_1_set_90 + 0xc6, 0xfb, 0xff, 0xff, //0x000050a8 .long L22_1_set_42 + 0xcf, 0xff, 0xff, 0xff, //0x000050ac .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050b8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050bc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050c0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050c4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050c8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050cc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050d0 .long L22_1_set_90 + 0x69, 0xfd, 0xff, 0xff, //0x000050d4 .long L22_1_set_61 + 0xcf, 0xff, 0xff, 0xff, //0x000050d8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000050dc .long L22_1_set_90 + 0x51, 0xfc, 0xff, 0xff, //0x000050e0 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050e4 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050e8 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050ec .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050f0 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050f4 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050f8 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x000050fc .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x00005100 .long L22_1_set_52 + 0x51, 0xfc, 0xff, 0xff, //0x00005104 .long L22_1_set_52 + 0xcf, 0xff, 0xff, 0xff, //0x00005108 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000510c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005110 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005114 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005118 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000511c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005120 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005124 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005128 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000512c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005130 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005134 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005138 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000513c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005140 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005144 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005148 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000514c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005150 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005154 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005158 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000515c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005160 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005164 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005168 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000516c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005170 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005174 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005178 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000517c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005180 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005184 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005188 .long L22_1_set_90 + 0xa9, 0xfd, 0xff, 0xff, //0x0000518c .long L22_1_set_64 + 0xcf, 0xff, 0xff, 0xff, //0x00005190 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005194 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005198 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x0000519c .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051a0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051a4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051a8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051ac .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051b0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051b4 .long L22_1_set_90 + 0xcd, 0xfd, 0xff, 0xff, //0x000051b8 .long L22_1_set_66 + 0xcf, 0xff, 0xff, 0xff, //0x000051bc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051c0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051c4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051c8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051cc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051d0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051d4 .long L22_1_set_90 + 0x08, 0xfe, 0xff, 0xff, //0x000051d8 .long L22_1_set_70 + 0xcf, 0xff, 0xff, 0xff, //0x000051dc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051e0 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051e4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051e8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051ec .long L22_1_set_90 + 0x36, 0xfe, 0xff, 0xff, //0x000051f0 .long L22_1_set_76 + 0xcf, 0xff, 0xff, 0xff, //0x000051f4 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051f8 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x000051fc .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005200 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005204 .long L22_1_set_90 + 0xcf, 0xff, 0xff, 0xff, //0x00005208 .long L22_1_set_90 + 0x64, 0xfe, 0xff, 0xff, //0x0000520c .long L22_1_set_83 + //0x00005210 .p2align 4, 0x00 + //0x00005210 LCPI23_0 + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005210 .quad 1 + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005218 .quad 6 + //0x00005220 .p2align 4, 0x90 + //0x00005220 _skip_object + 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 + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000522d movaps $-36(%rip), %xmm0 /* LCPI23_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x00005234 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x00005237 movq %rax, %rdi + 0x5d, //0x0000523a popq %rbp + 0xe9, 0x50, 0xf7, 0xff, 0xff, //0x0000523b jmp _fsm_exec + //0x00005240 .p2align 4, 0x90 + //0x00005240 _skip_string + 0x55, //0x00005240 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005241 movq %rsp, %rbp + 0x41, 0x57, //0x00005244 pushq %r15 + 0x41, 0x56, //0x00005246 pushq %r14 + 0x41, 0x54, //0x00005248 pushq %r12 + 0x53, //0x0000524a pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x0000524b subq $16, %rsp + 0x48, 0x89, 0xd1, //0x0000524f movq %rdx, %rcx + 0x49, 0x89, 0xf6, //0x00005252 movq %rsi, %r14 + 0x49, 0x89, 0xff, //0x00005255 movq %rdi, %r15 + 0x48, 0xc7, 0x45, 0xd8, 0xff, 0xff, 0xff, 0xff, //0x00005258 movq $-1, $-40(%rbp) + 0x48, 0x8b, 0x1e, //0x00005260 movq (%rsi), %rbx + 0x4c, 0x8d, 0x65, 0xd8, //0x00005263 leaq $-40(%rbp), %r12 + 0x48, 0x89, 0xde, //0x00005267 movq %rbx, %rsi + 0x4c, 0x89, 0xe2, //0x0000526a movq %r12, %rdx + 0xe8, 0x3e, 0xe8, 0xff, 0xff, //0x0000526d callq _advance_string + 0x48, 0x85, 0xc0, //0x00005272 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x00005275 js LBB24_1 + 0x48, 0x83, 0xc3, 0xff, //0x0000527b addq $-1, %rbx + 0x48, 0x89, 0xc1, //0x0000527f movq %rax, %rcx + 0x48, 0x89, 0xd8, //0x00005282 movq %rbx, %rax + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x00005285 jmp LBB24_3 + //0x0000528a LBB24_1 + 0x49, 0x83, 0xc7, 0x08, //0x0000528a addq $8, %r15 + 0x48, 0x83, 0xf8, 0xff, //0x0000528e cmpq $-1, %rax + 0x4d, 0x0f, 0x44, 0xe7, //0x00005292 cmoveq %r15, %r12 + 0x49, 0x8b, 0x0c, 0x24, //0x00005296 movq (%r12), %rcx + //0x0000529a LBB24_3 + 0x49, 0x89, 0x0e, //0x0000529a movq %rcx, (%r14) + 0x48, 0x83, 0xc4, 0x10, //0x0000529d addq $16, %rsp + 0x5b, //0x000052a1 popq %rbx + 0x41, 0x5c, //0x000052a2 popq %r12 + 0x41, 0x5e, //0x000052a4 popq %r14 + 0x41, 0x5f, //0x000052a6 popq %r15 + 0x5d, //0x000052a8 popq %rbp + 0xc3, //0x000052a9 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000052aa .p2align 4, 0x90 + //0x000052b0 _skip_negative + 0x55, //0x000052b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000052b1 movq %rsp, %rbp + 0x41, 0x56, //0x000052b4 pushq %r14 + 0x53, //0x000052b6 pushq %rbx + 0x49, 0x89, 0xf6, //0x000052b7 movq %rsi, %r14 + 0x48, 0x8b, 0x1e, //0x000052ba movq (%rsi), %rbx + 0x48, 0x8b, 0x07, //0x000052bd movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x000052c0 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x000052c3 movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x000052c7 subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000052ca movq %rax, %rdi + 0xe8, 0xae, 0x00, 0x00, 0x00, //0x000052cd callq _do_skip_number + 0x48, 0x85, 0xc0, //0x000052d2 testq %rax, %rax + 0x0f, 0x88, 0x0f, 0x00, 0x00, 0x00, //0x000052d5 js LBB25_1 + 0x48, 0x01, 0xd8, //0x000052db addq %rbx, %rax + 0x49, 0x89, 0x06, //0x000052de movq %rax, (%r14) + 0x48, 0x83, 0xc3, 0xff, //0x000052e1 addq $-1, %rbx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000052e5 jmp LBB25_3 + //0x000052ea LBB25_1 + 0x48, 0xf7, 0xd0, //0x000052ea notq %rax + 0x48, 0x01, 0xc3, //0x000052ed addq %rax, %rbx + 0x49, 0x89, 0x1e, //0x000052f0 movq %rbx, (%r14) + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x000052f3 movq $-2, %rbx + //0x000052fa LBB25_3 + 0x48, 0x89, 0xd8, //0x000052fa movq %rbx, %rax + 0x5b, //0x000052fd popq %rbx + 0x41, 0x5e, //0x000052fe popq %r14 + 0x5d, //0x00005300 popq %rbp + 0xc3, //0x00005301 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005302 .p2align 4, 0x00 + //0x00005310 LCPI26_0 + 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, 0x2f, //0x00005310 QUAD $0x2f2f2f2f2f2f2f2f; QUAD $0x2f2f2f2f2f2f2f2f // .space 16, '////////////////' + //0x00005320 LCPI26_1 + 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, 0x3a, //0x00005320 QUAD $0x3a3a3a3a3a3a3a3a; QUAD $0x3a3a3a3a3a3a3a3a // .space 16, '::::::::::::::::' + //0x00005330 LCPI26_2 + 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, 0x2b, //0x00005330 QUAD $0x2b2b2b2b2b2b2b2b; QUAD $0x2b2b2b2b2b2b2b2b // .space 16, '++++++++++++++++' + //0x00005340 LCPI26_3 + 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, //0x00005340 QUAD $0x2d2d2d2d2d2d2d2d; QUAD $0x2d2d2d2d2d2d2d2d // .space 16, '----------------' + //0x00005350 LCPI26_4 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005350 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00005360 LCPI26_5 + 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, 0x2e, //0x00005360 QUAD $0x2e2e2e2e2e2e2e2e; QUAD $0x2e2e2e2e2e2e2e2e // .space 16, '................' + //0x00005370 LCPI26_6 + 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, 0x45, //0x00005370 QUAD $0x4545454545454545; QUAD $0x4545454545454545 // .space 16, 'EEEEEEEEEEEEEEEE' + //0x00005380 .p2align 4, 0x90 + //0x00005380 _do_skip_number + 0x55, //0x00005380 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005381 movq %rsp, %rbp + 0x41, 0x57, //0x00005384 pushq %r15 + 0x41, 0x56, //0x00005386 pushq %r14 + 0x53, //0x00005388 pushq %rbx + 0x48, 0x85, 0xf6, //0x00005389 testq %rsi, %rsi + 0x0f, 0x84, 0x56, 0x02, 0x00, 0x00, //0x0000538c je LBB26_1 + 0x80, 0x3f, 0x30, //0x00005392 cmpb $48, (%rdi) + 0x0f, 0x85, 0x35, 0x00, 0x00, 0x00, //0x00005395 jne LBB26_6 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x0000539b movl $1, %eax + 0x48, 0x83, 0xfe, 0x01, //0x000053a0 cmpq $1, %rsi + 0x0f, 0x84, 0xd9, 0x02, 0x00, 0x00, //0x000053a4 je LBB26_55 + 0x8a, 0x4f, 0x01, //0x000053aa movb $1(%rdi), %cl + 0x80, 0xc1, 0xd2, //0x000053ad addb $-46, %cl + 0x80, 0xf9, 0x37, //0x000053b0 cmpb $55, %cl + 0x0f, 0x87, 0xca, 0x02, 0x00, 0x00, //0x000053b3 ja LBB26_55 + 0x0f, 0xb6, 0xc9, //0x000053b9 movzbl %cl, %ecx + 0x48, 0xba, 0x01, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, //0x000053bc movabsq $36028797027352577, %rdx + 0x48, 0x0f, 0xa3, 0xca, //0x000053c6 btq %rcx, %rdx + 0x0f, 0x83, 0xb3, 0x02, 0x00, 0x00, //0x000053ca jae LBB26_55 + //0x000053d0 LBB26_6 + 0x48, 0x83, 0xfe, 0x10, //0x000053d0 cmpq $16, %rsi + 0x0f, 0x82, 0x12, 0x03, 0x00, 0x00, //0x000053d4 jb LBB26_7 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x000053da movq $-1, %r10 + 0x31, 0xc0, //0x000053e1 xorl %eax, %eax + 0x66, 0x44, 0x0f, 0x6f, 0x05, 0x24, 0xff, 0xff, 0xff, //0x000053e3 movdqa $-220(%rip), %xmm8 /* LCPI26_0+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0x2b, 0xff, 0xff, 0xff, //0x000053ec movdqa $-213(%rip), %xmm10 /* LCPI26_1+0(%rip) */ + 0x66, 0x44, 0x0f, 0x6f, 0x0d, 0x32, 0xff, 0xff, 0xff, //0x000053f5 movdqa $-206(%rip), %xmm9 /* LCPI26_2+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x3a, 0xff, 0xff, 0xff, //0x000053fe movdqa $-198(%rip), %xmm3 /* LCPI26_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0x42, 0xff, 0xff, 0xff, //0x00005406 movdqa $-190(%rip), %xmm4 /* LCPI26_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x2d, 0x4a, 0xff, 0xff, 0xff, //0x0000540e movdqa $-182(%rip), %xmm5 /* LCPI26_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x35, 0x52, 0xff, 0xff, 0xff, //0x00005416 movdqa $-174(%rip), %xmm6 /* LCPI26_6+0(%rip) */ + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000541e movq $-1, %r9 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005425 movq $-1, %r8 + 0x49, 0x89, 0xf7, //0x0000542c movq %rsi, %r15 + 0x90, //0x0000542f .p2align 4, 0x90 + //0x00005430 LBB26_9 + 0xf3, 0x0f, 0x6f, 0x3c, 0x07, //0x00005430 movdqu (%rdi,%rax), %xmm7 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005435 movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x64, 0xc0, //0x00005439 pcmpgtb %xmm8, %xmm0 + 0x66, 0x41, 0x0f, 0x6f, 0xca, //0x0000543e movdqa %xmm10, %xmm1 + 0x66, 0x0f, 0x64, 0xcf, //0x00005443 pcmpgtb %xmm7, %xmm1 + 0x66, 0x0f, 0xdb, 0xc8, //0x00005447 pand %xmm0, %xmm1 + 0x66, 0x0f, 0x6f, 0xc7, //0x0000544b movdqa %xmm7, %xmm0 + 0x66, 0x41, 0x0f, 0x74, 0xc1, //0x0000544f pcmpeqb %xmm9, %xmm0 + 0x66, 0x0f, 0x6f, 0xd7, //0x00005454 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005458 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xeb, 0xd0, //0x0000545c por %xmm0, %xmm2 + 0x66, 0x0f, 0x6f, 0xc7, //0x00005460 movdqa %xmm7, %xmm0 + 0x66, 0x0f, 0xdb, 0xc4, //0x00005464 pand %xmm4, %xmm0 + 0x66, 0x0f, 0x74, 0xc6, //0x00005468 pcmpeqb %xmm6, %xmm0 + 0x66, 0x0f, 0x74, 0xfd, //0x0000546c pcmpeqb %xmm5, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xf0, //0x00005470 pmovmskb %xmm0, %r14d + 0x66, 0x0f, 0xeb, 0xc7, //0x00005475 por %xmm7, %xmm0 + 0x66, 0x0f, 0xeb, 0xca, //0x00005479 por %xmm2, %xmm1 + 0x66, 0x0f, 0xeb, 0xc8, //0x0000547d por %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xdf, //0x00005481 pmovmskb %xmm7, %ebx + 0x66, 0x44, 0x0f, 0xd7, 0xda, //0x00005485 pmovmskb %xmm2, %r11d + 0x66, 0x0f, 0xd7, 0xc9, //0x0000548a pmovmskb %xmm1, %ecx + 0xf7, 0xd1, //0x0000548e notl %ecx + 0x0f, 0xbc, 0xc9, //0x00005490 bsfl %ecx, %ecx + 0x83, 0xf9, 0x10, //0x00005493 cmpl $16, %ecx + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005496 je LBB26_11 + 0xba, 0xff, 0xff, 0xff, 0xff, //0x0000549c movl $-1, %edx + 0xd3, 0xe2, //0x000054a1 shll %cl, %edx + 0xf7, 0xd2, //0x000054a3 notl %edx + 0x21, 0xd3, //0x000054a5 andl %edx, %ebx + 0x41, 0x21, 0xd6, //0x000054a7 andl %edx, %r14d + 0x44, 0x21, 0xda, //0x000054aa andl %r11d, %edx + 0x41, 0x89, 0xd3, //0x000054ad movl %edx, %r11d + //0x000054b0 LBB26_11 + 0x8d, 0x53, 0xff, //0x000054b0 leal $-1(%rbx), %edx + 0x21, 0xda, //0x000054b3 andl %ebx, %edx + 0x0f, 0x85, 0x0e, 0x02, 0x00, 0x00, //0x000054b5 jne LBB26_12 + 0x41, 0x8d, 0x56, 0xff, //0x000054bb leal $-1(%r14), %edx + 0x44, 0x21, 0xf2, //0x000054bf andl %r14d, %edx + 0x0f, 0x85, 0x01, 0x02, 0x00, 0x00, //0x000054c2 jne LBB26_12 + 0x41, 0x8d, 0x53, 0xff, //0x000054c8 leal $-1(%r11), %edx + 0x44, 0x21, 0xda, //0x000054cc andl %r11d, %edx + 0x0f, 0x85, 0xf4, 0x01, 0x00, 0x00, //0x000054cf jne LBB26_12 + 0x85, 0xdb, //0x000054d5 testl %ebx, %ebx + 0x0f, 0x84, 0x13, 0x00, 0x00, 0x00, //0x000054d7 je LBB26_19 + 0x0f, 0xbc, 0xdb, //0x000054dd bsfl %ebx, %ebx + 0x49, 0x83, 0xf8, 0xff, //0x000054e0 cmpq $-1, %r8 + 0x0f, 0x85, 0xf5, 0x01, 0x00, 0x00, //0x000054e4 jne LBB26_56 + 0x48, 0x01, 0xc3, //0x000054ea addq %rax, %rbx + 0x49, 0x89, 0xd8, //0x000054ed movq %rbx, %r8 + //0x000054f0 LBB26_19 + 0x45, 0x85, 0xf6, //0x000054f0 testl %r14d, %r14d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000054f3 je LBB26_22 + 0x41, 0x0f, 0xbc, 0xde, //0x000054f9 bsfl %r14d, %ebx + 0x49, 0x83, 0xf9, 0xff, //0x000054fd cmpq $-1, %r9 + 0x0f, 0x85, 0xd8, 0x01, 0x00, 0x00, //0x00005501 jne LBB26_56 + 0x48, 0x01, 0xc3, //0x00005507 addq %rax, %rbx + 0x49, 0x89, 0xd9, //0x0000550a movq %rbx, %r9 + //0x0000550d LBB26_22 + 0x45, 0x85, 0xdb, //0x0000550d testl %r11d, %r11d + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00005510 je LBB26_25 + 0x41, 0x0f, 0xbc, 0xdb, //0x00005516 bsfl %r11d, %ebx + 0x49, 0x83, 0xfa, 0xff, //0x0000551a cmpq $-1, %r10 + 0x0f, 0x85, 0xbb, 0x01, 0x00, 0x00, //0x0000551e jne LBB26_56 + 0x48, 0x01, 0xc3, //0x00005524 addq %rax, %rbx + 0x49, 0x89, 0xda, //0x00005527 movq %rbx, %r10 + //0x0000552a LBB26_25 + 0x83, 0xf9, 0x10, //0x0000552a cmpl $16, %ecx + 0x0f, 0x85, 0xc1, 0x00, 0x00, 0x00, //0x0000552d jne LBB26_57 + 0x49, 0x83, 0xc7, 0xf0, //0x00005533 addq $-16, %r15 + 0x48, 0x83, 0xc0, 0x10, //0x00005537 addq $16, %rax + 0x49, 0x83, 0xff, 0x0f, //0x0000553b cmpq $15, %r15 + 0x0f, 0x87, 0xeb, 0xfe, 0xff, 0xff, //0x0000553f ja LBB26_9 + 0x48, 0x8d, 0x0c, 0x07, //0x00005545 leaq (%rdi,%rax), %rcx + 0x49, 0x89, 0xcb, //0x00005549 movq %rcx, %r11 + 0x48, 0x39, 0xc6, //0x0000554c cmpq %rax, %rsi + 0x0f, 0x84, 0xa8, 0x00, 0x00, 0x00, //0x0000554f je LBB26_41 + //0x00005555 LBB26_28 + 0x4e, 0x8d, 0x1c, 0x39, //0x00005555 leaq (%rcx,%r15), %r11 + 0x48, 0x89, 0xce, //0x00005559 movq %rcx, %rsi + 0x48, 0x29, 0xfe, //0x0000555c subq %rdi, %rsi + 0x31, 0xc0, //0x0000555f xorl %eax, %eax + 0x4c, 0x8d, 0x35, 0xa4, 0x01, 0x00, 0x00, //0x00005561 leaq $420(%rip), %r14 /* LJTI26_0+0(%rip) */ + 0xe9, 0x30, 0x00, 0x00, 0x00, //0x00005568 jmp LBB26_29 + //0x0000556d LBB26_31 + 0x83, 0xfb, 0x65, //0x0000556d cmpl $101, %ebx + 0x0f, 0x85, 0x9c, 0x00, 0x00, 0x00, //0x00005570 jne LBB26_40 + //0x00005576 LBB26_32 + 0x49, 0x83, 0xf9, 0xff, //0x00005576 cmpq $-1, %r9 + 0x0f, 0x85, 0x51, 0x01, 0x00, 0x00, //0x0000557a jne LBB26_58 + 0x4c, 0x8d, 0x0c, 0x06, //0x00005580 leaq (%rsi,%rax), %r9 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005584 .p2align 4, 0x90 + //0x00005590 LBB26_39 + 0x48, 0x83, 0xc0, 0x01, //0x00005590 addq $1, %rax + 0x49, 0x39, 0xc7, //0x00005594 cmpq %rax, %r15 + 0x0f, 0x84, 0x60, 0x00, 0x00, 0x00, //0x00005597 je LBB26_41 + //0x0000559d LBB26_29 + 0x0f, 0xbe, 0x1c, 0x01, //0x0000559d movsbl (%rcx,%rax), %ebx + 0x8d, 0x53, 0xd0, //0x000055a1 leal $-48(%rbx), %edx + 0x83, 0xfa, 0x0a, //0x000055a4 cmpl $10, %edx + 0x0f, 0x82, 0xe3, 0xff, 0xff, 0xff, //0x000055a7 jb LBB26_39 + 0x8d, 0x53, 0xd5, //0x000055ad leal $-43(%rbx), %edx + 0x83, 0xfa, 0x1a, //0x000055b0 cmpl $26, %edx + 0x0f, 0x87, 0xb4, 0xff, 0xff, 0xff, //0x000055b3 ja LBB26_31 + 0x49, 0x63, 0x14, 0x96, //0x000055b9 movslq (%r14,%rdx,4), %rdx + 0x4c, 0x01, 0xf2, //0x000055bd addq %r14, %rdx + 0xff, 0xe2, //0x000055c0 jmpq *%rdx + //0x000055c2 LBB26_37 + 0x49, 0x83, 0xfa, 0xff, //0x000055c2 cmpq $-1, %r10 + 0x0f, 0x85, 0x05, 0x01, 0x00, 0x00, //0x000055c6 jne LBB26_58 + 0x4c, 0x8d, 0x14, 0x06, //0x000055cc leaq (%rsi,%rax), %r10 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x000055d0 jmp LBB26_39 + //0x000055d5 LBB26_35 + 0x49, 0x83, 0xf8, 0xff, //0x000055d5 cmpq $-1, %r8 + 0x0f, 0x85, 0xf2, 0x00, 0x00, 0x00, //0x000055d9 jne LBB26_58 + 0x4c, 0x8d, 0x04, 0x06, //0x000055df leaq (%rsi,%rax), %r8 + 0xe9, 0xa8, 0xff, 0xff, 0xff, //0x000055e3 jmp LBB26_39 + //0x000055e8 LBB26_1 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055e8 movq $-1, %rax + 0xe9, 0x8f, 0x00, 0x00, 0x00, //0x000055ef jmp LBB26_55 + //0x000055f4 LBB26_57 + 0x41, 0x89, 0xcb, //0x000055f4 movl %ecx, %r11d + 0x49, 0x01, 0xfb, //0x000055f7 addq %rdi, %r11 + 0x49, 0x01, 0xc3, //0x000055fa addq %rax, %r11 + //0x000055fd LBB26_41 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000055fd movq $-1, %rax + 0x4d, 0x85, 0xc0, //0x00005604 testq %r8, %r8 + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00005607 jne LBB26_42 + 0xe9, 0x71, 0x00, 0x00, 0x00, //0x0000560d jmp LBB26_55 + //0x00005612 LBB26_40 + 0x48, 0x01, 0xc1, //0x00005612 addq %rax, %rcx + 0x49, 0x89, 0xcb, //0x00005615 movq %rcx, %r11 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00005618 movq $-1, %rax + 0x4d, 0x85, 0xc0, //0x0000561f testq %r8, %r8 + 0x0f, 0x84, 0x5b, 0x00, 0x00, 0x00, //0x00005622 je LBB26_55 + //0x00005628 LBB26_42 + 0x4d, 0x85, 0xd2, //0x00005628 testq %r10, %r10 + 0x0f, 0x84, 0x52, 0x00, 0x00, 0x00, //0x0000562b je LBB26_55 + 0x4d, 0x85, 0xc9, //0x00005631 testq %r9, %r9 + 0x0f, 0x84, 0x49, 0x00, 0x00, 0x00, //0x00005634 je LBB26_55 + 0x49, 0x29, 0xfb, //0x0000563a subq %rdi, %r11 + 0x49, 0x8d, 0x43, 0xff, //0x0000563d leaq $-1(%r11), %rax + 0x49, 0x39, 0xc0, //0x00005641 cmpq %rax, %r8 + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00005644 je LBB26_47 + 0x49, 0x39, 0xc2, //0x0000564a cmpq %rax, %r10 + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x0000564d je LBB26_47 + 0x49, 0x39, 0xc1, //0x00005653 cmpq %rax, %r9 + 0x0f, 0x84, 0x21, 0x00, 0x00, 0x00, //0x00005656 je LBB26_47 + 0x4d, 0x85, 0xd2, //0x0000565c testq %r10, %r10 + 0x0f, 0x8e, 0x25, 0x00, 0x00, 0x00, //0x0000565f jle LBB26_51 + 0x49, 0x8d, 0x42, 0xff, //0x00005665 leaq $-1(%r10), %rax + 0x49, 0x39, 0xc1, //0x00005669 cmpq %rax, %r9 + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x0000566c je LBB26_51 + 0x49, 0xf7, 0xd2, //0x00005672 notq %r10 + 0x4c, 0x89, 0xd0, //0x00005675 movq %r10, %rax + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00005678 jmp LBB26_55 + //0x0000567d LBB26_47 + 0x49, 0xf7, 0xdb, //0x0000567d negq %r11 + 0x4c, 0x89, 0xd8, //0x00005680 movq %r11, %rax + //0x00005683 LBB26_55 + 0x5b, //0x00005683 popq %rbx + 0x41, 0x5e, //0x00005684 popq %r14 + 0x41, 0x5f, //0x00005686 popq %r15 + 0x5d, //0x00005688 popq %rbp + 0xc3, //0x00005689 retq + //0x0000568a LBB26_51 + 0x4c, 0x89, 0xc0, //0x0000568a movq %r8, %rax + 0x4c, 0x09, 0xc8, //0x0000568d orq %r9, %rax + 0x0f, 0x99, 0xc0, //0x00005690 setns %al + 0x0f, 0x88, 0x14, 0x00, 0x00, 0x00, //0x00005693 js LBB26_54 + 0x4d, 0x39, 0xc8, //0x00005699 cmpq %r9, %r8 + 0x0f, 0x8c, 0x0b, 0x00, 0x00, 0x00, //0x0000569c jl LBB26_54 + 0x49, 0xf7, 0xd0, //0x000056a2 notq %r8 + 0x4c, 0x89, 0xc0, //0x000056a5 movq %r8, %rax + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x000056a8 jmp LBB26_55 + //0x000056ad LBB26_54 + 0x49, 0x8d, 0x49, 0xff, //0x000056ad leaq $-1(%r9), %rcx + 0x49, 0x39, 0xc8, //0x000056b1 cmpq %rcx, %r8 + 0x49, 0xf7, 0xd1, //0x000056b4 notq %r9 + 0x4d, 0x0f, 0x45, 0xcb, //0x000056b7 cmovneq %r11, %r9 + 0x84, 0xc0, //0x000056bb testb %al, %al + 0x4d, 0x0f, 0x44, 0xcb, //0x000056bd cmoveq %r11, %r9 + 0x4c, 0x89, 0xc8, //0x000056c1 movq %r9, %rax + 0xe9, 0xba, 0xff, 0xff, 0xff, //0x000056c4 jmp LBB26_55 + //0x000056c9 LBB26_12 + 0x0f, 0xbc, 0xca, //0x000056c9 bsfl %edx, %ecx + 0xe9, 0x10, 0x00, 0x00, 0x00, //0x000056cc jmp LBB26_13 + //0x000056d1 LBB26_58 + 0x48, 0x29, 0xcf, //0x000056d1 subq %rcx, %rdi + 0x48, 0xf7, 0xd0, //0x000056d4 notq %rax + 0x48, 0x01, 0xf8, //0x000056d7 addq %rdi, %rax + 0xe9, 0xa4, 0xff, 0xff, 0xff, //0x000056da jmp LBB26_55 + //0x000056df LBB26_56 + 0x89, 0xd9, //0x000056df movl %ebx, %ecx + //0x000056e1 LBB26_13 + 0x48, 0xf7, 0xd0, //0x000056e1 notq %rax + 0x48, 0x29, 0xc8, //0x000056e4 subq %rcx, %rax + 0xe9, 0x97, 0xff, 0xff, 0xff, //0x000056e7 jmp LBB26_55 + //0x000056ec LBB26_7 + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000056ec movq $-1, %r8 + 0x48, 0x89, 0xf9, //0x000056f3 movq %rdi, %rcx + 0x49, 0x89, 0xf7, //0x000056f6 movq %rsi, %r15 + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x000056f9 movq $-1, %r9 + 0x49, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00005700 movq $-1, %r10 + 0xe9, 0x49, 0xfe, 0xff, 0xff, //0x00005707 jmp LBB26_28 + //0x0000570c .p2align 2, 0x90 + // // .set L26_0_set_37, LBB26_37-LJTI26_0 + // // .set L26_0_set_40, LBB26_40-LJTI26_0 + // // .set L26_0_set_35, LBB26_35-LJTI26_0 + // // .set L26_0_set_32, LBB26_32-LJTI26_0 + //0x0000570c LJTI26_0 + 0xb6, 0xfe, 0xff, 0xff, //0x0000570c .long L26_0_set_37 + 0x06, 0xff, 0xff, 0xff, //0x00005710 .long L26_0_set_40 + 0xb6, 0xfe, 0xff, 0xff, //0x00005714 .long L26_0_set_37 + 0xc9, 0xfe, 0xff, 0xff, //0x00005718 .long L26_0_set_35 + 0x06, 0xff, 0xff, 0xff, //0x0000571c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005720 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005724 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005728 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000572c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005730 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005734 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005738 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000573c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005740 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005744 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005748 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000574c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005750 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005754 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005758 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000575c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005760 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005764 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005768 .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x0000576c .long L26_0_set_40 + 0x06, 0xff, 0xff, 0xff, //0x00005770 .long L26_0_set_40 + 0x6a, 0xfe, 0xff, 0xff, //0x00005774 .long L26_0_set_32 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005778 .p2align 4, 0x90 + //0x00005780 _skip_positive + 0x55, //0x00005780 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005781 movq %rsp, %rbp + 0x41, 0x57, //0x00005784 pushq %r15 + 0x41, 0x56, //0x00005786 pushq %r14 + 0x53, //0x00005788 pushq %rbx + 0x50, //0x00005789 pushq %rax + 0x49, 0x89, 0xf6, //0x0000578a movq %rsi, %r14 + 0x4c, 0x8b, 0x3e, //0x0000578d movq (%rsi), %r15 + 0x49, 0x8d, 0x5f, 0xff, //0x00005790 leaq $-1(%r15), %rbx + 0x48, 0x8b, 0x07, //0x00005794 movq (%rdi), %rax + 0x48, 0x01, 0xd8, //0x00005797 addq %rbx, %rax + 0x48, 0x8b, 0x77, 0x08, //0x0000579a movq $8(%rdi), %rsi + 0x48, 0x29, 0xde, //0x0000579e subq %rbx, %rsi + 0x48, 0x89, 0xc7, //0x000057a1 movq %rax, %rdi + 0xe8, 0xd7, 0xfb, 0xff, 0xff, //0x000057a4 callq _do_skip_number + 0x48, 0x8d, 0x50, 0xff, //0x000057a9 leaq $-1(%rax), %rdx + 0x48, 0xc7, 0xc1, 0xfe, 0xff, 0xff, 0xff, //0x000057ad movq $-2, %rcx + 0x48, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x000057b4 movq $-2, %rsi + 0x48, 0x29, 0xc6, //0x000057bb subq %rax, %rsi + 0x48, 0x85, 0xc0, //0x000057be testq %rax, %rax + 0x48, 0x0f, 0x49, 0xf2, //0x000057c1 cmovnsq %rdx, %rsi + 0x48, 0x0f, 0x49, 0xcb, //0x000057c5 cmovnsq %rbx, %rcx + 0x4c, 0x01, 0xfe, //0x000057c9 addq %r15, %rsi + 0x49, 0x89, 0x36, //0x000057cc movq %rsi, (%r14) + 0x48, 0x89, 0xc8, //0x000057cf movq %rcx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x000057d2 addq $8, %rsp + 0x5b, //0x000057d6 popq %rbx + 0x41, 0x5e, //0x000057d7 popq %r14 + 0x41, 0x5f, //0x000057d9 popq %r15 + 0x5d, //0x000057db popq %rbp + 0xc3, //0x000057dc retq + 0x90, 0x90, 0x90, //0x000057dd .p2align 4, 0x90 + //0x000057e0 _skip_number + 0x55, //0x000057e0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000057e1 movq %rsp, %rbp + 0x41, 0x57, //0x000057e4 pushq %r15 + 0x41, 0x56, //0x000057e6 pushq %r14 + 0x41, 0x55, //0x000057e8 pushq %r13 + 0x41, 0x54, //0x000057ea pushq %r12 + 0x53, //0x000057ec pushq %rbx + 0x50, //0x000057ed pushq %rax + 0x49, 0x89, 0xf6, //0x000057ee movq %rsi, %r14 + 0x4c, 0x8b, 0x27, //0x000057f1 movq (%rdi), %r12 + 0x48, 0x8b, 0x77, 0x08, //0x000057f4 movq $8(%rdi), %rsi + 0x4d, 0x8b, 0x2e, //0x000057f8 movq (%r14), %r13 + 0x4c, 0x29, 0xee, //0x000057fb subq %r13, %rsi + 0x31, 0xc0, //0x000057fe xorl %eax, %eax + 0x43, 0x80, 0x3c, 0x2c, 0x2d, //0x00005800 cmpb $45, (%r12,%r13) + 0x4b, 0x8d, 0x1c, 0x2c, //0x00005805 leaq (%r12,%r13), %rbx + 0x0f, 0x94, 0xc0, //0x00005809 sete %al + 0x48, 0x01, 0xc3, //0x0000580c addq %rax, %rbx + 0x48, 0x29, 0xc6, //0x0000580f subq %rax, %rsi + 0x0f, 0x84, 0x42, 0x00, 0x00, 0x00, //0x00005812 je LBB28_1 + 0x8a, 0x03, //0x00005818 movb (%rbx), %al + 0x04, 0xd0, //0x0000581a addb $-48, %al + 0x49, 0xc7, 0xc7, 0xfe, 0xff, 0xff, 0xff, //0x0000581c movq $-2, %r15 + 0x3c, 0x09, //0x00005823 cmpb $9, %al + 0x0f, 0x87, 0x17, 0x00, 0x00, 0x00, //0x00005825 ja LBB28_6 + 0x48, 0x89, 0xdf, //0x0000582b movq %rbx, %rdi + 0xe8, 0x4d, 0xfb, 0xff, 0xff, //0x0000582e callq _do_skip_number + 0x48, 0x85, 0xc0, //0x00005833 testq %rax, %rax + 0x0f, 0x88, 0x2a, 0x00, 0x00, 0x00, //0x00005836 js LBB28_4 + 0x48, 0x01, 0xc3, //0x0000583c addq %rax, %rbx + 0x4d, 0x89, 0xef, //0x0000583f movq %r13, %r15 + //0x00005842 LBB28_6 + 0x4c, 0x29, 0xe3, //0x00005842 subq %r12, %rbx + 0x49, 0x89, 0x1e, //0x00005845 movq %rbx, (%r14) + 0x4c, 0x89, 0xf8, //0x00005848 movq %r15, %rax + 0x48, 0x83, 0xc4, 0x08, //0x0000584b addq $8, %rsp + 0x5b, //0x0000584f popq %rbx + 0x41, 0x5c, //0x00005850 popq %r12 + 0x41, 0x5d, //0x00005852 popq %r13 + 0x41, 0x5e, //0x00005854 popq %r14 + 0x41, 0x5f, //0x00005856 popq %r15 + 0x5d, //0x00005858 popq %rbp + 0xc3, //0x00005859 retq + //0x0000585a LBB28_1 + 0x49, 0xc7, 0xc7, 0xff, 0xff, 0xff, 0xff, //0x0000585a movq $-1, %r15 + 0xe9, 0xdc, 0xff, 0xff, 0xff, //0x00005861 jmp LBB28_6 + //0x00005866 LBB28_4 + 0x48, 0xf7, 0xd0, //0x00005866 notq %rax + 0x48, 0x01, 0xc3, //0x00005869 addq %rax, %rbx + 0xe9, 0xd1, 0xff, 0xff, 0xff, //0x0000586c jmp LBB28_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00005871 .p2align 4, 0x00 + //0x00005880 LCPI29_0 + 0x01, 0x00, 0x00, 0x00, //0x00005880 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x00005884 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00005888 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000588c .long 0 + //0x00005890 .p2align 4, 0x90 + //0x00005890 _skip_one + 0x55, //0x00005890 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005891 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x00005894 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x00005897 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x0000589a movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x0000589d movaps $-36(%rip), %xmm0 /* LCPI29_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x000058a4 movups %xmm0, (%rax) + 0x48, 0x89, 0xc7, //0x000058a7 movq %rax, %rdi + 0x5d, //0x000058aa popq %rbp + 0xe9, 0xe0, 0xf0, 0xff, 0xff, //0x000058ab jmp _fsm_exec + //0x000058b0 .p2align 4, 0x00 + //0x000058b0 LCPI30_0 + 0x01, 0x00, 0x00, 0x00, //0x000058b0 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x000058b4 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000058b8 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x000058bc .long 0 + //0x000058c0 .p2align 4, 0x90 + //0x000058c0 _validate_one + 0x55, //0x000058c0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000058c1 movq %rsp, %rbp + 0x48, 0x89, 0xd0, //0x000058c4 movq %rdx, %rax + 0x48, 0x89, 0xf2, //0x000058c7 movq %rsi, %rdx + 0x48, 0x89, 0xfe, //0x000058ca movq %rdi, %rsi + 0x0f, 0x28, 0x05, 0xdc, 0xff, 0xff, 0xff, //0x000058cd movaps $-36(%rip), %xmm0 /* LCPI30_0+0(%rip) */ + 0x0f, 0x11, 0x00, //0x000058d4 movups %xmm0, (%rax) + 0xb9, 0x20, 0x00, 0x00, 0x00, //0x000058d7 movl $32, %ecx + 0x48, 0x89, 0xc7, //0x000058dc movq %rax, %rdi + 0x5d, //0x000058df popq %rbp + 0xe9, 0xab, 0xf0, 0xff, 0xff, //0x000058e0 jmp _fsm_exec + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000058e5 .p2align 4, 0x00 + //0x000058f0 LCPI31_0 + 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, 0x2c, //0x000058f0 QUAD $0x2c2c2c2c2c2c2c2c; QUAD $0x2c2c2c2c2c2c2c2c // .space 16, ',,,,,,,,,,,,,,,,' + //0x00005900 LCPI31_1 + 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, 0xdf, //0x00005900 QUAD $0xdfdfdfdfdfdfdfdf; QUAD $0xdfdfdfdfdfdfdfdf // .space 16, '\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf\xdf' + //0x00005910 LCPI31_2 + 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, 0x5d, //0x00005910 QUAD $0x5d5d5d5d5d5d5d5d; QUAD $0x5d5d5d5d5d5d5d5d // .space 16, ']]]]]]]]]]]]]]]]' + //0x00005920 LCPI31_3 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00005920 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x00005930 LCPI31_4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x00005930 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x00005940 LCPI31_5 + 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, 0x7b, //0x00005940 QUAD $0x7b7b7b7b7b7b7b7b; QUAD $0x7b7b7b7b7b7b7b7b // .space 16, '{{{{{{{{{{{{{{{{' + //0x00005950 LCPI31_6 + 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, 0x7d, //0x00005950 QUAD $0x7d7d7d7d7d7d7d7d; QUAD $0x7d7d7d7d7d7d7d7d // .space 16, '}}}}}}}}}}}}}}}}' + //0x00005960 LCPI31_7 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x00005960 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00005970 .p2align 4, 0x90 + //0x00005970 _skip_one_fast + 0x55, //0x00005970 pushq %rbp + 0x48, 0x89, 0xe5, //0x00005971 movq %rsp, %rbp + 0x41, 0x57, //0x00005974 pushq %r15 + 0x41, 0x56, //0x00005976 pushq %r14 + 0x41, 0x55, //0x00005978 pushq %r13 + 0x41, 0x54, //0x0000597a pushq %r12 + 0x53, //0x0000597c pushq %rbx + 0x48, 0x83, 0xec, 0x58, //0x0000597d subq $88, %rsp + 0x4c, 0x8b, 0x0f, //0x00005981 movq (%rdi), %r9 + 0x48, 0x8b, 0x57, 0x08, //0x00005984 movq $8(%rdi), %rdx + 0x48, 0x8b, 0x0e, //0x00005988 movq (%rsi), %rcx + 0x48, 0x39, 0xd1, //0x0000598b cmpq %rdx, %rcx + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x0000598e jae LBB31_5 + 0x41, 0x8a, 0x04, 0x09, //0x00005994 movb (%r9,%rcx), %al + 0x3c, 0x0d, //0x00005998 cmpb $13, %al + 0x0f, 0x84, 0x1a, 0x00, 0x00, 0x00, //0x0000599a je LBB31_5 + 0x3c, 0x20, //0x000059a0 cmpb $32, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059a2 je LBB31_5 + 0x04, 0xf7, //0x000059a8 addb $-9, %al + 0x3c, 0x01, //0x000059aa cmpb $1, %al + 0x0f, 0x86, 0x08, 0x00, 0x00, 0x00, //0x000059ac jbe LBB31_5 + 0x49, 0x89, 0xcc, //0x000059b2 movq %rcx, %r12 + 0xe9, 0xfe, 0x00, 0x00, 0x00, //0x000059b5 jmp LBB31_27 + //0x000059ba LBB31_5 + 0x4c, 0x8d, 0x61, 0x01, //0x000059ba leaq $1(%rcx), %r12 + 0x49, 0x39, 0xd4, //0x000059be cmpq %rdx, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059c1 jae LBB31_9 + 0x43, 0x8a, 0x04, 0x21, //0x000059c7 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000059cb cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059cd je LBB31_9 + 0x3c, 0x20, //0x000059d3 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x000059d5 je LBB31_9 + 0x04, 0xf7, //0x000059db addb $-9, %al + 0x3c, 0x01, //0x000059dd cmpb $1, %al + 0x0f, 0x87, 0xd3, 0x00, 0x00, 0x00, //0x000059df ja LBB31_27 + //0x000059e5 LBB31_9 + 0x4c, 0x8d, 0x61, 0x02, //0x000059e5 leaq $2(%rcx), %r12 + 0x49, 0x39, 0xd4, //0x000059e9 cmpq %rdx, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x000059ec jae LBB31_13 + 0x43, 0x8a, 0x04, 0x21, //0x000059f2 movb (%r9,%r12), %al + 0x3c, 0x0d, //0x000059f6 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x000059f8 je LBB31_13 + 0x3c, 0x20, //0x000059fe cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a00 je LBB31_13 + 0x04, 0xf7, //0x00005a06 addb $-9, %al + 0x3c, 0x01, //0x00005a08 cmpb $1, %al + 0x0f, 0x87, 0xa8, 0x00, 0x00, 0x00, //0x00005a0a ja LBB31_27 + //0x00005a10 LBB31_13 + 0x4c, 0x8d, 0x61, 0x03, //0x00005a10 leaq $3(%rcx), %r12 + 0x49, 0x39, 0xd4, //0x00005a14 cmpq %rdx, %r12 + 0x0f, 0x83, 0x1e, 0x00, 0x00, 0x00, //0x00005a17 jae LBB31_17 + 0x43, 0x8a, 0x04, 0x21, //0x00005a1d movb (%r9,%r12), %al + 0x3c, 0x0d, //0x00005a21 cmpb $13, %al + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00005a23 je LBB31_17 + 0x3c, 0x20, //0x00005a29 cmpb $32, %al + 0x0f, 0x84, 0x0a, 0x00, 0x00, 0x00, //0x00005a2b je LBB31_17 + 0x04, 0xf7, //0x00005a31 addb $-9, %al + 0x3c, 0x01, //0x00005a33 cmpb $1, %al + 0x0f, 0x87, 0x7d, 0x00, 0x00, 0x00, //0x00005a35 ja LBB31_27 + //0x00005a3b LBB31_17 + 0x48, 0x83, 0xc1, 0x04, //0x00005a3b addq $4, %rcx + 0x48, 0x39, 0xca, //0x00005a3f cmpq %rcx, %rdx + 0x0f, 0x86, 0x42, 0x00, 0x00, 0x00, //0x00005a42 jbe LBB31_23 + 0x48, 0x39, 0xca, //0x00005a48 cmpq %rcx, %rdx + 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00005a4b je LBB31_24 + 0x4d, 0x8d, 0x04, 0x11, //0x00005a51 leaq (%r9,%rdx), %r8 + 0x48, 0xbb, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00005a55 movabsq $4294977024, %rbx + 0x90, //0x00005a5f .p2align 4, 0x90 + //0x00005a60 LBB31_20 + 0x41, 0x0f, 0xbe, 0x04, 0x09, //0x00005a60 movsbl (%r9,%rcx), %eax + 0x83, 0xf8, 0x20, //0x00005a65 cmpl $32, %eax + 0x0f, 0x87, 0x37, 0x00, 0x00, 0x00, //0x00005a68 ja LBB31_26 + 0x48, 0x0f, 0xa3, 0xc3, //0x00005a6e btq %rax, %rbx + 0x0f, 0x83, 0x2d, 0x00, 0x00, 0x00, //0x00005a72 jae LBB31_26 + 0x48, 0x83, 0xc1, 0x01, //0x00005a78 addq $1, %rcx + 0x48, 0x39, 0xca, //0x00005a7c cmpq %rcx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00005a7f jne LBB31_20 + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x00005a85 jmp LBB31_25 + //0x00005a8a LBB31_23 + 0x48, 0x89, 0x0e, //0x00005a8a movq %rcx, (%rsi) + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005a8d movq $-1, %r14 + 0xe9, 0x2c, 0x01, 0x00, 0x00, //0x00005a94 jmp LBB31_44 + //0x00005a99 LBB31_24 + 0x4c, 0x01, 0xc9, //0x00005a99 addq %r9, %rcx + 0x49, 0x89, 0xc8, //0x00005a9c movq %rcx, %r8 + //0x00005a9f LBB31_25 + 0x4d, 0x29, 0xc8, //0x00005a9f subq %r9, %r8 + 0x4c, 0x89, 0xc1, //0x00005aa2 movq %r8, %rcx + //0x00005aa5 LBB31_26 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005aa5 movq $-1, %r14 + 0x49, 0x89, 0xcc, //0x00005aac movq %rcx, %r12 + 0x48, 0x39, 0xd1, //0x00005aaf cmpq %rdx, %rcx + 0x0f, 0x83, 0x0d, 0x01, 0x00, 0x00, //0x00005ab2 jae LBB31_44 + //0x00005ab8 LBB31_27 + 0x49, 0x8d, 0x54, 0x24, 0x01, //0x00005ab8 leaq $1(%r12), %rdx + 0x48, 0x89, 0x16, //0x00005abd movq %rdx, (%rsi) + 0x43, 0x0f, 0xbe, 0x04, 0x21, //0x00005ac0 movsbl (%r9,%r12), %eax + 0x83, 0xf8, 0x7b, //0x00005ac5 cmpl $123, %eax + 0x0f, 0x87, 0x1d, 0x01, 0x00, 0x00, //0x00005ac8 ja LBB31_46 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005ace movq $-1, %r14 + 0x48, 0x8d, 0x0d, 0xa8, 0x0b, 0x00, 0x00, //0x00005ad5 leaq $2984(%rip), %rcx /* LJTI31_0+0(%rip) */ + 0x48, 0x63, 0x04, 0x81, //0x00005adc movslq (%rcx,%rax,4), %rax + 0x48, 0x01, 0xc8, //0x00005ae0 addq %rcx, %rax + 0xff, 0xe0, //0x00005ae3 jmpq *%rax + //0x00005ae5 LBB31_29 + 0x48, 0x8b, 0x47, 0x08, //0x00005ae5 movq $8(%rdi), %rax + 0x48, 0x89, 0xc1, //0x00005ae9 movq %rax, %rcx + 0x48, 0x29, 0xd1, //0x00005aec subq %rdx, %rcx + 0x48, 0x83, 0xf9, 0x10, //0x00005aef cmpq $16, %rcx + 0x0f, 0x82, 0x40, 0x0b, 0x00, 0x00, //0x00005af3 jb LBB31_117 + 0x4c, 0x89, 0xe1, //0x00005af9 movq %r12, %rcx + 0x48, 0xf7, 0xd1, //0x00005afc notq %rcx + 0x66, 0x0f, 0x6f, 0x05, 0xe9, 0xfd, 0xff, 0xff, //0x00005aff movdqa $-535(%rip), %xmm0 /* LCPI31_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xf1, 0xfd, 0xff, 0xff, //0x00005b07 movdqa $-527(%rip), %xmm1 /* LCPI31_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0xf9, 0xfd, 0xff, 0xff, //0x00005b0f movdqa $-519(%rip), %xmm2 /* LCPI31_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005b17 .p2align 4, 0x90 + //0x00005b20 LBB31_31 + 0xf3, 0x41, 0x0f, 0x6f, 0x1c, 0x11, //0x00005b20 movdqu (%r9,%rdx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00005b26 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005b2a pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xdb, 0xd9, //0x00005b2e pand %xmm1, %xmm3 + 0x66, 0x0f, 0x74, 0xda, //0x00005b32 pcmpeqb %xmm2, %xmm3 + 0x66, 0x0f, 0xeb, 0xdc, //0x00005b36 por %xmm4, %xmm3 + 0x66, 0x0f, 0xd7, 0xfb, //0x00005b3a pmovmskb %xmm3, %edi + 0x85, 0xff, //0x00005b3e testl %edi, %edi + 0x0f, 0x85, 0x6f, 0x00, 0x00, 0x00, //0x00005b40 jne LBB31_41 + 0x48, 0x83, 0xc2, 0x10, //0x00005b46 addq $16, %rdx + 0x48, 0x8d, 0x3c, 0x08, //0x00005b4a leaq (%rax,%rcx), %rdi + 0x48, 0x83, 0xc7, 0xf0, //0x00005b4e addq $-16, %rdi + 0x48, 0x83, 0xc1, 0xf0, //0x00005b52 addq $-16, %rcx + 0x48, 0x83, 0xff, 0x0f, //0x00005b56 cmpq $15, %rdi + 0x0f, 0x87, 0xc0, 0xff, 0xff, 0xff, //0x00005b5a ja LBB31_31 + 0x4c, 0x89, 0xca, //0x00005b60 movq %r9, %rdx + 0x48, 0x29, 0xca, //0x00005b63 subq %rcx, %rdx + 0x48, 0x01, 0xc8, //0x00005b66 addq %rcx, %rax + 0x48, 0x89, 0xc1, //0x00005b69 movq %rax, %rcx + 0x48, 0x85, 0xc9, //0x00005b6c testq %rcx, %rcx + 0x0f, 0x84, 0x35, 0x00, 0x00, 0x00, //0x00005b6f je LBB31_40 + //0x00005b75 LBB31_34 + 0x48, 0x8d, 0x3c, 0x0a, //0x00005b75 leaq (%rdx,%rcx), %rdi + 0x31, 0xc0, //0x00005b79 xorl %eax, %eax + //0x00005b7b LBB31_35 + 0x0f, 0xb6, 0x1c, 0x02, //0x00005b7b movzbl (%rdx,%rax), %ebx + 0x80, 0xfb, 0x2c, //0x00005b7f cmpb $44, %bl + 0x0f, 0x84, 0x94, 0x0a, 0x00, 0x00, //0x00005b82 je LBB31_115 + 0x80, 0xfb, 0x7d, //0x00005b88 cmpb $125, %bl + 0x0f, 0x84, 0x8b, 0x0a, 0x00, 0x00, //0x00005b8b je LBB31_115 + 0x80, 0xfb, 0x5d, //0x00005b91 cmpb $93, %bl + 0x0f, 0x84, 0x82, 0x0a, 0x00, 0x00, //0x00005b94 je LBB31_115 + 0x48, 0x83, 0xc0, 0x01, //0x00005b9a addq $1, %rax + 0x48, 0x39, 0xc1, //0x00005b9e cmpq %rax, %rcx + 0x0f, 0x85, 0xd4, 0xff, 0xff, 0xff, //0x00005ba1 jne LBB31_35 + 0x48, 0x89, 0xfa, //0x00005ba7 movq %rdi, %rdx + //0x00005baa LBB31_40 + 0x4c, 0x29, 0xca, //0x00005baa subq %r9, %rdx + 0x48, 0x89, 0x16, //0x00005bad movq %rdx, (%rsi) + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00005bb0 jmp LBB31_43 + //0x00005bb5 LBB31_41 + 0x66, 0x0f, 0xbc, 0xc7, //0x00005bb5 bsfw %di, %ax + 0x0f, 0xb7, 0xc0, //0x00005bb9 movzwl %ax, %eax + 0x48, 0x29, 0xc8, //0x00005bbc subq %rcx, %rax + //0x00005bbf LBB31_42 + 0x48, 0x89, 0x06, //0x00005bbf movq %rax, (%rsi) + //0x00005bc2 LBB31_43 + 0x4d, 0x89, 0xe6, //0x00005bc2 movq %r12, %r14 + //0x00005bc5 LBB31_44 + 0x4c, 0x89, 0xf0, //0x00005bc5 movq %r14, %rax + 0x48, 0x83, 0xc4, 0x58, //0x00005bc8 addq $88, %rsp + 0x5b, //0x00005bcc popq %rbx + 0x41, 0x5c, //0x00005bcd popq %r12 + 0x41, 0x5d, //0x00005bcf popq %r13 + 0x41, 0x5e, //0x00005bd1 popq %r14 + 0x41, 0x5f, //0x00005bd3 popq %r15 + 0x5d, //0x00005bd5 popq %rbp + 0xc3, //0x00005bd6 retq + //0x00005bd7 LBB31_45 + 0x49, 0x8d, 0x44, 0x24, 0x04, //0x00005bd7 leaq $4(%r12), %rax + 0x48, 0x3b, 0x47, 0x08, //0x00005bdc cmpq $8(%rdi), %rax + 0x0f, 0x86, 0xd9, 0xff, 0xff, 0xff, //0x00005be0 jbe LBB31_42 + 0xe9, 0xda, 0xff, 0xff, 0xff, //0x00005be6 jmp LBB31_44 + //0x00005beb LBB31_46 + 0x4c, 0x89, 0x26, //0x00005beb movq %r12, (%rsi) + 0x49, 0xc7, 0xc6, 0xfe, 0xff, 0xff, 0xff, //0x00005bee movq $-2, %r14 + 0xe9, 0xcb, 0xff, 0xff, 0xff, //0x00005bf5 jmp LBB31_44 + //0x00005bfa LBB31_47 + 0x4c, 0x8b, 0x47, 0x08, //0x00005bfa movq $8(%rdi), %r8 + 0x4d, 0x89, 0xc7, //0x00005bfe movq %r8, %r15 + 0x49, 0x29, 0xd7, //0x00005c01 subq %rdx, %r15 + 0x49, 0x83, 0xff, 0x20, //0x00005c04 cmpq $32, %r15 + 0x0f, 0x8c, 0x3c, 0x0a, 0x00, 0x00, //0x00005c08 jl LBB31_118 + 0x4f, 0x8d, 0x14, 0x21, //0x00005c0e leaq (%r9,%r12), %r10 + 0x4d, 0x29, 0xe0, //0x00005c12 subq %r12, %r8 + 0x41, 0xbd, 0x1f, 0x00, 0x00, 0x00, //0x00005c15 movl $31, %r13d + 0x45, 0x31, 0xff, //0x00005c1b xorl %r15d, %r15d + 0x66, 0x0f, 0x6f, 0x05, 0xfa, 0xfc, 0xff, 0xff, //0x00005c1e movdqa $-774(%rip), %xmm0 /* LCPI31_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x02, 0xfd, 0xff, 0xff, //0x00005c26 movdqa $-766(%rip), %xmm1 /* LCPI31_4+0(%rip) */ + 0x45, 0x31, 0xdb, //0x00005c2e xorl %r11d, %r11d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005c31 .p2align 4, 0x90 + //0x00005c40 LBB31_49 + 0xf3, 0x43, 0x0f, 0x6f, 0x54, 0x3a, 0x01, //0x00005c40 movdqu $1(%r10,%r15), %xmm2 + 0xf3, 0x43, 0x0f, 0x6f, 0x5c, 0x3a, 0x11, //0x00005c47 movdqu $17(%r10,%r15), %xmm3 + 0x66, 0x0f, 0x6f, 0xe2, //0x00005c4e movdqa %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005c52 pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xcc, //0x00005c56 pmovmskb %xmm4, %ecx + 0x66, 0x0f, 0x6f, 0xe3, //0x00005c5a movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x74, 0xe0, //0x00005c5e pcmpeqb %xmm0, %xmm4 + 0x66, 0x0f, 0xd7, 0xc4, //0x00005c62 pmovmskb %xmm4, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x00005c66 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005c6a orq %rcx, %rax + 0x66, 0x0f, 0x74, 0xd1, //0x00005c6d pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005c71 pmovmskb %xmm2, %ebx + 0x66, 0x0f, 0x74, 0xd9, //0x00005c75 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x00005c79 pmovmskb %xmm3, %ecx + 0x48, 0xc1, 0xe1, 0x10, //0x00005c7d shlq $16, %rcx + 0x48, 0x09, 0xd9, //0x00005c81 orq %rbx, %rcx + 0x48, 0x89, 0xcb, //0x00005c84 movq %rcx, %rbx + 0x4c, 0x09, 0xdb, //0x00005c87 orq %r11, %rbx + 0x0f, 0x84, 0x40, 0x00, 0x00, 0x00, //0x00005c8a je LBB31_51 + 0x44, 0x89, 0xdb, //0x00005c90 movl %r11d, %ebx + 0xf7, 0xd3, //0x00005c93 notl %ebx + 0x21, 0xcb, //0x00005c95 andl %ecx, %ebx + 0x8d, 0x14, 0x1b, //0x00005c97 leal (%rbx,%rbx), %edx + 0x44, 0x09, 0xda, //0x00005c9a orl %r11d, %edx + 0x89, 0xd7, //0x00005c9d movl %edx, %edi + 0xf7, 0xd7, //0x00005c9f notl %edi + 0x21, 0xcf, //0x00005ca1 andl %ecx, %edi + 0x81, 0xe7, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005ca3 andl $-1431655766, %edi + 0x45, 0x31, 0xdb, //0x00005ca9 xorl %r11d, %r11d + 0x01, 0xdf, //0x00005cac addl %ebx, %edi + 0x41, 0x0f, 0x92, 0xc3, //0x00005cae setb %r11b + 0x01, 0xff, //0x00005cb2 addl %edi, %edi + 0x81, 0xf7, 0x55, 0x55, 0x55, 0x55, //0x00005cb4 xorl $1431655765, %edi + 0x21, 0xd7, //0x00005cba andl %edx, %edi + 0xf7, 0xd7, //0x00005cbc notl %edi + 0x21, 0xf8, //0x00005cbe andl %edi, %eax + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x00005cc0 jmp LBB31_52 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00005cc5 .p2align 4, 0x90 + //0x00005cd0 LBB31_51 + 0x45, 0x31, 0xdb, //0x00005cd0 xorl %r11d, %r11d + //0x00005cd3 LBB31_52 + 0x48, 0x85, 0xc0, //0x00005cd3 testq %rax, %rax + 0x0f, 0x85, 0xe6, 0x08, 0x00, 0x00, //0x00005cd6 jne LBB31_110 + 0x49, 0x83, 0xc7, 0x20, //0x00005cdc addq $32, %r15 + 0x4b, 0x8d, 0x04, 0x28, //0x00005ce0 leaq (%r8,%r13), %rax + 0x48, 0x83, 0xc0, 0xe0, //0x00005ce4 addq $-32, %rax + 0x49, 0x83, 0xc5, 0xe0, //0x00005ce8 addq $-32, %r13 + 0x48, 0x83, 0xf8, 0x3f, //0x00005cec cmpq $63, %rax + 0x0f, 0x8f, 0x4a, 0xff, 0xff, 0xff, //0x00005cf0 jg LBB31_49 + 0x4d, 0x85, 0xdb, //0x00005cf6 testq %r11, %r11 + 0x0f, 0x85, 0x5f, 0x09, 0x00, 0x00, //0x00005cf9 jne LBB31_120 + 0x4b, 0x8d, 0x14, 0x17, //0x00005cff leaq (%r15,%r10), %rdx + 0x48, 0x83, 0xc2, 0x01, //0x00005d03 addq $1, %rdx + 0x49, 0xf7, 0xd7, //0x00005d07 notq %r15 + 0x4d, 0x01, 0xc7, //0x00005d0a addq %r8, %r15 + //0x00005d0d LBB31_56 + 0x4d, 0x85, 0xff, //0x00005d0d testq %r15, %r15 + 0x0f, 0x8e, 0xaf, 0xfe, 0xff, 0xff, //0x00005d10 jle LBB31_44 + 0x49, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00005d16 movq $-1, %r14 + 0xe9, 0xca, 0x08, 0x00, 0x00, //0x00005d1d jmp LBB31_112 + //0x00005d22 LBB31_58 + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005d22 movabsq $6148914691236517205, %r10 + 0x48, 0x8b, 0x47, 0x08, //0x00005d2c movq $8(%rdi), %rax + 0x48, 0x29, 0xd0, //0x00005d30 subq %rdx, %rax + 0x49, 0x01, 0xd1, //0x00005d33 addq %rdx, %r9 + 0x45, 0x31, 0xed, //0x00005d36 xorl %r13d, %r13d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xee, 0xfb, 0xff, 0xff, //0x00005d39 movdqa $-1042(%rip), %xmm10 /* LCPI31_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xd6, 0xfb, 0xff, 0xff, //0x00005d42 movdqa $-1066(%rip), %xmm1 /* LCPI31_3+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x00005d4a pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0x09, 0xfc, 0xff, 0xff, //0x00005d4f movdqa $-1015(%rip), %xmm3 /* LCPI31_7+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0xb1, 0xfb, 0xff, 0xff, //0x00005d57 movdqa $-1103(%rip), %xmm4 /* LCPI31_2+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x00005d5f xorps %xmm8, %xmm8 + 0x45, 0x31, 0xff, //0x00005d63 xorl %r15d, %r15d + 0x31, 0xc9, //0x00005d66 xorl %ecx, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x00005d68 movq %rcx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x00005d6c xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x00005d6f jmp LBB31_60 + //0x00005d74 LBB31_59 + 0x49, 0xc1, 0xff, 0x3f, //0x00005d74 sarq $63, %r15 + 0x4c, 0x89, 0xc0, //0x00005d78 movq %r8, %rax + 0x48, 0xd1, 0xe8, //0x00005d7b shrq %rax + 0x4c, 0x21, 0xd0, //0x00005d7e andq %r10, %rax + 0x49, 0x29, 0xc0, //0x00005d81 subq %rax, %r8 + 0x4c, 0x89, 0xc0, //0x00005d84 movq %r8, %rax + 0x4c, 0x21, 0xe8, //0x00005d87 andq %r13, %rax + 0x49, 0xc1, 0xe8, 0x02, //0x00005d8a shrq $2, %r8 + 0x4d, 0x21, 0xe8, //0x00005d8e andq %r13, %r8 + 0x49, 0x01, 0xc0, //0x00005d91 addq %rax, %r8 + 0x4c, 0x89, 0xc0, //0x00005d94 movq %r8, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00005d97 shrq $4, %rax + 0x4c, 0x01, 0xc0, //0x00005d9b addq %r8, %rax + 0x48, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005d9e movabsq $1085102592571150095, %rcx + 0x48, 0x21, 0xc8, //0x00005da8 andq %rcx, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005dab movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x00005db5 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x00005db9 shrq $56, %rax + 0x48, 0x01, 0x45, 0xc0, //0x00005dbd addq %rax, $-64(%rbp) + 0x49, 0x83, 0xc1, 0x40, //0x00005dc1 addq $64, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x00005dc5 movq $-48(%rbp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x00005dc9 addq $-64, %rax + 0x4d, 0x89, 0xfd, //0x00005dcd movq %r15, %r13 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00005dd0 movq $-56(%rbp), %r15 + //0x00005dd4 LBB31_60 + 0x48, 0x83, 0xf8, 0x40, //0x00005dd4 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00005dd8 movq %rax, $-48(%rbp) + 0x0f, 0x8c, 0x2c, 0x02, 0x00, 0x00, //0x00005ddc jl LBB31_67 + //0x00005de2 LBB31_61 + 0xf3, 0x41, 0x0f, 0x6f, 0x01, //0x00005de2 movdqu (%r9), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x69, 0x10, //0x00005de7 movdqu $16(%r9), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x79, 0x20, //0x00005ded movdqu $32(%r9), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x71, 0x30, //0x00005df3 movdqu $48(%r9), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005df9 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005dfd pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00005e02 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd5, //0x00005e06 movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e0a pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00005e0f pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x00005e13 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e17 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005e1c pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005e20 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00005e24 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005e29 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00005e2d shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00005e31 shlq $32, %rcx + 0x48, 0x09, 0xd9, //0x00005e35 orq %rbx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00005e38 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005e3c orq %rcx, %rax + 0x48, 0x09, 0xc2, //0x00005e3f orq %rax, %rdx + 0x48, 0x89, 0xd0, //0x00005e42 movq %rdx, %rax + 0x4c, 0x09, 0xf8, //0x00005e45 orq %r15, %rax + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00005e48 jne LBB31_63 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x00005e4e movq $-1, %rdx + 0x31, 0xc0, //0x00005e55 xorl %eax, %eax + 0x48, 0x89, 0x45, 0xc8, //0x00005e57 movq %rax, $-56(%rbp) + 0xe9, 0x3e, 0x00, 0x00, 0x00, //0x00005e5b jmp LBB31_64 + //0x00005e60 LBB31_63 + 0x4c, 0x89, 0xf8, //0x00005e60 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00005e63 notq %rax + 0x48, 0x21, 0xd0, //0x00005e66 andq %rdx, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x00005e69 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x00005e6d orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x00005e70 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x00005e73 notq %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00005e76 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xda, //0x00005e80 andq %rbx, %rdx + 0x48, 0x21, 0xca, //0x00005e83 andq %rcx, %rdx + 0x31, 0xc9, //0x00005e86 xorl %ecx, %ecx + 0x48, 0x01, 0xc2, //0x00005e88 addq %rax, %rdx + 0x0f, 0x92, 0xc1, //0x00005e8b setb %cl + 0x48, 0x89, 0x4d, 0xc8, //0x00005e8e movq %rcx, $-56(%rbp) + 0x48, 0x01, 0xd2, //0x00005e92 addq %rdx, %rdx + 0x4c, 0x31, 0xd2, //0x00005e95 xorq %r10, %rdx + 0x4c, 0x21, 0xc2, //0x00005e98 andq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x00005e9b notq %rdx + //0x00005e9e LBB31_64 + 0x66, 0x0f, 0x6f, 0xd6, //0x00005e9e movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005ea2 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00005ea6 pmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x00005eaa shlq $48, %rax + 0x66, 0x0f, 0x6f, 0xd7, //0x00005eae movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005eb2 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005eb6 pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x20, //0x00005eba shlq $32, %rcx + 0x48, 0x09, 0xc1, //0x00005ebe orq %rax, %rcx + 0x66, 0x0f, 0x6f, 0xd5, //0x00005ec1 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005ec5 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00005ec9 pmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x00005ecd shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005ed1 orq %rcx, %rax + 0x66, 0x0f, 0x6f, 0xd0, //0x00005ed4 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00005ed8 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005edc pmovmskb %xmm2, %ecx + 0x48, 0x09, 0xc1, //0x00005ee0 orq %rax, %rcx + 0x48, 0x21, 0xd1, //0x00005ee3 andq %rdx, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00005ee6 movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x00005eeb pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x00005ef2 movq %xmm2, %r15 + 0x4d, 0x31, 0xef, //0x00005ef7 xorq %r13, %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x00005efa movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005efe pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xc2, //0x00005f02 pmovmskb %xmm2, %r8d + 0x66, 0x0f, 0x6f, 0xd5, //0x00005f07 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005f0b pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00005f0f pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x00005f13 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005f17 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00005f1b pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd6, //0x00005f1f movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00005f23 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00005f27 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x00005f2b shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00005f2f shlq $32, %rcx + 0x48, 0x09, 0xd9, //0x00005f33 orq %rbx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00005f36 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00005f3a orq %rcx, %rax + 0x49, 0x09, 0xc0, //0x00005f3d orq %rax, %r8 + 0x4c, 0x89, 0xf8, //0x00005f40 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00005f43 notq %rax + 0x49, 0x21, 0xc0, //0x00005f46 andq %rax, %r8 + 0x66, 0x0f, 0x74, 0xc4, //0x00005f49 pcmpeqb %xmm4, %xmm0 + 0x66, 0x0f, 0xd7, 0xc8, //0x00005f4d pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x74, 0xec, //0x00005f51 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00005f55 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00005f59 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x00005f5d pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x00005f62 pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x00005f66 pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x00005f6b shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x00005f6f shlq $32, %r10 + 0x4d, 0x09, 0xea, //0x00005f73 orq %r13, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x00005f76 shlq $16, %rbx + 0x4c, 0x09, 0xd3, //0x00005f7a orq %r10, %rbx + 0x48, 0x09, 0xd9, //0x00005f7d orq %rbx, %rcx + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00005f80 movabsq $6148914691236517205, %r10 + 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x00005f8a movabsq $3689348814741910323, %r13 + 0x48, 0x21, 0xc1, //0x00005f94 andq %rax, %rcx + 0x0f, 0x84, 0xd7, 0xfd, 0xff, 0xff, //0x00005f97 je LBB31_59 + 0x90, 0x90, 0x90, //0x00005f9d .p2align 4, 0x90 + //0x00005fa0 LBB31_65 + 0x48, 0x8d, 0x51, 0xff, //0x00005fa0 leaq $-1(%rcx), %rdx + 0x48, 0x89, 0xd3, //0x00005fa4 movq %rdx, %rbx + 0x4c, 0x21, 0xc3, //0x00005fa7 andq %r8, %rbx + 0x48, 0x89, 0xd8, //0x00005faa movq %rbx, %rax + 0x48, 0xd1, 0xe8, //0x00005fad shrq %rax + 0x4c, 0x21, 0xd0, //0x00005fb0 andq %r10, %rax + 0x48, 0x29, 0xc3, //0x00005fb3 subq %rax, %rbx + 0x48, 0x89, 0xd8, //0x00005fb6 movq %rbx, %rax + 0x4c, 0x21, 0xe8, //0x00005fb9 andq %r13, %rax + 0x48, 0xc1, 0xeb, 0x02, //0x00005fbc shrq $2, %rbx + 0x4c, 0x21, 0xeb, //0x00005fc0 andq %r13, %rbx + 0x48, 0x01, 0xc3, //0x00005fc3 addq %rax, %rbx + 0x48, 0x89, 0xd8, //0x00005fc6 movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00005fc9 shrq $4, %rax + 0x48, 0x01, 0xd8, //0x00005fcd addq %rbx, %rax + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00005fd0 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd8, //0x00005fda andq %rbx, %rax + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00005fdd movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xc3, //0x00005fe7 imulq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x00005feb shrq $56, %rax + 0x48, 0x03, 0x45, 0xc0, //0x00005fef addq $-64(%rbp), %rax + 0x4c, 0x39, 0xd8, //0x00005ff3 cmpq %r11, %rax + 0x0f, 0x86, 0x92, 0x05, 0x00, 0x00, //0x00005ff6 jbe LBB31_109 + 0x49, 0x83, 0xc3, 0x01, //0x00005ffc addq $1, %r11 + 0x48, 0x21, 0xd1, //0x00006000 andq %rdx, %rcx + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006003 jne LBB31_65 + 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x00006009 jmp LBB31_59 + //0x0000600e LBB31_67 + 0x48, 0x85, 0xc0, //0x0000600e testq %rax, %rax + 0x0f, 0x8e, 0x3b, 0x06, 0x00, 0x00, //0x00006011 jle LBB31_119 + 0x4c, 0x89, 0xf9, //0x00006017 movq %r15, %rcx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000601a movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000601f movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006024 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006029 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc8, //0x0000602e movl %r9d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00006031 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00006036 cmpl $4033, %eax + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000603b jb LBB31_71 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006041 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006046 jb LBB31_72 + 0x41, 0x0f, 0x10, 0x01, //0x0000604c movups (%r9), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00006050 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x41, 0x10, //0x00006054 movups $16(%r9), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x00006059 movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc1, 0x20, //0x0000605d addq $32, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x00006061 movq $-48(%rbp), %rax + 0x48, 0x8d, 0x50, 0xe0, //0x00006065 leaq $-32(%rax), %rdx + 0x4c, 0x8d, 0x45, 0xa0, //0x00006069 leaq $-96(%rbp), %r8 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x0000606d jmp LBB31_73 + //0x00006072 LBB31_71 + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006072 movabsq $6148914691236517205, %r10 + 0x49, 0x89, 0xcf, //0x0000607c movq %rcx, %r15 + 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x0000607f jmp LBB31_61 + //0x00006084 LBB31_72 + 0x4c, 0x8d, 0x45, 0x80, //0x00006084 leaq $-128(%rbp), %r8 + 0x48, 0x8b, 0x55, 0xd0, //0x00006088 movq $-48(%rbp), %rdx + //0x0000608c LBB31_73 + 0x48, 0x83, 0xfa, 0x10, //0x0000608c cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x00006090 jb LBB31_74 + 0x41, 0x0f, 0x10, 0x01, //0x00006096 movups (%r9), %xmm0 + 0x41, 0x0f, 0x11, 0x00, //0x0000609a movups %xmm0, (%r8) + 0x49, 0x83, 0xc1, 0x10, //0x0000609e addq $16, %r9 + 0x49, 0x83, 0xc0, 0x10, //0x000060a2 addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x000060a6 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000060aa cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000060ae jae LBB31_81 + //0x000060b4 LBB31_75 + 0x48, 0x83, 0xfa, 0x04, //0x000060b4 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000060b8 jl LBB31_76 + //0x000060be LBB31_82 + 0x41, 0x8b, 0x01, //0x000060be movl (%r9), %eax + 0x41, 0x89, 0x00, //0x000060c1 movl %eax, (%r8) + 0x49, 0x83, 0xc1, 0x04, //0x000060c4 addq $4, %r9 + 0x49, 0x83, 0xc0, 0x04, //0x000060c8 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x000060cc addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x000060d0 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000060d4 jae LBB31_77 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x000060da jmp LBB31_78 + //0x000060df LBB31_74 + 0x48, 0x83, 0xfa, 0x08, //0x000060df cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x000060e3 jb LBB31_75 + //0x000060e9 LBB31_81 + 0x49, 0x8b, 0x01, //0x000060e9 movq (%r9), %rax + 0x49, 0x89, 0x00, //0x000060ec movq %rax, (%r8) + 0x49, 0x83, 0xc1, 0x08, //0x000060ef addq $8, %r9 + 0x49, 0x83, 0xc0, 0x08, //0x000060f3 addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x000060f7 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x000060fb cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x000060ff jge LBB31_82 + //0x00006105 LBB31_76 + 0x48, 0x83, 0xfa, 0x02, //0x00006105 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00006109 jb LBB31_78 + //0x0000610f LBB31_77 + 0x41, 0x0f, 0xb7, 0x01, //0x0000610f movzwl (%r9), %eax + 0x66, 0x41, 0x89, 0x00, //0x00006113 movw %ax, (%r8) + 0x49, 0x83, 0xc1, 0x02, //0x00006117 addq $2, %r9 + 0x49, 0x83, 0xc0, 0x02, //0x0000611b addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x0000611f addq $-2, %rdx + //0x00006123 LBB31_78 + 0x4c, 0x89, 0xc8, //0x00006123 movq %r9, %rax + 0x4c, 0x8d, 0x4d, 0x80, //0x00006126 leaq $-128(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x0000612a testq %rdx, %rdx + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000612d movabsq $6148914691236517205, %r10 + 0x49, 0x89, 0xcf, //0x00006137 movq %rcx, %r15 + 0x0f, 0x84, 0xa2, 0xfc, 0xff, 0xff, //0x0000613a je LBB31_61 + 0x8a, 0x00, //0x00006140 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00006142 movb %al, (%r8) + 0x4c, 0x8d, 0x4d, 0x80, //0x00006145 leaq $-128(%rbp), %r9 + 0xe9, 0x94, 0xfc, 0xff, 0xff, //0x00006149 jmp LBB31_61 + //0x0000614e LBB31_83 + 0x49, 0x8d, 0x44, 0x24, 0x05, //0x0000614e leaq $5(%r12), %rax + 0x48, 0x3b, 0x47, 0x08, //0x00006153 cmpq $8(%rdi), %rax + 0x0f, 0x86, 0x62, 0xfa, 0xff, 0xff, //0x00006157 jbe LBB31_42 + 0xe9, 0x63, 0xfa, 0xff, 0xff, //0x0000615d jmp LBB31_44 + //0x00006162 LBB31_84 + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x00006162 movabsq $6148914691236517205, %r10 + 0x48, 0x8b, 0x47, 0x08, //0x0000616c movq $8(%rdi), %rax + 0x48, 0x29, 0xd0, //0x00006170 subq %rdx, %rax + 0x49, 0x01, 0xd1, //0x00006173 addq %rdx, %r9 + 0x45, 0x31, 0xed, //0x00006176 xorl %r13d, %r13d + 0x66, 0x44, 0x0f, 0x6f, 0x15, 0xae, 0xf7, 0xff, 0xff, //0x00006179 movdqa $-2130(%rip), %xmm10 /* LCPI31_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x96, 0xf7, 0xff, 0xff, //0x00006182 movdqa $-2154(%rip), %xmm1 /* LCPI31_3+0(%rip) */ + 0x66, 0x45, 0x0f, 0x76, 0xc9, //0x0000618a pcmpeqd %xmm9, %xmm9 + 0x66, 0x0f, 0x6f, 0x1d, 0xa9, 0xf7, 0xff, 0xff, //0x0000618f movdqa $-2135(%rip), %xmm3 /* LCPI31_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x25, 0xb1, 0xf7, 0xff, 0xff, //0x00006197 movdqa $-2127(%rip), %xmm4 /* LCPI31_6+0(%rip) */ + 0x45, 0x0f, 0x57, 0xc0, //0x0000619f xorps %xmm8, %xmm8 + 0x45, 0x31, 0xff, //0x000061a3 xorl %r15d, %r15d + 0x31, 0xc9, //0x000061a6 xorl %ecx, %ecx + 0x48, 0x89, 0x4d, 0xc0, //0x000061a8 movq %rcx, $-64(%rbp) + 0x45, 0x31, 0xdb, //0x000061ac xorl %r11d, %r11d + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000061af jmp LBB31_86 + //0x000061b4 LBB31_85 + 0x49, 0xc1, 0xff, 0x3f, //0x000061b4 sarq $63, %r15 + 0x4c, 0x89, 0xc0, //0x000061b8 movq %r8, %rax + 0x48, 0xd1, 0xe8, //0x000061bb shrq %rax + 0x4c, 0x21, 0xd0, //0x000061be andq %r10, %rax + 0x49, 0x29, 0xc0, //0x000061c1 subq %rax, %r8 + 0x4c, 0x89, 0xc0, //0x000061c4 movq %r8, %rax + 0x4c, 0x21, 0xe8, //0x000061c7 andq %r13, %rax + 0x49, 0xc1, 0xe8, 0x02, //0x000061ca shrq $2, %r8 + 0x4d, 0x21, 0xe8, //0x000061ce andq %r13, %r8 + 0x49, 0x01, 0xc0, //0x000061d1 addq %rax, %r8 + 0x4c, 0x89, 0xc0, //0x000061d4 movq %r8, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x000061d7 shrq $4, %rax + 0x4c, 0x01, 0xc0, //0x000061db addq %r8, %rax + 0x48, 0xb9, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x000061de movabsq $1085102592571150095, %rcx + 0x48, 0x21, 0xc8, //0x000061e8 andq %rcx, %rax + 0x48, 0xb9, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x000061eb movabsq $72340172838076673, %rcx + 0x48, 0x0f, 0xaf, 0xc1, //0x000061f5 imulq %rcx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x000061f9 shrq $56, %rax + 0x48, 0x01, 0x45, 0xc0, //0x000061fd addq %rax, $-64(%rbp) + 0x49, 0x83, 0xc1, 0x40, //0x00006201 addq $64, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x00006205 movq $-48(%rbp), %rax + 0x48, 0x83, 0xc0, 0xc0, //0x00006209 addq $-64, %rax + 0x4d, 0x89, 0xfd, //0x0000620d movq %r15, %r13 + 0x4c, 0x8b, 0x7d, 0xc8, //0x00006210 movq $-56(%rbp), %r15 + //0x00006214 LBB31_86 + 0x48, 0x83, 0xf8, 0x40, //0x00006214 cmpq $64, %rax + 0x48, 0x89, 0x45, 0xd0, //0x00006218 movq %rax, $-48(%rbp) + 0x0f, 0x8c, 0x2c, 0x02, 0x00, 0x00, //0x0000621c jl LBB31_93 + //0x00006222 LBB31_87 + 0xf3, 0x41, 0x0f, 0x6f, 0x01, //0x00006222 movdqu (%r9), %xmm0 + 0xf3, 0x41, 0x0f, 0x6f, 0x69, 0x10, //0x00006227 movdqu $16(%r9), %xmm5 + 0xf3, 0x41, 0x0f, 0x6f, 0x79, 0x20, //0x0000622d movdqu $32(%r9), %xmm7 + 0xf3, 0x41, 0x0f, 0x6f, 0x71, 0x30, //0x00006233 movdqu $48(%r9), %xmm6 + 0x66, 0x0f, 0x6f, 0xd0, //0x00006239 movdqa %xmm0, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000623d pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xd2, //0x00006242 pmovmskb %xmm2, %edx + 0x66, 0x0f, 0x6f, 0xd5, //0x00006246 movdqa %xmm5, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x0000624a pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x0000624f pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x00006253 movdqa %xmm7, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006257 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000625c pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd6, //0x00006260 movdqa %xmm6, %xmm2 + 0x66, 0x41, 0x0f, 0x74, 0xd2, //0x00006264 pcmpeqb %xmm10, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006269 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000626d shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x00006271 shlq $32, %rcx + 0x48, 0x09, 0xd9, //0x00006275 orq %rbx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00006278 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x0000627c orq %rcx, %rax + 0x48, 0x09, 0xc2, //0x0000627f orq %rax, %rdx + 0x48, 0x89, 0xd0, //0x00006282 movq %rdx, %rax + 0x4c, 0x09, 0xf8, //0x00006285 orq %r15, %rax + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00006288 jne LBB31_89 + 0x48, 0xc7, 0xc2, 0xff, 0xff, 0xff, 0xff, //0x0000628e movq $-1, %rdx + 0x31, 0xc0, //0x00006295 xorl %eax, %eax + 0x48, 0x89, 0x45, 0xc8, //0x00006297 movq %rax, $-56(%rbp) + 0xe9, 0x3e, 0x00, 0x00, 0x00, //0x0000629b jmp LBB31_90 + //0x000062a0 LBB31_89 + 0x4c, 0x89, 0xf8, //0x000062a0 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x000062a3 notq %rax + 0x48, 0x21, 0xd0, //0x000062a6 andq %rdx, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x000062a9 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf8, //0x000062ad orq %r15, %r8 + 0x4c, 0x89, 0xc1, //0x000062b0 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000062b3 notq %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x000062b6 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xda, //0x000062c0 andq %rbx, %rdx + 0x48, 0x21, 0xca, //0x000062c3 andq %rcx, %rdx + 0x31, 0xc9, //0x000062c6 xorl %ecx, %ecx + 0x48, 0x01, 0xc2, //0x000062c8 addq %rax, %rdx + 0x0f, 0x92, 0xc1, //0x000062cb setb %cl + 0x48, 0x89, 0x4d, 0xc8, //0x000062ce movq %rcx, $-56(%rbp) + 0x48, 0x01, 0xd2, //0x000062d2 addq %rdx, %rdx + 0x4c, 0x31, 0xd2, //0x000062d5 xorq %r10, %rdx + 0x4c, 0x21, 0xc2, //0x000062d8 andq %r8, %rdx + 0x48, 0xf7, 0xd2, //0x000062db notq %rdx + //0x000062de LBB31_90 + 0x66, 0x0f, 0x6f, 0xd6, //0x000062de movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000062e2 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x000062e6 pmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe0, 0x30, //0x000062ea shlq $48, %rax + 0x66, 0x0f, 0x6f, 0xd7, //0x000062ee movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x000062f2 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x000062f6 pmovmskb %xmm2, %ecx + 0x48, 0xc1, 0xe1, 0x20, //0x000062fa shlq $32, %rcx + 0x48, 0x09, 0xc1, //0x000062fe orq %rax, %rcx + 0x66, 0x0f, 0x6f, 0xd5, //0x00006301 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006305 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x00006309 pmovmskb %xmm2, %eax + 0x48, 0xc1, 0xe0, 0x10, //0x0000630d shlq $16, %rax + 0x48, 0x09, 0xc8, //0x00006311 orq %rcx, %rax + 0x66, 0x0f, 0x6f, 0xd0, //0x00006314 movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd1, //0x00006318 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000631c pmovmskb %xmm2, %ecx + 0x48, 0x09, 0xc1, //0x00006320 orq %rax, %rcx + 0x48, 0x21, 0xd1, //0x00006323 andq %rdx, %rcx + 0x66, 0x48, 0x0f, 0x6e, 0xd1, //0x00006326 movq %rcx, %xmm2 + 0x66, 0x41, 0x0f, 0x3a, 0x44, 0xd1, 0x00, //0x0000632b pclmulqdq $0, %xmm9, %xmm2 + 0x66, 0x49, 0x0f, 0x7e, 0xd7, //0x00006332 movq %xmm2, %r15 + 0x4d, 0x31, 0xef, //0x00006337 xorq %r13, %r15 + 0x66, 0x0f, 0x6f, 0xd0, //0x0000633a movdqa %xmm0, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000633e pcmpeqb %xmm3, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xc2, //0x00006342 pmovmskb %xmm2, %r8d + 0x66, 0x0f, 0x6f, 0xd5, //0x00006347 movdqa %xmm5, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x0000634b pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xc2, //0x0000634f pmovmskb %xmm2, %eax + 0x66, 0x0f, 0x6f, 0xd7, //0x00006353 movdqa %xmm7, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006357 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x0000635b pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x6f, 0xd6, //0x0000635f movdqa %xmm6, %xmm2 + 0x66, 0x0f, 0x74, 0xd3, //0x00006363 pcmpeqb %xmm3, %xmm2 + 0x66, 0x0f, 0xd7, 0xda, //0x00006367 pmovmskb %xmm2, %ebx + 0x48, 0xc1, 0xe3, 0x30, //0x0000636b shlq $48, %rbx + 0x48, 0xc1, 0xe1, 0x20, //0x0000636f shlq $32, %rcx + 0x48, 0x09, 0xd9, //0x00006373 orq %rbx, %rcx + 0x48, 0xc1, 0xe0, 0x10, //0x00006376 shlq $16, %rax + 0x48, 0x09, 0xc8, //0x0000637a orq %rcx, %rax + 0x49, 0x09, 0xc0, //0x0000637d orq %rax, %r8 + 0x4c, 0x89, 0xf8, //0x00006380 movq %r15, %rax + 0x48, 0xf7, 0xd0, //0x00006383 notq %rax + 0x49, 0x21, 0xc0, //0x00006386 andq %rax, %r8 + 0x66, 0x0f, 0x74, 0xc4, //0x00006389 pcmpeqb %xmm4, %xmm0 + 0x66, 0x0f, 0xd7, 0xc8, //0x0000638d pmovmskb %xmm0, %ecx + 0x66, 0x0f, 0x74, 0xec, //0x00006391 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0xd7, 0xdd, //0x00006395 pmovmskb %xmm5, %ebx + 0x66, 0x0f, 0x74, 0xfc, //0x00006399 pcmpeqb %xmm4, %xmm7 + 0x66, 0x44, 0x0f, 0xd7, 0xd7, //0x0000639d pmovmskb %xmm7, %r10d + 0x66, 0x0f, 0x74, 0xf4, //0x000063a2 pcmpeqb %xmm4, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xee, //0x000063a6 pmovmskb %xmm6, %r13d + 0x49, 0xc1, 0xe5, 0x30, //0x000063ab shlq $48, %r13 + 0x49, 0xc1, 0xe2, 0x20, //0x000063af shlq $32, %r10 + 0x4d, 0x09, 0xea, //0x000063b3 orq %r13, %r10 + 0x48, 0xc1, 0xe3, 0x10, //0x000063b6 shlq $16, %rbx + 0x4c, 0x09, 0xd3, //0x000063ba orq %r10, %rbx + 0x48, 0x09, 0xd9, //0x000063bd orq %rbx, %rcx + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000063c0 movabsq $6148914691236517205, %r10 + 0x49, 0xbd, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, 0x33, //0x000063ca movabsq $3689348814741910323, %r13 + 0x48, 0x21, 0xc1, //0x000063d4 andq %rax, %rcx + 0x0f, 0x84, 0xd7, 0xfd, 0xff, 0xff, //0x000063d7 je LBB31_85 + 0x90, 0x90, 0x90, //0x000063dd .p2align 4, 0x90 + //0x000063e0 LBB31_91 + 0x48, 0x8d, 0x51, 0xff, //0x000063e0 leaq $-1(%rcx), %rdx + 0x48, 0x89, 0xd3, //0x000063e4 movq %rdx, %rbx + 0x4c, 0x21, 0xc3, //0x000063e7 andq %r8, %rbx + 0x48, 0x89, 0xd8, //0x000063ea movq %rbx, %rax + 0x48, 0xd1, 0xe8, //0x000063ed shrq %rax + 0x4c, 0x21, 0xd0, //0x000063f0 andq %r10, %rax + 0x48, 0x29, 0xc3, //0x000063f3 subq %rax, %rbx + 0x48, 0x89, 0xd8, //0x000063f6 movq %rbx, %rax + 0x4c, 0x21, 0xe8, //0x000063f9 andq %r13, %rax + 0x48, 0xc1, 0xeb, 0x02, //0x000063fc shrq $2, %rbx + 0x4c, 0x21, 0xeb, //0x00006400 andq %r13, %rbx + 0x48, 0x01, 0xc3, //0x00006403 addq %rax, %rbx + 0x48, 0x89, 0xd8, //0x00006406 movq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x04, //0x00006409 shrq $4, %rax + 0x48, 0x01, 0xd8, //0x0000640d addq %rbx, %rax + 0x48, 0xbb, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, //0x00006410 movabsq $1085102592571150095, %rbx + 0x48, 0x21, 0xd8, //0x0000641a andq %rbx, %rax + 0x48, 0xbb, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x0000641d movabsq $72340172838076673, %rbx + 0x48, 0x0f, 0xaf, 0xc3, //0x00006427 imulq %rbx, %rax + 0x48, 0xc1, 0xe8, 0x38, //0x0000642b shrq $56, %rax + 0x48, 0x03, 0x45, 0xc0, //0x0000642f addq $-64(%rbp), %rax + 0x4c, 0x39, 0xd8, //0x00006433 cmpq %r11, %rax + 0x0f, 0x86, 0x52, 0x01, 0x00, 0x00, //0x00006436 jbe LBB31_109 + 0x49, 0x83, 0xc3, 0x01, //0x0000643c addq $1, %r11 + 0x48, 0x21, 0xd1, //0x00006440 andq %rdx, %rcx + 0x0f, 0x85, 0x97, 0xff, 0xff, 0xff, //0x00006443 jne LBB31_91 + 0xe9, 0x66, 0xfd, 0xff, 0xff, //0x00006449 jmp LBB31_85 + //0x0000644e LBB31_93 + 0x48, 0x85, 0xc0, //0x0000644e testq %rax, %rax + 0x0f, 0x8e, 0xfb, 0x01, 0x00, 0x00, //0x00006451 jle LBB31_119 + 0x4c, 0x89, 0xf9, //0x00006457 movq %r15, %rcx + 0x44, 0x0f, 0x11, 0x45, 0xb0, //0x0000645a movups %xmm8, $-80(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0xa0, //0x0000645f movups %xmm8, $-96(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x90, //0x00006464 movups %xmm8, $-112(%rbp) + 0x44, 0x0f, 0x11, 0x45, 0x80, //0x00006469 movups %xmm8, $-128(%rbp) + 0x44, 0x89, 0xc8, //0x0000646e movl %r9d, %eax + 0x25, 0xff, 0x0f, 0x00, 0x00, //0x00006471 andl $4095, %eax + 0x3d, 0xc1, 0x0f, 0x00, 0x00, //0x00006476 cmpl $4033, %eax + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x0000647b jb LBB31_97 + 0x48, 0x83, 0x7d, 0xd0, 0x20, //0x00006481 cmpq $32, $-48(%rbp) + 0x0f, 0x82, 0x38, 0x00, 0x00, 0x00, //0x00006486 jb LBB31_98 + 0x41, 0x0f, 0x10, 0x01, //0x0000648c movups (%r9), %xmm0 + 0x0f, 0x11, 0x45, 0x80, //0x00006490 movups %xmm0, $-128(%rbp) + 0x41, 0x0f, 0x10, 0x41, 0x10, //0x00006494 movups $16(%r9), %xmm0 + 0x0f, 0x11, 0x45, 0x90, //0x00006499 movups %xmm0, $-112(%rbp) + 0x49, 0x83, 0xc1, 0x20, //0x0000649d addq $32, %r9 + 0x48, 0x8b, 0x45, 0xd0, //0x000064a1 movq $-48(%rbp), %rax + 0x48, 0x8d, 0x50, 0xe0, //0x000064a5 leaq $-32(%rax), %rdx + 0x4c, 0x8d, 0x45, 0xa0, //0x000064a9 leaq $-96(%rbp), %r8 + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x000064ad jmp LBB31_99 + //0x000064b2 LBB31_97 + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x000064b2 movabsq $6148914691236517205, %r10 + 0x49, 0x89, 0xcf, //0x000064bc movq %rcx, %r15 + 0xe9, 0x5e, 0xfd, 0xff, 0xff, //0x000064bf jmp LBB31_87 + //0x000064c4 LBB31_98 + 0x4c, 0x8d, 0x45, 0x80, //0x000064c4 leaq $-128(%rbp), %r8 + 0x48, 0x8b, 0x55, 0xd0, //0x000064c8 movq $-48(%rbp), %rdx + //0x000064cc LBB31_99 + 0x48, 0x83, 0xfa, 0x10, //0x000064cc cmpq $16, %rdx + 0x0f, 0x82, 0x49, 0x00, 0x00, 0x00, //0x000064d0 jb LBB31_100 + 0x41, 0x0f, 0x10, 0x01, //0x000064d6 movups (%r9), %xmm0 + 0x41, 0x0f, 0x11, 0x00, //0x000064da movups %xmm0, (%r8) + 0x49, 0x83, 0xc1, 0x10, //0x000064de addq $16, %r9 + 0x49, 0x83, 0xc0, 0x10, //0x000064e2 addq $16, %r8 + 0x48, 0x83, 0xc2, 0xf0, //0x000064e6 addq $-16, %rdx + 0x48, 0x83, 0xfa, 0x08, //0x000064ea cmpq $8, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x000064ee jae LBB31_107 + //0x000064f4 LBB31_101 + 0x48, 0x83, 0xfa, 0x04, //0x000064f4 cmpq $4, %rdx + 0x0f, 0x8c, 0x47, 0x00, 0x00, 0x00, //0x000064f8 jl LBB31_102 + //0x000064fe LBB31_108 + 0x41, 0x8b, 0x01, //0x000064fe movl (%r9), %eax + 0x41, 0x89, 0x00, //0x00006501 movl %eax, (%r8) + 0x49, 0x83, 0xc1, 0x04, //0x00006504 addq $4, %r9 + 0x49, 0x83, 0xc0, 0x04, //0x00006508 addq $4, %r8 + 0x48, 0x83, 0xc2, 0xfc, //0x0000650c addq $-4, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00006510 cmpq $2, %rdx + 0x0f, 0x83, 0x35, 0x00, 0x00, 0x00, //0x00006514 jae LBB31_103 + 0xe9, 0x44, 0x00, 0x00, 0x00, //0x0000651a jmp LBB31_104 + //0x0000651f LBB31_100 + 0x48, 0x83, 0xfa, 0x08, //0x0000651f cmpq $8, %rdx + 0x0f, 0x82, 0xcb, 0xff, 0xff, 0xff, //0x00006523 jb LBB31_101 + //0x00006529 LBB31_107 + 0x49, 0x8b, 0x01, //0x00006529 movq (%r9), %rax + 0x49, 0x89, 0x00, //0x0000652c movq %rax, (%r8) + 0x49, 0x83, 0xc1, 0x08, //0x0000652f addq $8, %r9 + 0x49, 0x83, 0xc0, 0x08, //0x00006533 addq $8, %r8 + 0x48, 0x83, 0xc2, 0xf8, //0x00006537 addq $-8, %rdx + 0x48, 0x83, 0xfa, 0x04, //0x0000653b cmpq $4, %rdx + 0x0f, 0x8d, 0xb9, 0xff, 0xff, 0xff, //0x0000653f jge LBB31_108 + //0x00006545 LBB31_102 + 0x48, 0x83, 0xfa, 0x02, //0x00006545 cmpq $2, %rdx + 0x0f, 0x82, 0x14, 0x00, 0x00, 0x00, //0x00006549 jb LBB31_104 + //0x0000654f LBB31_103 + 0x41, 0x0f, 0xb7, 0x01, //0x0000654f movzwl (%r9), %eax + 0x66, 0x41, 0x89, 0x00, //0x00006553 movw %ax, (%r8) + 0x49, 0x83, 0xc1, 0x02, //0x00006557 addq $2, %r9 + 0x49, 0x83, 0xc0, 0x02, //0x0000655b addq $2, %r8 + 0x48, 0x83, 0xc2, 0xfe, //0x0000655f addq $-2, %rdx + //0x00006563 LBB31_104 + 0x4c, 0x89, 0xc8, //0x00006563 movq %r9, %rax + 0x4c, 0x8d, 0x4d, 0x80, //0x00006566 leaq $-128(%rbp), %r9 + 0x48, 0x85, 0xd2, //0x0000656a testq %rdx, %rdx + 0x49, 0xba, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000656d movabsq $6148914691236517205, %r10 + 0x49, 0x89, 0xcf, //0x00006577 movq %rcx, %r15 + 0x0f, 0x84, 0xa2, 0xfc, 0xff, 0xff, //0x0000657a je LBB31_87 + 0x8a, 0x00, //0x00006580 movb (%rax), %al + 0x41, 0x88, 0x00, //0x00006582 movb %al, (%r8) + 0x4c, 0x8d, 0x4d, 0x80, //0x00006585 leaq $-128(%rbp), %r9 + 0xe9, 0x94, 0xfc, 0xff, 0xff, //0x00006589 jmp LBB31_87 + //0x0000658e LBB31_109 + 0x48, 0x8b, 0x47, 0x08, //0x0000658e movq $8(%rdi), %rax + 0x48, 0x0f, 0xbc, 0xc9, //0x00006592 bsfq %rcx, %rcx + 0x48, 0x2b, 0x4d, 0xd0, //0x00006596 subq $-48(%rbp), %rcx + 0x48, 0x01, 0xc8, //0x0000659a addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000659d addq $1, %rax + 0x48, 0x89, 0x06, //0x000065a1 movq %rax, (%rsi) + 0x48, 0x8b, 0x4f, 0x08, //0x000065a4 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc8, //0x000065a8 cmpq %rcx, %rax + 0x48, 0x0f, 0x47, 0xc1, //0x000065ab cmovaq %rcx, %rax + 0x48, 0x89, 0x06, //0x000065af movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065b2 movq $-1, %rax + 0x4c, 0x0f, 0x47, 0xe0, //0x000065b9 cmovaq %rax, %r12 + 0xe9, 0x00, 0xf6, 0xff, 0xff, //0x000065bd jmp LBB31_43 + //0x000065c2 LBB31_110 + 0x0f, 0xbc, 0xc0, //0x000065c2 bsfl %eax, %eax + 0x4c, 0x01, 0xe0, //0x000065c5 addq %r12, %rax + 0x4c, 0x01, 0xf8, //0x000065c8 addq %r15, %rax + 0x48, 0x83, 0xc0, 0x02, //0x000065cb addq $2, %rax + 0xe9, 0xeb, 0xf5, 0xff, 0xff, //0x000065cf jmp LBB31_42 + //0x000065d4 LBB31_111 + 0x48, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x000065d4 movq $-2, %rax + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x000065db movl $2, %ecx + 0x48, 0x01, 0xca, //0x000065e0 addq %rcx, %rdx + 0x49, 0x01, 0xc7, //0x000065e3 addq %rax, %r15 + 0x0f, 0x8e, 0xd9, 0xf5, 0xff, 0xff, //0x000065e6 jle LBB31_44 + //0x000065ec LBB31_112 + 0x0f, 0xb6, 0x02, //0x000065ec movzbl (%rdx), %eax + 0x3c, 0x5c, //0x000065ef cmpb $92, %al + 0x0f, 0x84, 0xdd, 0xff, 0xff, 0xff, //0x000065f1 je LBB31_111 + 0x3c, 0x22, //0x000065f7 cmpb $34, %al + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000065f9 je LBB31_116 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000065ff movq $-1, %rax + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x00006606 movl $1, %ecx + 0x48, 0x01, 0xca, //0x0000660b addq %rcx, %rdx + 0x49, 0x01, 0xc7, //0x0000660e addq %rax, %r15 + 0x0f, 0x8f, 0xd5, 0xff, 0xff, 0xff, //0x00006611 jg LBB31_112 + 0xe9, 0xa9, 0xf5, 0xff, 0xff, //0x00006617 jmp LBB31_44 + //0x0000661c LBB31_115 + 0x4c, 0x29, 0xca, //0x0000661c subq %r9, %rdx + 0x48, 0x01, 0xc2, //0x0000661f addq %rax, %rdx + 0x48, 0x89, 0x16, //0x00006622 movq %rdx, (%rsi) + 0xe9, 0x98, 0xf5, 0xff, 0xff, //0x00006625 jmp LBB31_43 + //0x0000662a LBB31_116 + 0x4c, 0x29, 0xca, //0x0000662a subq %r9, %rdx + 0x48, 0x83, 0xc2, 0x01, //0x0000662d addq $1, %rdx + 0x48, 0x89, 0x16, //0x00006631 movq %rdx, (%rsi) + 0xe9, 0x89, 0xf5, 0xff, 0xff, //0x00006634 jmp LBB31_43 + //0x00006639 LBB31_117 + 0x4c, 0x01, 0xca, //0x00006639 addq %r9, %rdx + 0x48, 0x85, 0xc9, //0x0000663c testq %rcx, %rcx + 0x0f, 0x85, 0x30, 0xf5, 0xff, 0xff, //0x0000663f jne LBB31_34 + 0xe9, 0x60, 0xf5, 0xff, 0xff, //0x00006645 jmp LBB31_40 + //0x0000664a LBB31_118 + 0x4c, 0x01, 0xca, //0x0000664a addq %r9, %rdx + 0xe9, 0xbb, 0xf6, 0xff, 0xff, //0x0000664d jmp LBB31_56 + //0x00006652 LBB31_119 + 0x48, 0x8b, 0x47, 0x08, //0x00006652 movq $8(%rdi), %rax + 0x48, 0x89, 0x06, //0x00006656 movq %rax, (%rsi) + 0xe9, 0x67, 0xf5, 0xff, 0xff, //0x00006659 jmp LBB31_44 + //0x0000665e LBB31_120 + 0x49, 0x8d, 0x40, 0xff, //0x0000665e leaq $-1(%r8), %rax + 0x4c, 0x39, 0xf8, //0x00006662 cmpq %r15, %rax + 0x0f, 0x84, 0x5a, 0xf5, 0xff, 0xff, //0x00006665 je LBB31_44 + 0x4b, 0x8d, 0x14, 0x17, //0x0000666b leaq (%r15,%r10), %rdx + 0x48, 0x83, 0xc2, 0x02, //0x0000666f addq $2, %rdx + 0x4d, 0x29, 0xf8, //0x00006673 subq %r15, %r8 + 0x49, 0x83, 0xc0, 0xfe, //0x00006676 addq $-2, %r8 + 0x4d, 0x89, 0xc7, //0x0000667a movq %r8, %r15 + 0xe9, 0x8b, 0xf6, 0xff, 0xff, //0x0000667d jmp LBB31_56 + 0x90, 0x90, //0x00006682 .p2align 2, 0x90 + // // .set L31_0_set_44, LBB31_44-LJTI31_0 + // // .set L31_0_set_46, LBB31_46-LJTI31_0 + // // .set L31_0_set_47, LBB31_47-LJTI31_0 + // // .set L31_0_set_29, LBB31_29-LJTI31_0 + // // .set L31_0_set_58, LBB31_58-LJTI31_0 + // // .set L31_0_set_83, LBB31_83-LJTI31_0 + // // .set L31_0_set_45, LBB31_45-LJTI31_0 + // // .set L31_0_set_84, LBB31_84-LJTI31_0 + //0x00006684 LJTI31_0 + 0x41, 0xf5, 0xff, 0xff, //0x00006684 .long L31_0_set_44 + 0x67, 0xf5, 0xff, 0xff, //0x00006688 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000668c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006690 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006694 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006698 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000669c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066a0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066a4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066a8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066ac .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066b0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066b4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066b8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066bc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066c0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066c4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066c8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066cc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066d0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066d4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066d8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066dc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066e0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066e4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066e8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066ec .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066f0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066f4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066f8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000066fc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006700 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006704 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006708 .long L31_0_set_46 + 0x76, 0xf5, 0xff, 0xff, //0x0000670c .long L31_0_set_47 + 0x67, 0xf5, 0xff, 0xff, //0x00006710 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006714 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006718 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000671c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006720 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006724 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006728 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000672c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006730 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006734 .long L31_0_set_46 + 0x61, 0xf4, 0xff, 0xff, //0x00006738 .long L31_0_set_29 + 0x67, 0xf5, 0xff, 0xff, //0x0000673c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006740 .long L31_0_set_46 + 0x61, 0xf4, 0xff, 0xff, //0x00006744 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006748 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x0000674c .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006750 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006754 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006758 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x0000675c .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006760 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006764 .long L31_0_set_29 + 0x61, 0xf4, 0xff, 0xff, //0x00006768 .long L31_0_set_29 + 0x67, 0xf5, 0xff, 0xff, //0x0000676c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006770 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006774 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006778 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000677c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006780 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006784 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006788 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000678c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006790 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006794 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006798 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000679c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067a0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067a4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067a8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067ac .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067b0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067b4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067b8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067bc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067c0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067c4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067c8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067cc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067d0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067d4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067d8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067dc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067e0 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067e4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067e8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067ec .long L31_0_set_46 + 0x9e, 0xf6, 0xff, 0xff, //0x000067f0 .long L31_0_set_58 + 0x67, 0xf5, 0xff, 0xff, //0x000067f4 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067f8 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x000067fc .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006800 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006804 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006808 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000680c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006810 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006814 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006818 .long L31_0_set_46 + 0xca, 0xfa, 0xff, 0xff, //0x0000681c .long L31_0_set_83 + 0x67, 0xf5, 0xff, 0xff, //0x00006820 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006824 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006828 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000682c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006830 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006834 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006838 .long L31_0_set_46 + 0x53, 0xf5, 0xff, 0xff, //0x0000683c .long L31_0_set_45 + 0x67, 0xf5, 0xff, 0xff, //0x00006840 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006844 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006848 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000684c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006850 .long L31_0_set_46 + 0x53, 0xf5, 0xff, 0xff, //0x00006854 .long L31_0_set_45 + 0x67, 0xf5, 0xff, 0xff, //0x00006858 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000685c .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006860 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006864 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x00006868 .long L31_0_set_46 + 0x67, 0xf5, 0xff, 0xff, //0x0000686c .long L31_0_set_46 + 0xde, 0xfa, 0xff, 0xff, //0x00006870 .long L31_0_set_84 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00006874 .p2align 4, 0x00 + //0x00006880 LCPI32_0 + 0x01, 0x00, 0x00, 0x00, //0x00006880 .long 1 + 0x00, 0x00, 0x00, 0x00, //0x00006884 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x00006888 .long 0 + 0x00, 0x00, 0x00, 0x00, //0x0000688c .long 0 + //0x00006890 .p2align 4, 0x90 + //0x00006890 _get_by_path + 0x55, //0x00006890 pushq %rbp + 0x48, 0x89, 0xe5, //0x00006891 movq %rsp, %rbp + 0x41, 0x57, //0x00006894 pushq %r15 + 0x41, 0x56, //0x00006896 pushq %r14 + 0x41, 0x55, //0x00006898 pushq %r13 + 0x41, 0x54, //0x0000689a pushq %r12 + 0x53, //0x0000689c pushq %rbx + 0x48, 0x83, 0xec, 0x38, //0x0000689d subq $56, %rsp + 0x49, 0x89, 0xf5, //0x000068a1 movq %rsi, %r13 + 0x49, 0x89, 0xfc, //0x000068a4 movq %rdi, %r12 + 0x48, 0x8b, 0x42, 0x08, //0x000068a7 movq $8(%rdx), %rax + 0x48, 0x85, 0xc0, //0x000068ab testq %rax, %rax + 0x0f, 0x84, 0x0b, 0x0c, 0x00, 0x00, //0x000068ae je LBB32_221 + 0x4c, 0x8b, 0x0a, //0x000068b4 movq (%rdx), %r9 + 0x48, 0xc1, 0xe0, 0x04, //0x000068b7 shlq $4, %rax + 0x4c, 0x01, 0xc8, //0x000068bb addq %r9, %rax + 0x48, 0x89, 0x45, 0xa8, //0x000068be movq %rax, $-88(%rbp) + 0x49, 0x8b, 0x14, 0x24, //0x000068c2 movq (%r12), %rdx + 0x49, 0x8b, 0x75, 0x00, //0x000068c6 movq (%r13), %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x000068ca movabsq $4294977024, %r10 + 0x48, 0x89, 0x4d, 0xa0, //0x000068d4 movq %rcx, $-96(%rbp) + //0x000068d8 LBB32_2 + 0x4d, 0x8b, 0x44, 0x24, 0x08, //0x000068d8 movq $8(%r12), %r8 + 0x4c, 0x39, 0xc6, //0x000068dd cmpq %r8, %rsi + 0x0f, 0x83, 0x2a, 0x00, 0x00, 0x00, //0x000068e0 jae LBB32_7 + 0x8a, 0x04, 0x32, //0x000068e6 movb (%rdx,%rsi), %al + 0x3c, 0x0d, //0x000068e9 cmpb $13, %al + 0x0f, 0x84, 0x1f, 0x00, 0x00, 0x00, //0x000068eb je LBB32_7 + 0x3c, 0x20, //0x000068f1 cmpb $32, %al + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000068f3 je LBB32_7 + 0x04, 0xf7, //0x000068f9 addb $-9, %al + 0x3c, 0x01, //0x000068fb cmpb $1, %al + 0x0f, 0x86, 0x0d, 0x00, 0x00, 0x00, //0x000068fd jbe LBB32_7 + 0x48, 0x89, 0xf7, //0x00006903 movq %rsi, %rdi + 0xe9, 0x14, 0x01, 0x00, 0x00, //0x00006906 jmp LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000690b .p2align 4, 0x90 + //0x00006910 LBB32_7 + 0x48, 0x8d, 0x7e, 0x01, //0x00006910 leaq $1(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x00006914 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006917 jae LBB32_11 + 0x8a, 0x04, 0x3a, //0x0000691d movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x00006920 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006922 je LBB32_11 + 0x3c, 0x20, //0x00006928 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000692a je LBB32_11 + 0x04, 0xf7, //0x00006930 addb $-9, %al + 0x3c, 0x01, //0x00006932 cmpb $1, %al + 0x0f, 0x87, 0xe5, 0x00, 0x00, 0x00, //0x00006934 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000693a .p2align 4, 0x90 + //0x00006940 LBB32_11 + 0x48, 0x8d, 0x7e, 0x02, //0x00006940 leaq $2(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x00006944 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006947 jae LBB32_15 + 0x8a, 0x04, 0x3a, //0x0000694d movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x00006950 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006952 je LBB32_15 + 0x3c, 0x20, //0x00006958 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000695a je LBB32_15 + 0x04, 0xf7, //0x00006960 addb $-9, %al + 0x3c, 0x01, //0x00006962 cmpb $1, %al + 0x0f, 0x87, 0xb5, 0x00, 0x00, 0x00, //0x00006964 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000696a .p2align 4, 0x90 + //0x00006970 LBB32_15 + 0x48, 0x8d, 0x7e, 0x03, //0x00006970 leaq $3(%rsi), %rdi + 0x4c, 0x39, 0xc7, //0x00006974 cmpq %r8, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006977 jae LBB32_19 + 0x8a, 0x04, 0x3a, //0x0000697d movb (%rdx,%rdi), %al + 0x3c, 0x0d, //0x00006980 cmpb $13, %al + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00006982 je LBB32_19 + 0x3c, 0x20, //0x00006988 cmpb $32, %al + 0x0f, 0x84, 0x10, 0x00, 0x00, 0x00, //0x0000698a je LBB32_19 + 0x04, 0xf7, //0x00006990 addb $-9, %al + 0x3c, 0x01, //0x00006992 cmpb $1, %al + 0x0f, 0x87, 0x85, 0x00, 0x00, 0x00, //0x00006994 ja LBB32_29 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000699a .p2align 4, 0x90 + //0x000069a0 LBB32_19 + 0x48, 0x8d, 0x46, 0x04, //0x000069a0 leaq $4(%rsi), %rax + 0x49, 0x39, 0xc0, //0x000069a4 cmpq %rax, %r8 + 0x0f, 0x86, 0x43, 0x00, 0x00, 0x00, //0x000069a7 jbe LBB32_25 + 0x49, 0x39, 0xc0, //0x000069ad cmpq %rax, %r8 + 0x0f, 0x84, 0x51, 0x00, 0x00, 0x00, //0x000069b0 je LBB32_26 + 0x4a, 0x8d, 0x3c, 0x02, //0x000069b6 leaq (%rdx,%r8), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000069ba .p2align 4, 0x90 + //0x000069c0 LBB32_22 + 0x0f, 0xbe, 0x1c, 0x02, //0x000069c0 movsbl (%rdx,%rax), %ebx + 0x83, 0xfb, 0x20, //0x000069c4 cmpl $32, %ebx + 0x0f, 0x87, 0x46, 0x00, 0x00, 0x00, //0x000069c7 ja LBB32_28 + 0x49, 0x0f, 0xa3, 0xda, //0x000069cd btq %rbx, %r10 + 0x0f, 0x83, 0x3c, 0x00, 0x00, 0x00, //0x000069d1 jae LBB32_28 + 0x48, 0x83, 0xc0, 0x01, //0x000069d7 addq $1, %rax + 0x49, 0x39, 0xc0, //0x000069db cmpq %rax, %r8 + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000069de jne LBB32_22 + 0xe9, 0x24, 0x00, 0x00, 0x00, //0x000069e4 jmp LBB32_27 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000069e9 .p2align 4, 0x90 + //0x000069f0 LBB32_25 + 0x49, 0x89, 0x45, 0x00, //0x000069f0 movq %rax, (%r13) + 0x31, 0xff, //0x000069f4 xorl %edi, %edi + 0x49, 0x8b, 0x31, //0x000069f6 movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x000069f9 testq %rsi, %rsi + 0x0f, 0x85, 0x4e, 0x00, 0x00, 0x00, //0x000069fc jne LBB32_31 + 0xe9, 0x2e, 0x0b, 0x00, 0x00, //0x00006a02 jmp LBB32_228 + //0x00006a07 LBB32_26 + 0x48, 0x01, 0xd0, //0x00006a07 addq %rdx, %rax + 0x48, 0x89, 0xc7, //0x00006a0a movq %rax, %rdi + //0x00006a0d LBB32_27 + 0x48, 0x29, 0xd7, //0x00006a0d subq %rdx, %rdi + 0x48, 0x89, 0xf8, //0x00006a10 movq %rdi, %rax + //0x00006a13 LBB32_28 + 0x48, 0x89, 0xc7, //0x00006a13 movq %rax, %rdi + 0x4c, 0x39, 0xc0, //0x00006a16 cmpq %r8, %rax + 0x0f, 0x83, 0x1d, 0x00, 0x00, 0x00, //0x00006a19 jae LBB32_30 + //0x00006a1f LBB32_29 + 0x48, 0x8d, 0x47, 0x01, //0x00006a1f leaq $1(%rdi), %rax + 0x49, 0x89, 0x45, 0x00, //0x00006a23 movq %rax, (%r13) + 0x40, 0x8a, 0x3c, 0x3a, //0x00006a27 movb (%rdx,%rdi), %dil + 0x49, 0x8b, 0x31, //0x00006a2b movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x00006a2e testq %rsi, %rsi + 0x0f, 0x85, 0x19, 0x00, 0x00, 0x00, //0x00006a31 jne LBB32_31 + 0xe9, 0xf9, 0x0a, 0x00, 0x00, //0x00006a37 jmp LBB32_228 + //0x00006a3c LBB32_30 + 0x31, 0xff, //0x00006a3c xorl %edi, %edi + 0x48, 0x89, 0xf0, //0x00006a3e movq %rsi, %rax + 0x49, 0x8b, 0x31, //0x00006a41 movq (%r9), %rsi + 0x48, 0x85, 0xf6, //0x00006a44 testq %rsi, %rsi + 0x0f, 0x84, 0xe8, 0x0a, 0x00, 0x00, //0x00006a47 je LBB32_228 + 0x90, 0x90, 0x90, //0x00006a4d .p2align 4, 0x90 + //0x00006a50 LBB32_31 + 0x8a, 0x5e, 0x17, //0x00006a50 movb $23(%rsi), %bl + 0x80, 0xe3, 0x1f, //0x00006a53 andb $31, %bl + 0x80, 0xfb, 0x02, //0x00006a56 cmpb $2, %bl + 0x4c, 0x89, 0x4d, 0xb8, //0x00006a59 movq %r9, $-72(%rbp) + 0x0f, 0x84, 0x0d, 0x07, 0x00, 0x00, //0x00006a5d je LBB32_161 + 0x80, 0xfb, 0x18, //0x00006a63 cmpb $24, %bl + 0x0f, 0x85, 0xc9, 0x0a, 0x00, 0x00, //0x00006a66 jne LBB32_228 + 0x40, 0x80, 0xff, 0x7b, //0x00006a6c cmpb $123, %dil + 0x4c, 0x89, 0x6d, 0xd0, //0x00006a70 movq %r13, $-48(%rbp) + 0x0f, 0x85, 0xd2, 0x0a, 0x00, 0x00, //0x00006a74 jne LBB32_234 + //0x00006a7a LBB32_34 + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006a7a movq $8(%r12), %rcx + 0x48, 0x39, 0xc8, //0x00006a7f cmpq %rcx, %rax + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00006a82 jae LBB32_39 + 0x8a, 0x1c, 0x02, //0x00006a88 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00006a8b cmpb $13, %bl + 0x0f, 0x84, 0x2c, 0x00, 0x00, 0x00, //0x00006a8e je LBB32_39 + 0x80, 0xfb, 0x20, //0x00006a94 cmpb $32, %bl + 0x0f, 0x84, 0x23, 0x00, 0x00, 0x00, //0x00006a97 je LBB32_39 + 0x80, 0xc3, 0xf7, //0x00006a9d addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006aa0 cmpb $1, %bl + 0x0f, 0x86, 0x17, 0x00, 0x00, 0x00, //0x00006aa3 jbe LBB32_39 + 0x49, 0x89, 0xc7, //0x00006aa9 movq %rax, %r15 + 0xe9, 0x04, 0x01, 0x00, 0x00, //0x00006aac jmp LBB32_60 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006ab1 .p2align 4, 0x90 + //0x00006ac0 LBB32_39 + 0x4c, 0x8d, 0x78, 0x01, //0x00006ac0 leaq $1(%rax), %r15 + 0x49, 0x39, 0xcf, //0x00006ac4 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006ac7 jae LBB32_43 + 0x42, 0x8a, 0x1c, 0x3a, //0x00006acd movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00006ad1 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006ad4 je LBB32_43 + 0x80, 0xfb, 0x20, //0x00006ada cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006add je LBB32_43 + 0x80, 0xc3, 0xf7, //0x00006ae3 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006ae6 cmpb $1, %bl + 0x0f, 0x87, 0xc6, 0x00, 0x00, 0x00, //0x00006ae9 ja LBB32_60 + 0x90, //0x00006aef .p2align 4, 0x90 + //0x00006af0 LBB32_43 + 0x4c, 0x8d, 0x78, 0x02, //0x00006af0 leaq $2(%rax), %r15 + 0x49, 0x39, 0xcf, //0x00006af4 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006af7 jae LBB32_47 + 0x42, 0x8a, 0x1c, 0x3a, //0x00006afd movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00006b01 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006b04 je LBB32_47 + 0x80, 0xfb, 0x20, //0x00006b0a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006b0d je LBB32_47 + 0x80, 0xc3, 0xf7, //0x00006b13 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006b16 cmpb $1, %bl + 0x0f, 0x87, 0x96, 0x00, 0x00, 0x00, //0x00006b19 ja LBB32_60 + 0x90, //0x00006b1f .p2align 4, 0x90 + //0x00006b20 LBB32_47 + 0x4c, 0x8d, 0x78, 0x03, //0x00006b20 leaq $3(%rax), %r15 + 0x49, 0x39, 0xcf, //0x00006b24 cmpq %rcx, %r15 + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006b27 jae LBB32_51 + 0x42, 0x8a, 0x1c, 0x3a, //0x00006b2d movb (%rdx,%r15), %bl + 0x80, 0xfb, 0x0d, //0x00006b31 cmpb $13, %bl + 0x0f, 0x84, 0x16, 0x00, 0x00, 0x00, //0x00006b34 je LBB32_51 + 0x80, 0xfb, 0x20, //0x00006b3a cmpb $32, %bl + 0x0f, 0x84, 0x0d, 0x00, 0x00, 0x00, //0x00006b3d je LBB32_51 + 0x80, 0xc3, 0xf7, //0x00006b43 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006b46 cmpb $1, %bl + 0x0f, 0x87, 0x66, 0x00, 0x00, 0x00, //0x00006b49 ja LBB32_60 + 0x90, //0x00006b4f .p2align 4, 0x90 + //0x00006b50 LBB32_51 + 0x4c, 0x8d, 0x78, 0x04, //0x00006b50 leaq $4(%rax), %r15 + 0x4c, 0x39, 0xf9, //0x00006b54 cmpq %r15, %rcx + 0x0f, 0x86, 0xec, 0x09, 0x00, 0x00, //0x00006b57 jbe LBB32_231 + 0x4c, 0x39, 0xf9, //0x00006b5d cmpq %r15, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006b60 je LBB32_57 + 0x48, 0x8d, 0x34, 0x0a, //0x00006b66 leaq (%rdx,%rcx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b6a .p2align 4, 0x90 + //0x00006b70 LBB32_54 + 0x42, 0x0f, 0xbe, 0x3c, 0x3a, //0x00006b70 movsbl (%rdx,%r15), %edi + 0x83, 0xff, 0x20, //0x00006b75 cmpl $32, %edi + 0x0f, 0x87, 0x2e, 0x00, 0x00, 0x00, //0x00006b78 ja LBB32_59 + 0x49, 0x0f, 0xa3, 0xfa, //0x00006b7e btq %rdi, %r10 + 0x0f, 0x83, 0x24, 0x00, 0x00, 0x00, //0x00006b82 jae LBB32_59 + 0x49, 0x83, 0xc7, 0x01, //0x00006b88 addq $1, %r15 + 0x4c, 0x39, 0xf9, //0x00006b8c cmpq %r15, %rcx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x00006b8f jne LBB32_54 + 0xe9, 0x0c, 0x00, 0x00, 0x00, //0x00006b95 jmp LBB32_58 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006b9a .p2align 4, 0x90 + //0x00006ba0 LBB32_57 + 0x49, 0x01, 0xd7, //0x00006ba0 addq %rdx, %r15 + 0x4c, 0x89, 0xfe, //0x00006ba3 movq %r15, %rsi + //0x00006ba6 LBB32_58 + 0x48, 0x29, 0xd6, //0x00006ba6 subq %rdx, %rsi + 0x49, 0x89, 0xf7, //0x00006ba9 movq %rsi, %r15 + //0x00006bac LBB32_59 + 0x49, 0x39, 0xcf, //0x00006bac cmpq %rcx, %r15 + 0x0f, 0x83, 0x97, 0x09, 0x00, 0x00, //0x00006baf jae LBB32_234 + //0x00006bb5 LBB32_60 + 0x4c, 0x89, 0xe8, //0x00006bb5 movq %r13, %rax + 0x4d, 0x8d, 0x6f, 0x01, //0x00006bb8 leaq $1(%r15), %r13 + 0x4c, 0x89, 0x28, //0x00006bbc movq %r13, (%rax) + 0x42, 0x8a, 0x0c, 0x3a, //0x00006bbf movb (%rdx,%r15), %cl + 0x80, 0xf9, 0x22, //0x00006bc3 cmpb $34, %cl + 0x0f, 0x85, 0x2f, 0x09, 0x00, 0x00, //0x00006bc6 jne LBB32_224 + 0x48, 0x8b, 0x45, 0xb8, //0x00006bcc movq $-72(%rbp), %rax + 0x48, 0x8b, 0x40, 0x08, //0x00006bd0 movq $8(%rax), %rax + 0x48, 0x8b, 0x18, //0x00006bd4 movq (%rax), %rbx + 0x4c, 0x8b, 0x70, 0x08, //0x00006bd7 movq $8(%rax), %r14 + 0x48, 0xc7, 0x45, 0xb0, 0xff, 0xff, 0xff, 0xff, //0x00006bdb movq $-1, $-80(%rbp) + 0x4c, 0x89, 0xe7, //0x00006be3 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x00006be6 movq %r13, %rsi + 0x48, 0x8d, 0x55, 0xb0, //0x00006be9 leaq $-80(%rbp), %rdx + 0xe8, 0xbe, 0x27, 0x00, 0x00, //0x00006bed callq _advance_string_default + 0x48, 0x85, 0xc0, //0x00006bf2 testq %rax, %rax + 0x0f, 0x88, 0x72, 0x09, 0x00, 0x00, //0x00006bf5 js LBB32_236 + 0x48, 0x8b, 0x4d, 0xd0, //0x00006bfb movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00006bff movq %rax, (%rcx) + 0x48, 0x8b, 0x4d, 0xb0, //0x00006c02 movq $-80(%rbp), %rcx + 0x48, 0x83, 0xf9, 0xff, //0x00006c06 cmpq $-1, %rcx + 0x0f, 0x84, 0x09, 0x00, 0x00, 0x00, //0x00006c0a je LBB32_64 + 0x48, 0x39, 0xc1, //0x00006c10 cmpq %rax, %rcx + 0x0f, 0x8e, 0x58, 0x01, 0x00, 0x00, //0x00006c13 jle LBB32_136 + //0x00006c19 LBB32_64 + 0x48, 0x89, 0xc2, //0x00006c19 movq %rax, %rdx + 0x4c, 0x29, 0xfa, //0x00006c1c subq %r15, %rdx + 0x48, 0x83, 0xc2, 0xfe, //0x00006c1f addq $-2, %rdx + 0x41, 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00006c23 movl $1, %r8d + 0x48, 0x89, 0xd1, //0x00006c29 movq %rdx, %rcx + 0x4c, 0x09, 0xf1, //0x00006c2c orq %r14, %rcx + 0x0f, 0x85, 0x1b, 0x00, 0x00, 0x00, //0x00006c2f jne LBB32_66 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c35 movabsq $4294977024, %r10 + 0xe9, 0x5f, 0x00, 0x00, 0x00, //0x00006c3f jmp LBB32_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006c44 .p2align 4, 0x90 + //0x00006c50 LBB32_66 + 0x4c, 0x39, 0xf2, //0x00006c50 cmpq %r14, %rdx + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006c53 movabsq $4294977024, %r10 + 0x0f, 0x85, 0x3d, 0x00, 0x00, 0x00, //0x00006c5d jne LBB32_71 + 0x49, 0x8b, 0x3c, 0x24, //0x00006c63 movq (%r12), %rdi + 0x49, 0x01, 0xfd, //0x00006c67 addq %rdi, %r13 + 0x31, 0xf6, //0x00006c6a xorl %esi, %esi + 0x4c, 0x89, 0xf2, //0x00006c6c movq %r14, %rdx + 0x90, //0x00006c6f .p2align 4, 0x90 + //0x00006c70 LBB32_68 + 0x48, 0x83, 0xfa, 0x10, //0x00006c70 cmpq $16, %rdx + 0x0f, 0x82, 0x68, 0x00, 0x00, 0x00, //0x00006c74 jb LBB32_72 + 0xf3, 0x41, 0x0f, 0x6f, 0x44, 0x35, 0x00, //0x00006c7a movdqu (%r13,%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x0c, 0x33, //0x00006c81 movdqu (%rbx,%rsi), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006c86 pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xc9, //0x00006c8a pmovmskb %xmm1, %ecx + 0x48, 0x83, 0xc2, 0xf0, //0x00006c8e addq $-16, %rdx + 0x48, 0x83, 0xc6, 0x10, //0x00006c92 addq $16, %rsi + 0x66, 0x83, 0xf9, 0xff, //0x00006c96 cmpw $-1, %cx + 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x00006c9a je LBB32_68 + //0x00006ca0 LBB32_71 + 0x45, 0x31, 0xc0, //0x00006ca0 xorl %r8d, %r8d + //0x00006ca3 LBB32_76 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006ca3 movq $-48(%rbp), %r13 + 0x49, 0x8b, 0x14, 0x24, //0x00006ca7 movq (%r12), %rdx + 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006cab movq $8(%r12), %rsi + 0x48, 0x39, 0xf0, //0x00006cb0 cmpq %rsi, %rax + 0x0f, 0x83, 0x27, 0x02, 0x00, 0x00, //0x00006cb3 jae LBB32_82 + //0x00006cb9 LBB32_78 + 0x8a, 0x1c, 0x02, //0x00006cb9 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00006cbc cmpb $13, %bl + 0x0f, 0x84, 0x1b, 0x02, 0x00, 0x00, //0x00006cbf je LBB32_82 + 0x80, 0xfb, 0x20, //0x00006cc5 cmpb $32, %bl + 0x0f, 0x84, 0x12, 0x02, 0x00, 0x00, //0x00006cc8 je LBB32_82 + 0x80, 0xc3, 0xf7, //0x00006cce addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006cd1 cmpb $1, %bl + 0x0f, 0x86, 0x06, 0x02, 0x00, 0x00, //0x00006cd4 jbe LBB32_82 + 0x48, 0x89, 0xc7, //0x00006cda movq %rax, %rdi + 0xe9, 0xf3, 0x02, 0x00, 0x00, //0x00006cdd jmp LBB32_107 + //0x00006ce2 LBB32_72 + 0x44, 0x01, 0xff, //0x00006ce2 addl %r15d, %edi + 0x8d, 0x0c, 0x3e, //0x00006ce5 leal (%rsi,%rdi), %ecx + 0x83, 0xc1, 0x01, //0x00006ce8 addl $1, %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006ceb andl $4095, %ecx + 0x81, 0xf9, 0xf0, 0x0f, 0x00, 0x00, //0x00006cf1 cmpl $4080, %ecx + 0x0f, 0x87, 0x57, 0x00, 0x00, 0x00, //0x00006cf7 ja LBB32_101 + 0x8d, 0x0c, 0x33, //0x00006cfd leal (%rbx,%rsi), %ecx + 0x81, 0xe1, 0xff, 0x0f, 0x00, 0x00, //0x00006d00 andl $4095, %ecx + 0x81, 0xf9, 0xf1, 0x0f, 0x00, 0x00, //0x00006d06 cmpl $4081, %ecx + 0x0f, 0x83, 0x42, 0x00, 0x00, 0x00, //0x00006d0c jae LBB32_101 + 0xf3, 0x41, 0x0f, 0x6f, 0x44, 0x35, 0x00, //0x00006d12 movdqu (%r13,%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x0c, 0x33, //0x00006d19 movdqu (%rbx,%rsi), %xmm1 + 0x66, 0x0f, 0x74, 0xc8, //0x00006d1e pcmpeqb %xmm0, %xmm1 + 0x66, 0x0f, 0xd7, 0xf1, //0x00006d22 pmovmskb %xmm1, %esi + 0x66, 0x83, 0xfe, 0xff, //0x00006d26 cmpw $-1, %si + 0x0f, 0x84, 0x73, 0xff, 0xff, 0xff, //0x00006d2a je LBB32_76 + 0xf7, 0xd6, //0x00006d30 notl %esi + 0x66, 0x0f, 0xbc, 0xce, //0x00006d32 bsfw %si, %cx + 0x0f, 0xb7, 0xc9, //0x00006d36 movzwl %cx, %ecx + 0x45, 0x31, 0xc0, //0x00006d39 xorl %r8d, %r8d + 0x48, 0x39, 0xca, //0x00006d3c cmpq %rcx, %rdx + 0x41, 0x0f, 0x96, 0xc0, //0x00006d3f setbe %r8b + 0xe9, 0x5b, 0xff, 0xff, 0xff, //0x00006d43 jmp LBB32_76 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006d48 .p2align 4, 0x90 + //0x00006d50 LBB32_100 + 0x48, 0x83, 0xc6, 0x01, //0x00006d50 addq $1, %rsi + //0x00006d54 LBB32_101 + 0x49, 0x39, 0xf6, //0x00006d54 cmpq %rsi, %r14 + 0x0f, 0x84, 0x46, 0xff, 0xff, 0xff, //0x00006d57 je LBB32_76 + 0x41, 0x0f, 0xb6, 0x4c, 0x35, 0x00, //0x00006d5d movzbl (%r13,%rsi), %ecx + 0x3a, 0x0c, 0x33, //0x00006d63 cmpb (%rbx,%rsi), %cl + 0x0f, 0x84, 0xe4, 0xff, 0xff, 0xff, //0x00006d66 je LBB32_100 + 0xe9, 0x2f, 0xff, 0xff, 0xff, //0x00006d6c jmp LBB32_71 + //0x00006d71 LBB32_136 + 0x48, 0xc7, 0x45, 0xc0, 0x00, 0x00, 0x00, 0x00, //0x00006d71 movq $0, $-64(%rbp) + 0x49, 0x8b, 0x0c, 0x24, //0x00006d79 movq (%r12), %rcx + 0x4a, 0x8d, 0x34, 0x29, //0x00006d7d leaq (%rcx,%r13), %rsi + 0x48, 0x89, 0x75, 0xc8, //0x00006d81 movq %rsi, $-56(%rbp) + 0x48, 0x01, 0xc1, //0x00006d85 addq %rax, %rcx + 0x48, 0x83, 0xc1, 0xff, //0x00006d88 addq $-1, %rcx + 0x48, 0x83, 0xc0, 0xff, //0x00006d8c addq $-1, %rax + 0x4e, 0x8d, 0x3c, 0x33, //0x00006d90 leaq (%rbx,%r14), %r15 + 0x49, 0x39, 0xc5, //0x00006d94 cmpq %rax, %r13 + 0x0f, 0x8d, 0xdf, 0x00, 0x00, 0x00, //0x00006d97 jge LBB32_153 + 0x4d, 0x85, 0xf6, //0x00006d9d testq %r14, %r14 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006da0 movq $-48(%rbp), %r13 + 0x48, 0x8d, 0x55, 0xc0, //0x00006da4 leaq $-64(%rbp), %rdx + 0x0f, 0x8e, 0xd2, 0x00, 0x00, 0x00, //0x00006da8 jle LBB32_154 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006dae movabsq $4294977024, %r10 + 0x49, 0x89, 0xce, //0x00006db8 movq %rcx, %r14 + //0x00006dbb LBB32_139 + 0x8a, 0x06, //0x00006dbb movb (%rsi), %al + 0x3c, 0x5c, //0x00006dbd cmpb $92, %al + 0x0f, 0x85, 0x6d, 0x00, 0x00, 0x00, //0x00006dbf jne LBB32_146 + 0x48, 0x8d, 0x7d, 0xc8, //0x00006dc5 leaq $-56(%rbp), %rdi + 0x4c, 0x89, 0xf6, //0x00006dc9 movq %r14, %rsi + 0xe8, 0x8f, 0x29, 0x00, 0x00, //0x00006dcc callq _unescape + 0x49, 0x89, 0xc0, //0x00006dd1 movq %rax, %r8 + 0x48, 0x85, 0xc0, //0x00006dd4 testq %rax, %rax + 0x0f, 0x88, 0xcd, 0x00, 0x00, 0x00, //0x00006dd7 js LBB32_158 + 0x49, 0x8d, 0x34, 0x28, //0x00006ddd leaq (%r8,%rbp), %rsi + 0x48, 0x83, 0xc6, 0xc0, //0x00006de1 addq $-64, %rsi + 0x48, 0x8d, 0x55, 0xc0, //0x00006de5 leaq $-64(%rbp), %rdx + 0x4c, 0x39, 0xfb, //0x00006de9 cmpq %r15, %rbx + 0x0f, 0x83, 0x59, 0x00, 0x00, 0x00, //0x00006dec jae LBB32_148 + 0x48, 0x39, 0xd6, //0x00006df2 cmpq %rdx, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006df5 movabsq $4294977024, %r10 + 0x48, 0x89, 0xd1, //0x00006dff movq %rdx, %rcx + 0x0f, 0x86, 0x50, 0x00, 0x00, 0x00, //0x00006e02 jbe LBB32_149 + //0x00006e08 LBB32_143 + 0x0f, 0xb6, 0x03, //0x00006e08 movzbl (%rbx), %eax + 0x3a, 0x01, //0x00006e0b cmpb (%rcx), %al + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x00006e0d jne LBB32_149 + 0x48, 0x83, 0xc3, 0x01, //0x00006e13 addq $1, %rbx + 0x48, 0x83, 0xc1, 0x01, //0x00006e17 addq $1, %rcx + 0x4c, 0x39, 0xfb, //0x00006e1b cmpq %r15, %rbx + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x00006e1e jae LBB32_149 + 0x48, 0x39, 0xf1, //0x00006e24 cmpq %rsi, %rcx + 0x0f, 0x82, 0xdb, 0xff, 0xff, 0xff, //0x00006e27 jb LBB32_143 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00006e2d jmp LBB32_149 + //0x00006e32 LBB32_146 + 0x3a, 0x03, //0x00006e32 cmpb (%rbx), %al + 0x0f, 0x85, 0x68, 0x00, 0x00, 0x00, //0x00006e34 jne LBB32_160 + 0x48, 0x83, 0xc6, 0x01, //0x00006e3a addq $1, %rsi + 0x48, 0x89, 0x75, 0xc8, //0x00006e3e movq %rsi, $-56(%rbp) + 0x48, 0x83, 0xc3, 0x01, //0x00006e42 addq $1, %rbx + 0xe9, 0x1a, 0x00, 0x00, 0x00, //0x00006e46 jmp LBB32_151 + //0x00006e4b LBB32_148 + 0x48, 0x89, 0xd1, //0x00006e4b movq %rdx, %rcx + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006e4e movabsq $4294977024, %r10 + //0x00006e58 LBB32_149 + 0x48, 0x39, 0xf1, //0x00006e58 cmpq %rsi, %rcx + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00006e5b jne LBB32_160 + 0x48, 0x8b, 0x75, 0xc8, //0x00006e61 movq $-56(%rbp), %rsi + //0x00006e65 LBB32_151 + 0x4c, 0x39, 0xf6, //0x00006e65 cmpq %r14, %rsi + 0x0f, 0x83, 0x1f, 0x00, 0x00, 0x00, //0x00006e68 jae LBB32_155 + 0x4c, 0x39, 0xfb, //0x00006e6e cmpq %r15, %rbx + 0x0f, 0x82, 0x44, 0xff, 0xff, 0xff, //0x00006e71 jb LBB32_139 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x00006e77 jmp LBB32_155 + //0x00006e7c LBB32_153 + 0x4c, 0x8b, 0x6d, 0xd0, //0x00006e7c movq $-48(%rbp), %r13 + //0x00006e80 LBB32_154 + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006e80 movabsq $4294977024, %r10 + 0x49, 0x89, 0xce, //0x00006e8a movq %rcx, %r14 + //0x00006e8d LBB32_155 + 0x4c, 0x31, 0xf6, //0x00006e8d xorq %r14, %rsi + 0x4c, 0x31, 0xfb, //0x00006e90 xorq %r15, %rbx + 0x45, 0x31, 0xc0, //0x00006e93 xorl %r8d, %r8d + 0x48, 0x09, 0xf3, //0x00006e96 orq %rsi, %rbx + 0x41, 0x0f, 0x94, 0xc0, //0x00006e99 sete %r8b + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00006e9d jmp LBB32_156 + //0x00006ea2 LBB32_160 + 0x45, 0x31, 0xc0, //0x00006ea2 xorl %r8d, %r8d + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00006ea5 jmp LBB32_156 + //0x00006eaa LBB32_158 + 0x48, 0x8b, 0x45, 0xc8, //0x00006eaa movq $-56(%rbp), %rax + 0x49, 0x2b, 0x04, 0x24, //0x00006eae subq (%r12), %rax + 0x49, 0x89, 0x45, 0x00, //0x00006eb2 movq %rax, (%r13) + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00006eb6 movabsq $4294977024, %r10 + //0x00006ec0 LBB32_156 + 0x4d, 0x85, 0xc0, //0x00006ec0 testq %r8, %r8 + 0x0f, 0x88, 0x92, 0x06, 0x00, 0x00, //0x00006ec3 js LBB32_235 + 0x49, 0x8b, 0x45, 0x00, //0x00006ec9 movq (%r13), %rax + 0x49, 0x8b, 0x14, 0x24, //0x00006ecd movq (%r12), %rdx + 0x49, 0x8b, 0x74, 0x24, 0x08, //0x00006ed1 movq $8(%r12), %rsi + 0x48, 0x39, 0xf0, //0x00006ed6 cmpq %rsi, %rax + 0x0f, 0x82, 0xda, 0xfd, 0xff, 0xff, //0x00006ed9 jb LBB32_78 + 0x90, //0x00006edf .p2align 4, 0x90 + //0x00006ee0 LBB32_82 + 0x48, 0x8d, 0x78, 0x01, //0x00006ee0 leaq $1(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006ee4 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006ee7 jae LBB32_86 + 0x8a, 0x1c, 0x3a, //0x00006eed movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006ef0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006ef3 je LBB32_86 + 0x80, 0xfb, 0x20, //0x00006ef9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006efc je LBB32_86 + 0x80, 0xc3, 0xf7, //0x00006f02 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f05 cmpb $1, %bl + 0x0f, 0x87, 0xc7, 0x00, 0x00, 0x00, //0x00006f08 ja LBB32_107 + 0x90, 0x90, //0x00006f0e .p2align 4, 0x90 + //0x00006f10 LBB32_86 + 0x48, 0x8d, 0x78, 0x02, //0x00006f10 leaq $2(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006f14 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f17 jae LBB32_90 + 0x8a, 0x1c, 0x3a, //0x00006f1d movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006f20 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f23 je LBB32_90 + 0x80, 0xfb, 0x20, //0x00006f29 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f2c je LBB32_90 + 0x80, 0xc3, 0xf7, //0x00006f32 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f35 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x00006f38 ja LBB32_107 + 0x90, 0x90, //0x00006f3e .p2align 4, 0x90 + //0x00006f40 LBB32_90 + 0x48, 0x8d, 0x78, 0x03, //0x00006f40 leaq $3(%rax), %rdi + 0x48, 0x39, 0xf7, //0x00006f44 cmpq %rsi, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00006f47 jae LBB32_94 + 0x8a, 0x1c, 0x3a, //0x00006f4d movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00006f50 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00006f53 je LBB32_94 + 0x80, 0xfb, 0x20, //0x00006f59 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x00006f5c je LBB32_94 + 0x80, 0xc3, 0xf7, //0x00006f62 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00006f65 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00006f68 ja LBB32_107 + 0x90, 0x90, //0x00006f6e .p2align 4, 0x90 + //0x00006f70 LBB32_94 + 0x48, 0x8d, 0x78, 0x04, //0x00006f70 leaq $4(%rax), %rdi + 0x48, 0x39, 0xfe, //0x00006f74 cmpq %rdi, %rsi + 0x0f, 0x86, 0x93, 0x05, 0x00, 0x00, //0x00006f77 jbe LBB32_232 + 0x48, 0x39, 0xfe, //0x00006f7d cmpq %rdi, %rsi + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00006f80 je LBB32_104 + 0x48, 0x8d, 0x1c, 0x32, //0x00006f86 leaq (%rdx,%rsi), %rbx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006f8a .p2align 4, 0x90 + //0x00006f90 LBB32_97 + 0x0f, 0xbe, 0x0c, 0x3a, //0x00006f90 movsbl (%rdx,%rdi), %ecx + 0x83, 0xf9, 0x20, //0x00006f94 cmpl $32, %ecx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00006f97 ja LBB32_106 + 0x49, 0x0f, 0xa3, 0xca, //0x00006f9d btq %rcx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00006fa1 jae LBB32_106 + 0x48, 0x83, 0xc7, 0x01, //0x00006fa7 addq $1, %rdi + 0x48, 0x39, 0xfe, //0x00006fab cmpq %rdi, %rsi + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x00006fae jne LBB32_97 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00006fb4 jmp LBB32_105 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00006fb9 .p2align 4, 0x90 + //0x00006fc0 LBB32_104 + 0x48, 0x01, 0xd7, //0x00006fc0 addq %rdx, %rdi + 0x48, 0x89, 0xfb, //0x00006fc3 movq %rdi, %rbx + //0x00006fc6 LBB32_105 + 0x48, 0x29, 0xd3, //0x00006fc6 subq %rdx, %rbx + 0x48, 0x89, 0xdf, //0x00006fc9 movq %rbx, %rdi + //0x00006fcc LBB32_106 + 0x48, 0x39, 0xf7, //0x00006fcc cmpq %rsi, %rdi + 0x0f, 0x83, 0x77, 0x05, 0x00, 0x00, //0x00006fcf jae LBB32_234 + //0x00006fd5 LBB32_107 + 0x48, 0x8d, 0x77, 0x01, //0x00006fd5 leaq $1(%rdi), %rsi + 0x49, 0x89, 0x75, 0x00, //0x00006fd9 movq %rsi, (%r13) + 0x80, 0x3c, 0x3a, 0x3a, //0x00006fdd cmpb $58, (%rdx,%rdi) + 0x0f, 0x85, 0x0c, 0x05, 0x00, 0x00, //0x00006fe1 jne LBB32_233 + 0x4d, 0x85, 0xc0, //0x00006fe7 testq %r8, %r8 + 0x0f, 0x85, 0xb9, 0x04, 0x00, 0x00, //0x00006fea jne LBB32_220 + 0x4c, 0x89, 0xe7, //0x00006ff0 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x00006ff3 movq %r13, %rsi + 0xe8, 0x75, 0xe9, 0xff, 0xff, //0x00006ff6 callq _skip_one_fast + 0x49, 0x8b, 0x14, 0x24, //0x00006ffb movq (%r12), %rdx + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x00006fff movq $8(%r12), %rcx + 0x49, 0x8b, 0x45, 0x00, //0x00007004 movq (%r13), %rax + 0x48, 0x39, 0xc8, //0x00007008 cmpq %rcx, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x0000700b jae LBB32_114 + 0x8a, 0x1c, 0x02, //0x00007011 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00007014 cmpb $13, %bl + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00007017 je LBB32_114 + 0x80, 0xfb, 0x20, //0x0000701d cmpb $32, %bl + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007020 je LBB32_114 + 0x80, 0xc3, 0xf7, //0x00007026 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00007029 cmpb $1, %bl + 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x0000702c jbe LBB32_114 + 0x48, 0x89, 0xc6, //0x00007032 movq %rax, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007035 movabsq $4294977024, %r10 + 0xe9, 0x11, 0x01, 0x00, 0x00, //0x0000703f jmp LBB32_135 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007044 .p2align 4, 0x90 + //0x00007050 LBB32_114 + 0x48, 0x8d, 0x70, 0x01, //0x00007050 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x00007054 cmpq %rcx, %rsi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007057 movabsq $4294977024, %r10 + 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007061 jae LBB32_118 + 0x8a, 0x1c, 0x32, //0x00007067 movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x0000706a cmpb $13, %bl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000706d je LBB32_118 + 0x80, 0xfb, 0x20, //0x00007073 cmpb $32, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x00007076 je LBB32_118 + 0x80, 0xc3, 0xf7, //0x0000707c addb $-9, %bl + 0x80, 0xfb, 0x01, //0x0000707f cmpb $1, %bl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x00007082 ja LBB32_135 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007088 .p2align 4, 0x90 + //0x00007090 LBB32_118 + 0x48, 0x8d, 0x70, 0x02, //0x00007090 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x00007094 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x00007097 jae LBB32_122 + 0x8a, 0x1c, 0x32, //0x0000709d movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x000070a0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000070a3 je LBB32_122 + 0x80, 0xfb, 0x20, //0x000070a9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000070ac je LBB32_122 + 0x80, 0xc3, 0xf7, //0x000070b2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000070b5 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x000070b8 ja LBB32_135 + 0x90, 0x90, //0x000070be .p2align 4, 0x90 + //0x000070c0 LBB32_122 + 0x48, 0x8d, 0x70, 0x03, //0x000070c0 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x000070c4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000070c7 jae LBB32_126 + 0x8a, 0x1c, 0x32, //0x000070cd movb (%rdx,%rsi), %bl + 0x80, 0xfb, 0x0d, //0x000070d0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000070d3 je LBB32_126 + 0x80, 0xfb, 0x20, //0x000070d9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000070dc je LBB32_126 + 0x80, 0xc3, 0xf7, //0x000070e2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000070e5 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x000070e8 ja LBB32_135 + 0x90, 0x90, //0x000070ee .p2align 4, 0x90 + //0x000070f0 LBB32_126 + 0x48, 0x8d, 0x70, 0x04, //0x000070f0 leaq $4(%rax), %rsi + 0x48, 0x39, 0xf1, //0x000070f4 cmpq %rsi, %rcx + 0x0f, 0x86, 0xf6, 0x03, 0x00, 0x00, //0x000070f7 jbe LBB32_233 + 0x48, 0x39, 0xf1, //0x000070fd cmpq %rsi, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00007100 je LBB32_132 + 0x48, 0x8d, 0x3c, 0x0a, //0x00007106 leaq (%rdx,%rcx), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000710a .p2align 4, 0x90 + //0x00007110 LBB32_129 + 0x0f, 0xbe, 0x1c, 0x32, //0x00007110 movsbl (%rdx,%rsi), %ebx + 0x83, 0xfb, 0x20, //0x00007114 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00007117 ja LBB32_134 + 0x49, 0x0f, 0xa3, 0xda, //0x0000711d btq %rbx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00007121 jae LBB32_134 + 0x48, 0x83, 0xc6, 0x01, //0x00007127 addq $1, %rsi + 0x48, 0x39, 0xf1, //0x0000712b cmpq %rsi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000712e jne LBB32_129 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007134 jmp LBB32_133 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007139 .p2align 4, 0x90 + //0x00007140 LBB32_132 + 0x48, 0x01, 0xd6, //0x00007140 addq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x00007143 movq %rsi, %rdi + //0x00007146 LBB32_133 + 0x48, 0x29, 0xd7, //0x00007146 subq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x00007149 movq %rdi, %rsi + //0x0000714c LBB32_134 + 0x48, 0x39, 0xce, //0x0000714c cmpq %rcx, %rsi + 0x0f, 0x83, 0xf7, 0x03, 0x00, 0x00, //0x0000714f jae LBB32_234 + //0x00007155 LBB32_135 + 0x48, 0x8d, 0x46, 0x01, //0x00007155 leaq $1(%rsi), %rax + 0x49, 0x89, 0x45, 0x00, //0x00007159 movq %rax, (%r13) + 0x8a, 0x0c, 0x32, //0x0000715d movb (%rdx,%rsi), %cl + 0x80, 0xf9, 0x2c, //0x00007160 cmpb $44, %cl + 0x0f, 0x84, 0x11, 0xf9, 0xff, 0xff, //0x00007163 je LBB32_34 + 0xe9, 0xaa, 0x03, 0x00, 0x00, //0x00007169 jmp LBB32_225 + 0x90, 0x90, //0x0000716e .p2align 4, 0x90 + //0x00007170 LBB32_161 + 0x40, 0x80, 0xff, 0x5b, //0x00007170 cmpb $91, %dil + 0x0f, 0x85, 0xd2, 0x03, 0x00, 0x00, //0x00007174 jne LBB32_234 + 0x49, 0x8b, 0x71, 0x08, //0x0000717a movq $8(%r9), %rsi + 0x4c, 0x8b, 0x36, //0x0000717e movq (%rsi), %r14 + 0x4d, 0x85, 0xf6, //0x00007181 testq %r14, %r14 + 0x0f, 0x88, 0xab, 0x03, 0x00, 0x00, //0x00007184 js LBB32_228 + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000718a movq $8(%r12), %rcx + 0x48, 0x39, 0xc8, //0x0000718f cmpq %rcx, %rax + 0x0f, 0x83, 0x38, 0x00, 0x00, 0x00, //0x00007192 jae LBB32_168 + 0x40, 0x8a, 0x34, 0x02, //0x00007198 movb (%rdx,%rax), %sil + 0x40, 0x80, 0xfe, 0x0d, //0x0000719c cmpb $13, %sil + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x000071a0 je LBB32_168 + 0x40, 0x80, 0xfe, 0x20, //0x000071a6 cmpb $32, %sil + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x000071aa je LBB32_168 + 0x40, 0x80, 0xc6, 0xf7, //0x000071b0 addb $-9, %sil + 0x40, 0x80, 0xfe, 0x01, //0x000071b4 cmpb $1, %sil + 0x0f, 0x86, 0x12, 0x00, 0x00, 0x00, //0x000071b8 jbe LBB32_168 + 0x48, 0x89, 0xc6, //0x000071be movq %rax, %rsi + 0xe9, 0x30, 0x01, 0x00, 0x00, //0x000071c1 jmp LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000071c6 .p2align 4, 0x90 + //0x000071d0 LBB32_168 + 0x48, 0x8d, 0x70, 0x01, //0x000071d0 leaq $1(%rax), %rsi + 0x48, 0x39, 0xce, //0x000071d4 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x000071d7 jae LBB32_172 + 0x40, 0x8a, 0x3c, 0x32, //0x000071dd movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x000071e1 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000071e5 je LBB32_172 + 0x40, 0x80, 0xff, 0x20, //0x000071eb cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x000071ef je LBB32_172 + 0x40, 0x80, 0xc7, 0xf7, //0x000071f5 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x000071f9 cmpb $1, %dil + 0x0f, 0x87, 0xf3, 0x00, 0x00, 0x00, //0x000071fd ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007203 .p2align 4, 0x90 + //0x00007210 LBB32_172 + 0x48, 0x8d, 0x70, 0x02, //0x00007210 leaq $2(%rax), %rsi + 0x48, 0x39, 0xce, //0x00007214 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007217 jae LBB32_176 + 0x40, 0x8a, 0x3c, 0x32, //0x0000721d movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00007221 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007225 je LBB32_176 + 0x40, 0x80, 0xff, 0x20, //0x0000722b cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000722f je LBB32_176 + 0x40, 0x80, 0xc7, 0xf7, //0x00007235 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x00007239 cmpb $1, %dil + 0x0f, 0x87, 0xb3, 0x00, 0x00, 0x00, //0x0000723d ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007243 .p2align 4, 0x90 + //0x00007250 LBB32_176 + 0x48, 0x8d, 0x70, 0x03, //0x00007250 leaq $3(%rax), %rsi + 0x48, 0x39, 0xce, //0x00007254 cmpq %rcx, %rsi + 0x0f, 0x83, 0x33, 0x00, 0x00, 0x00, //0x00007257 jae LBB32_180 + 0x40, 0x8a, 0x3c, 0x32, //0x0000725d movb (%rdx,%rsi), %dil + 0x40, 0x80, 0xff, 0x0d, //0x00007261 cmpb $13, %dil + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x00007265 je LBB32_180 + 0x40, 0x80, 0xff, 0x20, //0x0000726b cmpb $32, %dil + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x0000726f je LBB32_180 + 0x40, 0x80, 0xc7, 0xf7, //0x00007275 addb $-9, %dil + 0x40, 0x80, 0xff, 0x01, //0x00007279 cmpb $1, %dil + 0x0f, 0x87, 0x73, 0x00, 0x00, 0x00, //0x0000727d ja LBB32_190 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007283 .p2align 4, 0x90 + //0x00007290 LBB32_180 + 0x48, 0x8d, 0x70, 0x04, //0x00007290 leaq $4(%rax), %rsi + 0x48, 0x39, 0xf1, //0x00007294 cmpq %rsi, %rcx + 0x0f, 0x86, 0x3c, 0x00, 0x00, 0x00, //0x00007297 jbe LBB32_186 + 0x48, 0x39, 0xf1, //0x0000729d cmpq %rsi, %rcx + 0x0f, 0x84, 0x3b, 0x00, 0x00, 0x00, //0x000072a0 je LBB32_187 + 0x48, 0x8d, 0x3c, 0x0a, //0x000072a6 leaq (%rdx,%rcx), %rdi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000072aa .p2align 4, 0x90 + //0x000072b0 LBB32_183 + 0x0f, 0xbe, 0x1c, 0x32, //0x000072b0 movsbl (%rdx,%rsi), %ebx + 0x83, 0xfb, 0x20, //0x000072b4 cmpl $32, %ebx + 0x0f, 0x87, 0x30, 0x00, 0x00, 0x00, //0x000072b7 ja LBB32_189 + 0x49, 0x0f, 0xa3, 0xda, //0x000072bd btq %rbx, %r10 + 0x0f, 0x83, 0x26, 0x00, 0x00, 0x00, //0x000072c1 jae LBB32_189 + 0x48, 0x83, 0xc6, 0x01, //0x000072c7 addq $1, %rsi + 0x48, 0x39, 0xf1, //0x000072cb cmpq %rsi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x000072ce jne LBB32_183 + 0xe9, 0x0e, 0x00, 0x00, 0x00, //0x000072d4 jmp LBB32_188 + //0x000072d9 LBB32_186 + 0x48, 0x89, 0xf0, //0x000072d9 movq %rsi, %rax + 0xe9, 0x27, 0x00, 0x00, 0x00, //0x000072dc jmp LBB32_191 + //0x000072e1 LBB32_187 + 0x48, 0x01, 0xd6, //0x000072e1 addq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x000072e4 movq %rsi, %rdi + //0x000072e7 LBB32_188 + 0x48, 0x29, 0xd7, //0x000072e7 subq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x000072ea movq %rdi, %rsi + //0x000072ed LBB32_189 + 0x48, 0x39, 0xce, //0x000072ed cmpq %rcx, %rsi + 0x0f, 0x83, 0x12, 0x00, 0x00, 0x00, //0x000072f0 jae LBB32_191 + //0x000072f6 LBB32_190 + 0x48, 0x8d, 0x46, 0x01, //0x000072f6 leaq $1(%rsi), %rax + 0x49, 0x89, 0x45, 0x00, //0x000072fa movq %rax, (%r13) + 0x80, 0x3c, 0x32, 0x5d, //0x000072fe cmpb $93, (%rdx,%rsi) + 0x0f, 0x84, 0x19, 0x02, 0x00, 0x00, //0x00007302 je LBB32_226 + //0x00007308 LBB32_191 + 0x48, 0x83, 0xc0, 0xff, //0x00007308 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x0000730c movq %rax, (%r13) + 0x48, 0x89, 0xc6, //0x00007310 movq %rax, %rsi + 0x4d, 0x85, 0xf6, //0x00007313 testq %r14, %r14 + 0x0f, 0x8e, 0x8d, 0x01, 0x00, 0x00, //0x00007316 jle LBB32_220 + 0x90, 0x90, 0x90, 0x90, //0x0000731c .p2align 4, 0x90 + //0x00007320 LBB32_192 + 0x4c, 0x89, 0xe7, //0x00007320 movq %r12, %rdi + 0x4c, 0x89, 0xee, //0x00007323 movq %r13, %rsi + 0xe8, 0x45, 0xe6, 0xff, 0xff, //0x00007326 callq _skip_one_fast + 0x49, 0x8b, 0x14, 0x24, //0x0000732b movq (%r12), %rdx + 0x49, 0x8b, 0x4c, 0x24, 0x08, //0x0000732f movq $8(%r12), %rcx + 0x49, 0x8b, 0x45, 0x00, //0x00007334 movq (%r13), %rax + 0x48, 0x39, 0xc8, //0x00007338 cmpq %rcx, %rax + 0x0f, 0x83, 0x3f, 0x00, 0x00, 0x00, //0x0000733b jae LBB32_197 + 0x8a, 0x1c, 0x02, //0x00007341 movb (%rdx,%rax), %bl + 0x80, 0xfb, 0x0d, //0x00007344 cmpb $13, %bl + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00007347 je LBB32_197 + 0x80, 0xfb, 0x20, //0x0000734d cmpb $32, %bl + 0x0f, 0x84, 0x2a, 0x00, 0x00, 0x00, //0x00007350 je LBB32_197 + 0x80, 0xc3, 0xf7, //0x00007356 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00007359 cmpb $1, %bl + 0x0f, 0x86, 0x1e, 0x00, 0x00, 0x00, //0x0000735c jbe LBB32_197 + 0x48, 0x89, 0xc7, //0x00007362 movq %rax, %rdi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007365 movabsq $4294977024, %r10 + 0xe9, 0x11, 0x01, 0x00, 0x00, //0x0000736f jmp LBB32_218 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007374 .p2align 4, 0x90 + //0x00007380 LBB32_197 + 0x48, 0x8d, 0x78, 0x01, //0x00007380 leaq $1(%rax), %rdi + 0x48, 0x39, 0xcf, //0x00007384 cmpq %rcx, %rdi + 0x49, 0xba, 0x00, 0x26, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, //0x00007387 movabsq $4294977024, %r10 + 0x0f, 0x83, 0x29, 0x00, 0x00, 0x00, //0x00007391 jae LBB32_201 + 0x8a, 0x1c, 0x3a, //0x00007397 movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x0000739a cmpb $13, %bl + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x0000739d je LBB32_201 + 0x80, 0xfb, 0x20, //0x000073a3 cmpb $32, %bl + 0x0f, 0x84, 0x14, 0x00, 0x00, 0x00, //0x000073a6 je LBB32_201 + 0x80, 0xc3, 0xf7, //0x000073ac addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000073af cmpb $1, %bl + 0x0f, 0x87, 0xcd, 0x00, 0x00, 0x00, //0x000073b2 ja LBB32_218 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000073b8 .p2align 4, 0x90 + //0x000073c0 LBB32_201 + 0x48, 0x8d, 0x78, 0x02, //0x000073c0 leaq $2(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000073c4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000073c7 jae LBB32_205 + 0x8a, 0x1c, 0x3a, //0x000073cd movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x000073d0 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000073d3 je LBB32_205 + 0x80, 0xfb, 0x20, //0x000073d9 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x000073dc je LBB32_205 + 0x80, 0xc3, 0xf7, //0x000073e2 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x000073e5 cmpb $1, %bl + 0x0f, 0x87, 0x97, 0x00, 0x00, 0x00, //0x000073e8 ja LBB32_218 + 0x90, 0x90, //0x000073ee .p2align 4, 0x90 + //0x000073f0 LBB32_205 + 0x48, 0x8d, 0x78, 0x03, //0x000073f0 leaq $3(%rax), %rdi + 0x48, 0x39, 0xcf, //0x000073f4 cmpq %rcx, %rdi + 0x0f, 0x83, 0x23, 0x00, 0x00, 0x00, //0x000073f7 jae LBB32_209 + 0x8a, 0x1c, 0x3a, //0x000073fd movb (%rdx,%rdi), %bl + 0x80, 0xfb, 0x0d, //0x00007400 cmpb $13, %bl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x00007403 je LBB32_209 + 0x80, 0xfb, 0x20, //0x00007409 cmpb $32, %bl + 0x0f, 0x84, 0x0e, 0x00, 0x00, 0x00, //0x0000740c je LBB32_209 + 0x80, 0xc3, 0xf7, //0x00007412 addb $-9, %bl + 0x80, 0xfb, 0x01, //0x00007415 cmpb $1, %bl + 0x0f, 0x87, 0x67, 0x00, 0x00, 0x00, //0x00007418 ja LBB32_218 + 0x90, 0x90, //0x0000741e .p2align 4, 0x90 + //0x00007420 LBB32_209 + 0x48, 0x8d, 0x78, 0x04, //0x00007420 leaq $4(%rax), %rdi + 0x48, 0x39, 0xf9, //0x00007424 cmpq %rdi, %rcx + 0x0f, 0x86, 0xe3, 0x00, 0x00, 0x00, //0x00007427 jbe LBB32_232 + 0x48, 0x39, 0xf9, //0x0000742d cmpq %rdi, %rcx + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x00007430 je LBB32_215 + 0x48, 0x8d, 0x34, 0x0a, //0x00007436 leaq (%rdx,%rcx), %rsi + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000743a .p2align 4, 0x90 + //0x00007440 LBB32_212 + 0x0f, 0xbe, 0x1c, 0x3a, //0x00007440 movsbl (%rdx,%rdi), %ebx + 0x83, 0xfb, 0x20, //0x00007444 cmpl $32, %ebx + 0x0f, 0x87, 0x2f, 0x00, 0x00, 0x00, //0x00007447 ja LBB32_217 + 0x49, 0x0f, 0xa3, 0xda, //0x0000744d btq %rbx, %r10 + 0x0f, 0x83, 0x25, 0x00, 0x00, 0x00, //0x00007451 jae LBB32_217 + 0x48, 0x83, 0xc7, 0x01, //0x00007457 addq $1, %rdi + 0x48, 0x39, 0xf9, //0x0000745b cmpq %rdi, %rcx + 0x0f, 0x85, 0xdc, 0xff, 0xff, 0xff, //0x0000745e jne LBB32_212 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x00007464 jmp LBB32_216 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007469 .p2align 4, 0x90 + //0x00007470 LBB32_215 + 0x48, 0x01, 0xd7, //0x00007470 addq %rdx, %rdi + 0x48, 0x89, 0xfe, //0x00007473 movq %rdi, %rsi + //0x00007476 LBB32_216 + 0x48, 0x29, 0xd6, //0x00007476 subq %rdx, %rsi + 0x48, 0x89, 0xf7, //0x00007479 movq %rsi, %rdi + //0x0000747c LBB32_217 + 0x48, 0x39, 0xcf, //0x0000747c cmpq %rcx, %rdi + 0x0f, 0x83, 0xc7, 0x00, 0x00, 0x00, //0x0000747f jae LBB32_234 + //0x00007485 LBB32_218 + 0x48, 0x8d, 0x77, 0x01, //0x00007485 leaq $1(%rdi), %rsi + 0x49, 0x89, 0x75, 0x00, //0x00007489 movq %rsi, (%r13) + 0x8a, 0x04, 0x3a, //0x0000748d movb (%rdx,%rdi), %al + 0x3c, 0x2c, //0x00007490 cmpb $44, %al + 0x0f, 0x85, 0x4b, 0x00, 0x00, 0x00, //0x00007492 jne LBB32_222 + 0x49, 0x8d, 0x46, 0xff, //0x00007498 leaq $-1(%r14), %rax + 0x49, 0x83, 0xfe, 0x02, //0x0000749c cmpq $2, %r14 + 0x49, 0x89, 0xc6, //0x000074a0 movq %rax, %r14 + 0x0f, 0x8d, 0x77, 0xfe, 0xff, 0xff, //0x000074a3 jge LBB32_192 + //0x000074a9 LBB32_220 + 0x4c, 0x8b, 0x4d, 0xb8, //0x000074a9 movq $-72(%rbp), %r9 + 0x49, 0x83, 0xc1, 0x10, //0x000074ad addq $16, %r9 + 0x4c, 0x3b, 0x4d, 0xa8, //0x000074b1 cmpq $-88(%rbp), %r9 + 0x48, 0x8b, 0x4d, 0xa0, //0x000074b5 movq $-96(%rbp), %rcx + 0x0f, 0x85, 0x19, 0xf4, 0xff, 0xff, //0x000074b9 jne LBB32_2 + //0x000074bf LBB32_221 + 0x66, 0x0f, 0x6f, 0x05, 0xb9, 0xf3, 0xff, 0xff, //0x000074bf movdqa $-3143(%rip), %xmm0 /* LCPI32_0+0(%rip) */ + 0xf3, 0x0f, 0x7f, 0x01, //0x000074c7 movdqu %xmm0, (%rcx) + 0x48, 0x89, 0xcf, //0x000074cb movq %rcx, %rdi + 0x4c, 0x89, 0xe6, //0x000074ce movq %r12, %rsi + 0x4c, 0x89, 0xea, //0x000074d1 movq %r13, %rdx + 0x31, 0xc9, //0x000074d4 xorl %ecx, %ecx + 0xe8, 0xb5, 0xd4, 0xff, 0xff, //0x000074d6 callq _fsm_exec + 0x49, 0x89, 0xc0, //0x000074db movq %rax, %r8 + 0xe9, 0x78, 0x00, 0x00, 0x00, //0x000074de jmp LBB32_235 + //0x000074e3 LBB32_222 + 0x3c, 0x5d, //0x000074e3 cmpb $93, %al + 0x0f, 0x85, 0x08, 0x00, 0x00, 0x00, //0x000074e5 jne LBB32_233 + 0x48, 0x89, 0xf0, //0x000074eb movq %rsi, %rax + 0xe9, 0x2e, 0x00, 0x00, 0x00, //0x000074ee jmp LBB32_226 + //0x000074f3 LBB32_233 + 0x48, 0x89, 0xf0, //0x000074f3 movq %rsi, %rax + 0xe9, 0x51, 0x00, 0x00, 0x00, //0x000074f6 jmp LBB32_234 + //0x000074fb LBB32_224 + 0x4c, 0x89, 0xe8, //0x000074fb movq %r13, %rax + 0x80, 0xf9, 0x7d, //0x000074fe cmpb $125, %cl + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007501 movq $-48(%rbp), %r13 + 0x0f, 0x85, 0x41, 0x00, 0x00, 0x00, //0x00007505 jne LBB32_234 + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000750b jmp LBB32_226 + //0x00007510 LBB32_232 + 0x48, 0x89, 0xf8, //0x00007510 movq %rdi, %rax + 0xe9, 0x34, 0x00, 0x00, 0x00, //0x00007513 jmp LBB32_234 + //0x00007518 LBB32_225 + 0x80, 0xf9, 0x7d, //0x00007518 cmpb $125, %cl + 0x0f, 0x85, 0x2b, 0x00, 0x00, 0x00, //0x0000751b jne LBB32_234 + //0x00007521 LBB32_226 + 0x48, 0x83, 0xc0, 0xff, //0x00007521 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x00007525 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xdf, 0xff, 0xff, 0xff, //0x00007529 movq $-33, %r8 + 0xe9, 0x26, 0x00, 0x00, 0x00, //0x00007530 jmp LBB32_235 + //0x00007535 LBB32_228 + 0x48, 0x83, 0xc0, 0xff, //0x00007535 addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x00007539 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xde, 0xff, 0xff, 0xff, //0x0000753d movq $-34, %r8 + 0xe9, 0x12, 0x00, 0x00, 0x00, //0x00007544 jmp LBB32_235 + //0x00007549 LBB32_231 + 0x4c, 0x89, 0xf8, //0x00007549 movq %r15, %rax + //0x0000754c LBB32_234 + 0x48, 0x83, 0xc0, 0xff, //0x0000754c addq $-1, %rax + 0x49, 0x89, 0x45, 0x00, //0x00007550 movq %rax, (%r13) + 0x49, 0xc7, 0xc0, 0xfe, 0xff, 0xff, 0xff, //0x00007554 movq $-2, %r8 + //0x0000755b LBB32_235 + 0x4c, 0x89, 0xc0, //0x0000755b movq %r8, %rax + 0x48, 0x83, 0xc4, 0x38, //0x0000755e addq $56, %rsp + 0x5b, //0x00007562 popq %rbx + 0x41, 0x5c, //0x00007563 popq %r12 + 0x41, 0x5d, //0x00007565 popq %r13 + 0x41, 0x5e, //0x00007567 popq %r14 + 0x41, 0x5f, //0x00007569 popq %r15 + 0x5d, //0x0000756b popq %rbp + 0xc3, //0x0000756c retq + //0x0000756d LBB32_236 + 0x49, 0x8b, 0x44, 0x24, 0x08, //0x0000756d movq $8(%r12), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00007572 movq $-48(%rbp), %rcx + 0x48, 0x89, 0x01, //0x00007576 movq %rax, (%rcx) + 0x49, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x00007579 movq $-1, %r8 + 0xe9, 0xd6, 0xff, 0xff, 0xff, //0x00007580 jmp LBB32_235 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007585 .p2align 4, 0x90 + //0x00007590 _validate_utf8 + 0x55, //0x00007590 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007591 movq %rsp, %rbp + 0x41, 0x57, //0x00007594 pushq %r15 + 0x41, 0x56, //0x00007596 pushq %r14 + 0x41, 0x54, //0x00007598 pushq %r12 + 0x53, //0x0000759a pushq %rbx + 0x50, //0x0000759b pushq %rax + 0x4c, 0x8b, 0x17, //0x0000759c movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x0000759f movq $8(%rdi), %r11 + 0x48, 0x8b, 0x0e, //0x000075a3 movq (%rsi), %rcx + 0x4c, 0x01, 0xd1, //0x000075a6 addq %r10, %rcx + 0x4f, 0x8d, 0x04, 0x1a, //0x000075a9 leaq (%r10,%r11), %r8 + 0x49, 0x83, 0xc0, 0xfd, //0x000075ad addq $-3, %r8 + 0xe9, 0x0d, 0x00, 0x00, 0x00, //0x000075b1 jmp LBB33_1 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000075b6 .p2align 4, 0x90 + //0x000075c0 LBB33_19 + 0x48, 0x01, 0xd9, //0x000075c0 addq %rbx, %rcx + //0x000075c3 LBB33_1 + 0x4c, 0x39, 0xc1, //0x000075c3 cmpq %r8, %rcx + 0x0f, 0x83, 0xe1, 0x00, 0x00, 0x00, //0x000075c6 jae LBB33_2 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000075cc movl $1, %ebx + 0x80, 0x39, 0x00, //0x000075d1 cmpb $0, (%rcx) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x000075d4 jns LBB33_19 + 0x8b, 0x01, //0x000075da movl (%rcx), %eax + 0x89, 0xc7, //0x000075dc movl %eax, %edi + 0x81, 0xe7, 0xf0, 0xc0, 0xc0, 0x00, //0x000075de andl $12632304, %edi + 0x81, 0xff, 0xe0, 0x80, 0x80, 0x00, //0x000075e4 cmpl $8421600, %edi + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x000075ea jne LBB33_10 + 0x89, 0xc7, //0x000075f0 movl %eax, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000075f2 andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x000075f8 cmpl $8205, %edi + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000075fe je LBB33_10 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007604 movl $3, %ebx + 0x85, 0xff, //0x00007609 testl %edi, %edi + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x0000760b jne LBB33_19 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007611 .p2align 4, 0x90 + //0x00007620 LBB33_10 + 0x89, 0xc7, //0x00007620 movl %eax, %edi + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x00007622 andl $49376, %edi + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x00007628 cmpl $32960, %edi + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x0000762e jne LBB33_12 + 0x89, 0xc7, //0x00007634 movl %eax, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00007636 movl $2, %ebx + 0x83, 0xe7, 0x1e, //0x0000763b andl $30, %edi + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x0000763e jne LBB33_19 + //0x00007644 LBB33_12 + 0x89, 0xc7, //0x00007644 movl %eax, %edi + 0x81, 0xe7, 0xf8, 0xc0, 0xc0, 0xc0, //0x00007646 andl $-1061109512, %edi + 0x81, 0xff, 0xf0, 0x80, 0x80, 0x80, //0x0000764c cmpl $-2139062032, %edi + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00007652 jne LBB33_16 + 0x89, 0xc7, //0x00007658 movl %eax, %edi + 0x81, 0xe7, 0x07, 0x30, 0x00, 0x00, //0x0000765a andl $12295, %edi + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00007660 je LBB33_16 + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00007666 movl $4, %ebx + 0xa8, 0x04, //0x0000766b testb $4, %al + 0x0f, 0x84, 0x4d, 0xff, 0xff, 0xff, //0x0000766d je LBB33_19 + 0x25, 0x03, 0x30, 0x00, 0x00, //0x00007673 andl $12291, %eax + 0x0f, 0x84, 0x42, 0xff, 0xff, 0xff, //0x00007678 je LBB33_19 + //0x0000767e LBB33_16 + 0x48, 0x89, 0xcf, //0x0000767e movq %rcx, %rdi + 0x4c, 0x29, 0xd7, //0x00007681 subq %r10, %rdi + 0x48, 0x8b, 0x1a, //0x00007684 movq (%rdx), %rbx + 0x48, 0x81, 0xfb, 0x00, 0x10, 0x00, 0x00, //0x00007687 cmpq $4096, %rbx + 0x0f, 0x83, 0x97, 0x01, 0x00, 0x00, //0x0000768e jae LBB33_17 + 0x48, 0x63, 0xc7, //0x00007694 movslq %edi, %rax + 0x48, 0x8d, 0x7b, 0x01, //0x00007697 leaq $1(%rbx), %rdi + 0x48, 0x89, 0x3a, //0x0000769b movq %rdi, (%rdx) + 0x48, 0x89, 0x44, 0xda, 0x08, //0x0000769e movq %rax, $8(%rdx,%rbx,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000076a3 movl $1, %ebx + 0xe9, 0x13, 0xff, 0xff, 0xff, //0x000076a8 jmp LBB33_19 + //0x000076ad LBB33_2 + 0x4d, 0x01, 0xd3, //0x000076ad addq %r10, %r11 + 0x4c, 0x39, 0xd9, //0x000076b0 cmpq %r11, %rcx + 0x0f, 0x83, 0x4e, 0x01, 0x00, 0x00, //0x000076b3 jae LBB33_36 + 0x4c, 0x8d, 0x45, 0xdc, //0x000076b9 leaq $-36(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xda, //0x000076bd leaq $-38(%rbp), %r9 + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x000076c1 jmp LBB33_4 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000076c6 .p2align 4, 0x90 + //0x000076d0 LBB33_5 + 0x48, 0x83, 0xc1, 0x01, //0x000076d0 addq $1, %rcx + 0x4c, 0x39, 0xd9, //0x000076d4 cmpq %r11, %rcx + 0x0f, 0x83, 0x2a, 0x01, 0x00, 0x00, //0x000076d7 jae LBB33_36 + //0x000076dd LBB33_4 + 0x80, 0x39, 0x00, //0x000076dd cmpb $0, (%rcx) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x000076e0 jns LBB33_5 + 0xc6, 0x45, 0xdc, 0x00, //0x000076e6 movb $0, $-36(%rbp) + 0xc6, 0x45, 0xda, 0x00, //0x000076ea movb $0, $-38(%rbp) + 0x4c, 0x89, 0xdb, //0x000076ee movq %r11, %rbx + 0x48, 0x29, 0xcb, //0x000076f1 subq %rcx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x000076f4 cmpq $2, %rbx + 0x0f, 0x82, 0x35, 0x00, 0x00, 0x00, //0x000076f8 jb LBB33_21 + 0x44, 0x0f, 0xb6, 0x21, //0x000076fe movzbl (%rcx), %r12d + 0x44, 0x0f, 0xb6, 0x71, 0x01, //0x00007702 movzbl $1(%rcx), %r14d + 0x44, 0x88, 0x65, 0xdc, //0x00007707 movb %r12b, $-36(%rbp) + 0x4c, 0x8d, 0x79, 0x02, //0x0000770b leaq $2(%rcx), %r15 + 0x48, 0x83, 0xc3, 0xfe, //0x0000770f addq $-2, %rbx + 0x4c, 0x89, 0xcf, //0x00007713 movq %r9, %rdi + 0x48, 0x85, 0xdb, //0x00007716 testq %rbx, %rbx + 0x0f, 0x84, 0x29, 0x00, 0x00, 0x00, //0x00007719 je LBB33_24 + //0x0000771f LBB33_25 + 0x41, 0x0f, 0xb6, 0x07, //0x0000771f movzbl (%r15), %eax + 0x88, 0x07, //0x00007723 movb %al, (%rdi) + 0x44, 0x0f, 0xb6, 0x65, 0xdc, //0x00007725 movzbl $-36(%rbp), %r12d + 0x0f, 0xb6, 0x7d, 0xda, //0x0000772a movzbl $-38(%rbp), %edi + 0xe9, 0x17, 0x00, 0x00, 0x00, //0x0000772e jmp LBB33_26 + //0x00007733 LBB33_21 + 0x45, 0x31, 0xe4, //0x00007733 xorl %r12d, %r12d + 0x45, 0x31, 0xf6, //0x00007736 xorl %r14d, %r14d + 0x4c, 0x89, 0xc7, //0x00007739 movq %r8, %rdi + 0x49, 0x89, 0xcf, //0x0000773c movq %rcx, %r15 + 0x48, 0x85, 0xdb, //0x0000773f testq %rbx, %rbx + 0x0f, 0x85, 0xd7, 0xff, 0xff, 0xff, //0x00007742 jne LBB33_25 + //0x00007748 LBB33_24 + 0x31, 0xff, //0x00007748 xorl %edi, %edi + //0x0000774a LBB33_26 + 0x40, 0x0f, 0xb6, 0xc7, //0x0000774a movzbl %dil, %eax + 0xc1, 0xe0, 0x10, //0x0000774e shll $16, %eax + 0x41, 0x0f, 0xb6, 0xde, //0x00007751 movzbl %r14b, %ebx + 0xc1, 0xe3, 0x08, //0x00007755 shll $8, %ebx + 0x09, 0xc3, //0x00007758 orl %eax, %ebx + 0x41, 0x0f, 0xb6, 0xfc, //0x0000775a movzbl %r12b, %edi + 0x09, 0xdf, //0x0000775e orl %ebx, %edi + 0x89, 0xf8, //0x00007760 movl %edi, %eax + 0x25, 0xf0, 0xc0, 0xc0, 0x00, //0x00007762 andl $12632304, %eax + 0x3d, 0xe0, 0x80, 0x80, 0x00, //0x00007767 cmpl $8421600, %eax + 0x0f, 0x85, 0x2e, 0x00, 0x00, 0x00, //0x0000776c jne LBB33_29 + 0x89, 0xf8, //0x00007772 movl %edi, %eax + 0x25, 0x0f, 0x20, 0x00, 0x00, //0x00007774 andl $8207, %eax + 0x3d, 0x0d, 0x20, 0x00, 0x00, //0x00007779 cmpl $8205, %eax + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x0000777e je LBB33_29 + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x00007784 movl $3, %ebx + 0x85, 0xc0, //0x00007789 testl %eax, %eax + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000778b jne LBB33_34 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007791 .p2align 4, 0x90 + //0x000077a0 LBB33_29 + 0x41, 0xf6, 0xc4, 0x1e, //0x000077a0 testb $30, %r12b + 0x0f, 0x84, 0x28, 0x00, 0x00, 0x00, //0x000077a4 je LBB33_31 + 0x81, 0xe7, 0xe0, 0xc0, 0x00, 0x00, //0x000077aa andl $49376, %edi + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x000077b0 movl $2, %ebx + 0x81, 0xff, 0xc0, 0x80, 0x00, 0x00, //0x000077b5 cmpl $32960, %edi + 0x0f, 0x85, 0x11, 0x00, 0x00, 0x00, //0x000077bb jne LBB33_31 + //0x000077c1 LBB33_34 + 0x48, 0x01, 0xd9, //0x000077c1 addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000077c4 cmpq %r11, %rcx + 0x0f, 0x82, 0x10, 0xff, 0xff, 0xff, //0x000077c7 jb LBB33_4 + 0xe9, 0x35, 0x00, 0x00, 0x00, //0x000077cd jmp LBB33_36 + //0x000077d2 LBB33_31 + 0x48, 0x89, 0xc8, //0x000077d2 movq %rcx, %rax + 0x4c, 0x29, 0xd0, //0x000077d5 subq %r10, %rax + 0x48, 0x8b, 0x3a, //0x000077d8 movq (%rdx), %rdi + 0x48, 0x81, 0xff, 0x00, 0x10, 0x00, 0x00, //0x000077db cmpq $4096, %rdi + 0x0f, 0x83, 0x34, 0x00, 0x00, 0x00, //0x000077e2 jae LBB33_32 + 0x48, 0x98, //0x000077e8 cltq + 0x48, 0x8d, 0x5f, 0x01, //0x000077ea leaq $1(%rdi), %rbx + 0x48, 0x89, 0x1a, //0x000077ee movq %rbx, (%rdx) + 0x48, 0x89, 0x44, 0xfa, 0x08, //0x000077f1 movq %rax, $8(%rdx,%rdi,8) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000077f6 movl $1, %ebx + 0x48, 0x01, 0xd9, //0x000077fb addq %rbx, %rcx + 0x4c, 0x39, 0xd9, //0x000077fe cmpq %r11, %rcx + 0x0f, 0x82, 0xd6, 0xfe, 0xff, 0xff, //0x00007801 jb LBB33_4 + //0x00007807 LBB33_36 + 0x4c, 0x29, 0xd1, //0x00007807 subq %r10, %rcx + 0x48, 0x89, 0x0e, //0x0000780a movq %rcx, (%rsi) + 0x31, 0xc0, //0x0000780d xorl %eax, %eax + //0x0000780f LBB33_37 + 0x48, 0x83, 0xc4, 0x08, //0x0000780f addq $8, %rsp + 0x5b, //0x00007813 popq %rbx + 0x41, 0x5c, //0x00007814 popq %r12 + 0x41, 0x5e, //0x00007816 popq %r14 + 0x41, 0x5f, //0x00007818 popq %r15 + 0x5d, //0x0000781a popq %rbp + 0xc3, //0x0000781b retq + //0x0000781c LBB33_32 + 0x48, 0x89, 0x06, //0x0000781c movq %rax, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000781f movq $-1, %rax + 0xe9, 0xe4, 0xff, 0xff, 0xff, //0x00007826 jmp LBB33_37 + //0x0000782b LBB33_17 + 0x48, 0x89, 0x3e, //0x0000782b movq %rdi, (%rsi) + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000782e movq $-1, %rax + 0xe9, 0xd5, 0xff, 0xff, 0xff, //0x00007835 jmp LBB33_37 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000783a .p2align 4, 0x90 + //0x00007840 _validate_utf8_fast + 0x55, //0x00007840 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007841 movq %rsp, %rbp + 0x53, //0x00007844 pushq %rbx + 0x50, //0x00007845 pushq %rax + 0x4c, 0x8b, 0x17, //0x00007846 movq (%rdi), %r10 + 0x4c, 0x8b, 0x5f, 0x08, //0x00007849 movq $8(%rdi), %r11 + 0x4b, 0x8d, 0x34, 0x1a, //0x0000784d leaq (%r10,%r11), %rsi + 0x48, 0x83, 0xc6, 0xfd, //0x00007851 addq $-3, %rsi + 0x4c, 0x89, 0xd0, //0x00007855 movq %r10, %rax + 0x4c, 0x39, 0xd6, //0x00007858 cmpq %r10, %rsi + 0x0f, 0x86, 0xdd, 0x00, 0x00, 0x00, //0x0000785b jbe LBB34_14 + 0x4c, 0x89, 0xd0, //0x00007861 movq %r10, %rax + 0xe9, 0x13, 0x00, 0x00, 0x00, //0x00007864 jmp LBB34_3 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007869 .p2align 4, 0x90 + //0x00007870 LBB34_2 + 0x48, 0x01, 0xd0, //0x00007870 addq %rdx, %rax + 0x48, 0x39, 0xf0, //0x00007873 cmpq %rsi, %rax + 0x0f, 0x83, 0xc2, 0x00, 0x00, 0x00, //0x00007876 jae LBB34_14 + //0x0000787c LBB34_3 + 0xba, 0x01, 0x00, 0x00, 0x00, //0x0000787c movl $1, %edx + 0x80, 0x38, 0x00, //0x00007881 cmpb $0, (%rax) + 0x0f, 0x89, 0xe6, 0xff, 0xff, 0xff, //0x00007884 jns LBB34_2 + 0x8b, 0x38, //0x0000788a movl (%rax), %edi + 0x89, 0xf9, //0x0000788c movl %edi, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x0000788e andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x00007894 cmpl $8421600, %ecx + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000789a jne LBB34_7 + 0x89, 0xf9, //0x000078a0 movl %edi, %ecx + 0x81, 0xe1, 0x0f, 0x20, 0x00, 0x00, //0x000078a2 andl $8207, %ecx + 0x81, 0xf9, 0x0d, 0x20, 0x00, 0x00, //0x000078a8 cmpl $8205, %ecx + 0x0f, 0x84, 0x1c, 0x00, 0x00, 0x00, //0x000078ae je LBB34_7 + 0xba, 0x03, 0x00, 0x00, 0x00, //0x000078b4 movl $3, %edx + 0x85, 0xc9, //0x000078b9 testl %ecx, %ecx + 0x0f, 0x85, 0xaf, 0xff, 0xff, 0xff, //0x000078bb jne LBB34_2 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000078c1 .p2align 4, 0x90 + //0x000078d0 LBB34_7 + 0x89, 0xf9, //0x000078d0 movl %edi, %ecx + 0x81, 0xe1, 0xe0, 0xc0, 0x00, 0x00, //0x000078d2 andl $49376, %ecx + 0x81, 0xf9, 0xc0, 0x80, 0x00, 0x00, //0x000078d8 cmpl $32960, %ecx + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x000078de jne LBB34_9 + 0x89, 0xf9, //0x000078e4 movl %edi, %ecx + 0xba, 0x02, 0x00, 0x00, 0x00, //0x000078e6 movl $2, %edx + 0x83, 0xe1, 0x1e, //0x000078eb andl $30, %ecx + 0x0f, 0x85, 0x7c, 0xff, 0xff, 0xff, //0x000078ee jne LBB34_2 + //0x000078f4 LBB34_9 + 0x89, 0xf9, //0x000078f4 movl %edi, %ecx + 0x81, 0xe1, 0xf8, 0xc0, 0xc0, 0xc0, //0x000078f6 andl $-1061109512, %ecx + 0x81, 0xf9, 0xf0, 0x80, 0x80, 0x80, //0x000078fc cmpl $-2139062032, %ecx + 0x0f, 0x85, 0x29, 0x00, 0x00, 0x00, //0x00007902 jne LBB34_13 + 0x89, 0xf9, //0x00007908 movl %edi, %ecx + 0x81, 0xe1, 0x07, 0x30, 0x00, 0x00, //0x0000790a andl $12295, %ecx + 0x0f, 0x84, 0x1b, 0x00, 0x00, 0x00, //0x00007910 je LBB34_13 + 0xba, 0x04, 0x00, 0x00, 0x00, //0x00007916 movl $4, %edx + 0x40, 0xf6, 0xc7, 0x04, //0x0000791b testb $4, %dil + 0x0f, 0x84, 0x4b, 0xff, 0xff, 0xff, //0x0000791f je LBB34_2 + 0x81, 0xe7, 0x03, 0x30, 0x00, 0x00, //0x00007925 andl $12291, %edi + 0x0f, 0x84, 0x3f, 0xff, 0xff, 0xff, //0x0000792b je LBB34_2 + //0x00007931 LBB34_13 + 0x48, 0xf7, 0xd0, //0x00007931 notq %rax + 0x4c, 0x01, 0xd0, //0x00007934 addq %r10, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00007937 addq $8, %rsp + 0x5b, //0x0000793b popq %rbx + 0x5d, //0x0000793c popq %rbp + 0xc3, //0x0000793d retq + //0x0000793e LBB34_14 + 0x4d, 0x01, 0xd3, //0x0000793e addq %r10, %r11 + 0x4c, 0x39, 0xd8, //0x00007941 cmpq %r11, %rax + 0x0f, 0x83, 0x03, 0x01, 0x00, 0x00, //0x00007944 jae LBB34_30 + 0x4c, 0x8d, 0x45, 0xf4, //0x0000794a leaq $-12(%rbp), %r8 + 0x4c, 0x8d, 0x4d, 0xf2, //0x0000794e leaq $-14(%rbp), %r9 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00007952 jmp LBB34_17 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007957 .p2align 4, 0x90 + //0x00007960 LBB34_16 + 0x48, 0x83, 0xc0, 0x01, //0x00007960 addq $1, %rax + 0x4c, 0x39, 0xd8, //0x00007964 cmpq %r11, %rax + 0x0f, 0x83, 0xe0, 0x00, 0x00, 0x00, //0x00007967 jae LBB34_30 + //0x0000796d LBB34_17 + 0x80, 0x38, 0x00, //0x0000796d cmpb $0, (%rax) + 0x0f, 0x89, 0xea, 0xff, 0xff, 0xff, //0x00007970 jns LBB34_16 + 0xc6, 0x45, 0xf4, 0x00, //0x00007976 movb $0, $-12(%rbp) + 0xc6, 0x45, 0xf2, 0x00, //0x0000797a movb $0, $-14(%rbp) + 0x4c, 0x89, 0xda, //0x0000797e movq %r11, %rdx + 0x48, 0x29, 0xc2, //0x00007981 subq %rax, %rdx + 0x48, 0x83, 0xfa, 0x02, //0x00007984 cmpq $2, %rdx + 0x0f, 0x82, 0x31, 0x00, 0x00, 0x00, //0x00007988 jb LBB34_21 + 0x0f, 0xb6, 0x30, //0x0000798e movzbl (%rax), %esi + 0x0f, 0xb6, 0x78, 0x01, //0x00007991 movzbl $1(%rax), %edi + 0x40, 0x88, 0x75, 0xf4, //0x00007995 movb %sil, $-12(%rbp) + 0x48, 0x8d, 0x48, 0x02, //0x00007999 leaq $2(%rax), %rcx + 0x48, 0x83, 0xc2, 0xfe, //0x0000799d addq $-2, %rdx + 0x4c, 0x89, 0xcb, //0x000079a1 movq %r9, %rbx + 0x48, 0x85, 0xd2, //0x000079a4 testq %rdx, %rdx + 0x0f, 0x84, 0x25, 0x00, 0x00, 0x00, //0x000079a7 je LBB34_22 + //0x000079ad LBB34_20 + 0x0f, 0xb6, 0x09, //0x000079ad movzbl (%rcx), %ecx + 0x88, 0x0b, //0x000079b0 movb %cl, (%rbx) + 0x0f, 0xb6, 0x75, 0xf4, //0x000079b2 movzbl $-12(%rbp), %esi + 0x0f, 0xb6, 0x4d, 0xf2, //0x000079b6 movzbl $-14(%rbp), %ecx + 0xe9, 0x15, 0x00, 0x00, 0x00, //0x000079ba jmp LBB34_23 + //0x000079bf LBB34_21 + 0x31, 0xf6, //0x000079bf xorl %esi, %esi + 0x31, 0xff, //0x000079c1 xorl %edi, %edi + 0x4c, 0x89, 0xc3, //0x000079c3 movq %r8, %rbx + 0x48, 0x89, 0xc1, //0x000079c6 movq %rax, %rcx + 0x48, 0x85, 0xd2, //0x000079c9 testq %rdx, %rdx + 0x0f, 0x85, 0xdb, 0xff, 0xff, 0xff, //0x000079cc jne LBB34_20 + //0x000079d2 LBB34_22 + 0x31, 0xc9, //0x000079d2 xorl %ecx, %ecx + //0x000079d4 LBB34_23 + 0x0f, 0xb6, 0xc9, //0x000079d4 movzbl %cl, %ecx + 0xc1, 0xe1, 0x10, //0x000079d7 shll $16, %ecx + 0x40, 0x0f, 0xb6, 0xff, //0x000079da movzbl %dil, %edi + 0xc1, 0xe7, 0x08, //0x000079de shll $8, %edi + 0x09, 0xcf, //0x000079e1 orl %ecx, %edi + 0x40, 0x0f, 0xb6, 0xd6, //0x000079e3 movzbl %sil, %edx + 0x09, 0xfa, //0x000079e7 orl %edi, %edx + 0x89, 0xd1, //0x000079e9 movl %edx, %ecx + 0x81, 0xe1, 0xf0, 0xc0, 0xc0, 0x00, //0x000079eb andl $12632304, %ecx + 0x81, 0xf9, 0xe0, 0x80, 0x80, 0x00, //0x000079f1 cmpl $8421600, %ecx + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x000079f7 jne LBB34_26 + 0x89, 0xd7, //0x000079fd movl %edx, %edi + 0x81, 0xe7, 0x0f, 0x20, 0x00, 0x00, //0x000079ff andl $8207, %edi + 0x81, 0xff, 0x0d, 0x20, 0x00, 0x00, //0x00007a05 cmpl $8205, %edi + 0x0f, 0x84, 0x0f, 0x00, 0x00, 0x00, //0x00007a0b je LBB34_26 + 0xb9, 0x03, 0x00, 0x00, 0x00, //0x00007a11 movl $3, %ecx + 0x85, 0xff, //0x00007a16 testl %edi, %edi + 0x0f, 0x85, 0x23, 0x00, 0x00, 0x00, //0x00007a18 jne LBB34_28 + 0x90, 0x90, //0x00007a1e .p2align 4, 0x90 + //0x00007a20 LBB34_26 + 0x40, 0xf6, 0xc6, 0x1e, //0x00007a20 testb $30, %sil + 0x0f, 0x84, 0x07, 0xff, 0xff, 0xff, //0x00007a24 je LBB34_13 + 0x81, 0xe2, 0xe0, 0xc0, 0x00, 0x00, //0x00007a2a andl $49376, %edx + 0xb9, 0x02, 0x00, 0x00, 0x00, //0x00007a30 movl $2, %ecx + 0x81, 0xfa, 0xc0, 0x80, 0x00, 0x00, //0x00007a35 cmpl $32960, %edx + 0x0f, 0x85, 0xf0, 0xfe, 0xff, 0xff, //0x00007a3b jne LBB34_13 + //0x00007a41 LBB34_28 + 0x48, 0x01, 0xc8, //0x00007a41 addq %rcx, %rax + 0x4c, 0x39, 0xd8, //0x00007a44 cmpq %r11, %rax + 0x0f, 0x82, 0x20, 0xff, 0xff, 0xff, //0x00007a47 jb LBB34_17 + //0x00007a4d LBB34_30 + 0x31, 0xc0, //0x00007a4d xorl %eax, %eax + 0x48, 0x83, 0xc4, 0x08, //0x00007a4f addq $8, %rsp + 0x5b, //0x00007a53 popq %rbx + 0x5d, //0x00007a54 popq %rbp + 0xc3, //0x00007a55 retq + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00007a56 .p2align 4, 0x00 + //0x00007a60 LCPI35_0 + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00007a60 QUAD $0x3030303030303030; QUAD $0x3030303030303030 // .space 16, '0000000000000000' + //0x00007a70 .p2align 4, 0x90 + //0x00007a70 _f32toa + 0x55, //0x00007a70 pushq %rbp + 0x48, 0x89, 0xe5, //0x00007a71 movq %rsp, %rbp + 0x41, 0x57, //0x00007a74 pushq %r15 + 0x41, 0x56, //0x00007a76 pushq %r14 + 0x41, 0x55, //0x00007a78 pushq %r13 + 0x41, 0x54, //0x00007a7a pushq %r12 + 0x53, //0x00007a7c pushq %rbx + 0x48, 0x83, 0xec, 0x10, //0x00007a7d subq $16, %rsp + 0x66, 0x0f, 0x7e, 0xc0, //0x00007a81 movd %xmm0, %eax + 0x89, 0xc1, //0x00007a85 movl %eax, %ecx + 0xc1, 0xe9, 0x17, //0x00007a87 shrl $23, %ecx + 0x0f, 0xb6, 0xd1, //0x00007a8a movzbl %cl, %edx + 0x81, 0xfa, 0xff, 0x00, 0x00, 0x00, //0x00007a8d cmpl $255, %edx + 0x0f, 0x84, 0x1c, 0x0e, 0x00, 0x00, //0x00007a93 je LBB35_1 + 0xc6, 0x07, 0x2d, //0x00007a99 movb $45, (%rdi) + 0x41, 0x89, 0xc2, //0x00007a9c movl %eax, %r10d + 0x41, 0xc1, 0xea, 0x1f, //0x00007a9f shrl $31, %r10d + 0x4e, 0x8d, 0x0c, 0x17, //0x00007aa3 leaq (%rdi,%r10), %r9 + 0xa9, 0xff, 0xff, 0xff, 0x7f, //0x00007aa7 testl $2147483647, %eax + 0x0f, 0x84, 0xa9, 0x01, 0x00, 0x00, //0x00007aac je LBB35_3 + 0x25, 0xff, 0xff, 0x7f, 0x00, //0x00007ab2 andl $8388607, %eax + 0x85, 0xd2, //0x00007ab7 testl %edx, %edx + 0x0f, 0x84, 0xfd, 0x0d, 0x00, 0x00, //0x00007ab9 je LBB35_5 + 0x44, 0x8d, 0x98, 0x00, 0x00, 0x80, 0x00, //0x00007abf leal $8388608(%rax), %r11d + 0x44, 0x8d, 0x82, 0x6a, 0xff, 0xff, 0xff, //0x00007ac6 leal $-150(%rdx), %r8d + 0x8d, 0x4a, 0x81, //0x00007acd leal $-127(%rdx), %ecx + 0x83, 0xf9, 0x17, //0x00007ad0 cmpl $23, %ecx + 0x0f, 0x87, 0x1c, 0x00, 0x00, 0x00, //0x00007ad3 ja LBB35_10 + 0xb9, 0x96, 0x00, 0x00, 0x00, //0x00007ad9 movl $150, %ecx + 0x29, 0xd1, //0x00007ade subl %edx, %ecx + 0x48, 0xc7, 0xc6, 0xff, 0xff, 0xff, 0xff, //0x00007ae0 movq $-1, %rsi + 0x48, 0xd3, 0xe6, //0x00007ae7 shlq %cl, %rsi + 0xf7, 0xd6, //0x00007aea notl %esi + 0x44, 0x85, 0xde, //0x00007aec testl %r11d, %esi + 0x0f, 0x84, 0x22, 0x03, 0x00, 0x00, //0x00007aef je LBB35_12 + //0x00007af5 LBB35_10 + 0x4c, 0x89, 0x4d, 0xc8, //0x00007af5 movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x00007af9 movq %rdi, $-48(%rbp) + //0x00007afd LBB35_6 + 0x45, 0x89, 0xdf, //0x00007afd movl %r11d, %r15d + 0x41, 0x83, 0xe7, 0x01, //0x00007b00 andl $1, %r15d + 0x85, 0xc0, //0x00007b04 testl %eax, %eax + 0x0f, 0x94, 0xc0, //0x00007b06 sete %al + 0x83, 0xfa, 0x02, //0x00007b09 cmpl $2, %edx + 0x0f, 0x93, 0xc1, //0x00007b0c setae %cl + 0x20, 0xc1, //0x00007b0f andb %al, %cl + 0x0f, 0xb6, 0xc9, //0x00007b11 movzbl %cl, %ecx + 0x45, 0x89, 0xd9, //0x00007b14 movl %r11d, %r9d + 0x41, 0xc1, 0xe1, 0x02, //0x00007b17 shll $2, %r9d + 0x42, 0x8d, 0x04, 0x99, //0x00007b1b leal (%rcx,%r11,4), %eax + 0x83, 0xc0, 0xfe, //0x00007b1f addl $-2, %eax + 0x41, 0x69, 0xd0, 0x13, 0x44, 0x13, 0x00, //0x00007b22 imull $1262611, %r8d, %edx + 0x44, 0x8d, 0xb2, 0x01, 0x01, 0xf8, 0xff, //0x00007b29 leal $-524031(%rdx), %r14d + 0x84, 0xc9, //0x00007b30 testb %cl, %cl + 0x44, 0x0f, 0x44, 0xf2, //0x00007b32 cmovel %edx, %r14d + 0x41, 0xc1, 0xfe, 0x16, //0x00007b36 sarl $22, %r14d + 0x41, 0x69, 0xce, 0xb1, 0x6c, 0xe5, 0xff, //0x00007b3a imull $-1741647, %r14d, %ecx + 0xc1, 0xe9, 0x13, //0x00007b41 shrl $19, %ecx + 0x44, 0x01, 0xc1, //0x00007b44 addl %r8d, %ecx + 0xba, 0x1f, 0x00, 0x00, 0x00, //0x00007b47 movl $31, %edx + 0x44, 0x29, 0xf2, //0x00007b4c subl %r14d, %edx + 0x80, 0xc1, 0x01, //0x00007b4f addb $1, %cl + 0xd3, 0xe0, //0x00007b52 shll %cl, %eax + 0x48, 0x8d, 0x35, 0x05, 0xbe, 0x00, 0x00, //0x00007b54 leaq $48645(%rip), %rsi /* _pow10_ceil_sig_f32.g+0(%rip) */ + 0x4c, 0x8b, 0x2c, 0xd6, //0x00007b5b movq (%rsi,%rdx,8), %r13 + 0x49, 0xf7, 0xe5, //0x00007b5f mulq %r13 + 0x49, 0x89, 0xd0, //0x00007b62 movq %rdx, %r8 + 0x48, 0xc1, 0xe8, 0x20, //0x00007b65 shrq $32, %rax + 0x45, 0x31, 0xe4, //0x00007b69 xorl %r12d, %r12d + 0x83, 0xf8, 0x02, //0x00007b6c cmpl $2, %eax + 0x41, 0x0f, 0x93, 0xc4, //0x00007b6f setae %r12b + 0x41, 0xd3, 0xe1, //0x00007b73 shll %cl, %r9d + 0x46, 0x8d, 0x1c, 0x9d, 0x02, 0x00, 0x00, 0x00, //0x00007b76 leal $2(,%r11,4), %r11d + 0x4c, 0x89, 0xc8, //0x00007b7e movq %r9, %rax + 0x49, 0xf7, 0xe5, //0x00007b81 mulq %r13 + 0x49, 0x89, 0xd1, //0x00007b84 movq %rdx, %r9 + 0x45, 0x09, 0xc4, //0x00007b87 orl %r8d, %r12d + 0x48, 0xc1, 0xe8, 0x20, //0x00007b8a shrq $32, %rax + 0x31, 0xdb, //0x00007b8e xorl %ebx, %ebx + 0x83, 0xf8, 0x02, //0x00007b90 cmpl $2, %eax + 0x0f, 0x93, 0xc3, //0x00007b93 setae %bl + 0x41, 0xd3, 0xe3, //0x00007b96 shll %cl, %r11d + 0x44, 0x09, 0xcb, //0x00007b99 orl %r9d, %ebx + 0x4c, 0x89, 0xd8, //0x00007b9c movq %r11, %rax + 0x49, 0xf7, 0xe5, //0x00007b9f mulq %r13 + 0x48, 0xc1, 0xe8, 0x20, //0x00007ba2 shrq $32, %rax + 0x31, 0xc9, //0x00007ba6 xorl %ecx, %ecx + 0x83, 0xf8, 0x02, //0x00007ba8 cmpl $2, %eax + 0x0f, 0x93, 0xc1, //0x00007bab setae %cl + 0x09, 0xd1, //0x00007bae orl %edx, %ecx + 0x45, 0x01, 0xfc, //0x00007bb0 addl %r15d, %r12d + 0x44, 0x29, 0xf9, //0x00007bb3 subl %r15d, %ecx + 0x83, 0xfb, 0x28, //0x00007bb6 cmpl $40, %ebx + 0x0f, 0x82, 0x42, 0x00, 0x00, 0x00, //0x00007bb9 jb LBB35_31 + 0x44, 0x89, 0xc8, //0x00007bbf movl %r9d, %eax + 0xba, 0xcd, 0xcc, 0xcc, 0xcc, //0x00007bc2 movl $3435973837, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00007bc7 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x25, //0x00007bcb shrq $37, %rdx + 0x44, 0x89, 0xe0, //0x00007bcf movl %r12d, %eax + 0x48, 0x8d, 0x34, 0xd5, 0x00, 0x00, 0x00, 0x00, //0x00007bd2 leaq (,%rdx,8), %rsi + 0x48, 0x8d, 0x3c, 0xb6, //0x00007bda leaq (%rsi,%rsi,4), %rdi + 0x48, 0x39, 0xc7, //0x00007bde cmpq %rax, %rdi + 0x41, 0x0f, 0x92, 0xc3, //0x00007be1 setb %r11b + 0x48, 0x8d, 0x34, 0xb6, //0x00007be5 leaq (%rsi,%rsi,4), %rsi + 0x48, 0x83, 0xc6, 0x28, //0x00007be9 addq $40, %rsi + 0x89, 0xcf, //0x00007bed movl %ecx, %edi + 0x31, 0xc0, //0x00007bef xorl %eax, %eax + 0x48, 0x39, 0xfe, //0x00007bf1 cmpq %rdi, %rsi + 0x41, 0x0f, 0x96, 0xc0, //0x00007bf4 setbe %r8b + 0x45, 0x38, 0xc3, //0x00007bf8 cmpb %r8b, %r11b + 0x0f, 0x84, 0xb7, 0x00, 0x00, 0x00, //0x00007bfb je LBB35_8 + //0x00007c01 LBB35_31 + 0x4d, 0x89, 0xc8, //0x00007c01 movq %r9, %r8 + 0x49, 0xc1, 0xe8, 0x02, //0x00007c04 shrq $2, %r8 + 0x44, 0x89, 0xca, //0x00007c08 movl %r9d, %edx + 0x83, 0xe2, 0xfc, //0x00007c0b andl $-4, %edx + 0x41, 0x39, 0xd4, //0x00007c0e cmpl %edx, %r12d + 0x40, 0x0f, 0x97, 0xc6, //0x00007c11 seta %sil + 0x8d, 0x7a, 0x04, //0x00007c15 leal $4(%rdx), %edi + 0x39, 0xcf, //0x00007c18 cmpl %ecx, %edi + 0x0f, 0x96, 0xc0, //0x00007c1a setbe %al + 0x40, 0x30, 0xf0, //0x00007c1d xorb %sil, %al + 0x0f, 0x84, 0x48, 0x00, 0x00, 0x00, //0x00007c20 je LBB35_32 + 0x83, 0xca, 0x02, //0x00007c26 orl $2, %edx + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007c29 movl $1, %eax + 0x39, 0xd3, //0x00007c2e cmpl %edx, %ebx + 0x4c, 0x8b, 0x65, 0xc8, //0x00007c30 movq $-56(%rbp), %r12 + 0x0f, 0x87, 0x0e, 0x00, 0x00, 0x00, //0x00007c34 ja LBB35_35 + 0x0f, 0x94, 0xc0, //0x00007c3a sete %al + 0x41, 0xc0, 0xe9, 0x02, //0x00007c3d shrb $2, %r9b + 0x41, 0x20, 0xc1, //0x00007c41 andb %al, %r9b + 0x41, 0x0f, 0xb6, 0xc1, //0x00007c44 movzbl %r9b, %eax + //0x00007c48 LBB35_35 + 0x44, 0x01, 0xc0, //0x00007c48 addl %r8d, %eax + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007c4b cmpl $100000, %eax + 0x0f, 0x83, 0x30, 0x00, 0x00, 0x00, //0x00007c50 jae LBB35_37 + 0xe9, 0x75, 0x00, 0x00, 0x00, //0x00007c56 jmp LBB35_40 + //0x00007c5b LBB35_3 + 0x41, 0xc6, 0x01, 0x30, //0x00007c5b movb $48, (%r9) + 0x41, 0x29, 0xf9, //0x00007c5f subl %edi, %r9d + 0x41, 0x83, 0xc1, 0x01, //0x00007c62 addl $1, %r9d + 0x44, 0x89, 0xc8, //0x00007c66 movl %r9d, %eax + 0xe9, 0x38, 0x0c, 0x00, 0x00, //0x00007c69 jmp LBB35_156 + //0x00007c6e LBB35_32 + 0x39, 0xf9, //0x00007c6e cmpl %edi, %ecx + 0x41, 0x83, 0xd8, 0xff, //0x00007c70 sbbl $-1, %r8d + 0x44, 0x89, 0xc0, //0x00007c74 movl %r8d, %eax + 0x4c, 0x8b, 0x65, 0xc8, //0x00007c77 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007c7b cmpl $100000, %eax + 0x0f, 0x82, 0x4a, 0x00, 0x00, 0x00, //0x00007c80 jb LBB35_40 + //0x00007c86 LBB35_37 + 0x41, 0xbd, 0x06, 0x00, 0x00, 0x00, //0x00007c86 movl $6, %r13d + 0x3d, 0x40, 0x42, 0x0f, 0x00, //0x00007c8c cmpl $1000000, %eax + 0x0f, 0x82, 0x77, 0x00, 0x00, 0x00, //0x00007c91 jb LBB35_45 + 0x41, 0xbd, 0x07, 0x00, 0x00, 0x00, //0x00007c97 movl $7, %r13d + 0x3d, 0x80, 0x96, 0x98, 0x00, //0x00007c9d cmpl $10000000, %eax + 0x0f, 0x82, 0x66, 0x00, 0x00, 0x00, //0x00007ca2 jb LBB35_45 + 0x3d, 0x00, 0xe1, 0xf5, 0x05, //0x00007ca8 cmpl $100000000, %eax + 0x41, 0xbd, 0x09, 0x00, 0x00, 0x00, //0x00007cad movl $9, %r13d + 0xe9, 0x52, 0x00, 0x00, 0x00, //0x00007cb3 jmp LBB35_44 + //0x00007cb8 LBB35_8 + 0x44, 0x88, 0xc0, //0x00007cb8 movb %r8b, %al + 0x01, 0xd0, //0x00007cbb addl %edx, %eax + 0x41, 0x83, 0xc6, 0x01, //0x00007cbd addl $1, %r14d + 0x4c, 0x8b, 0x65, 0xc8, //0x00007cc1 movq $-56(%rbp), %r12 + 0x3d, 0xa0, 0x86, 0x01, 0x00, //0x00007cc5 cmpl $100000, %eax + 0x0f, 0x83, 0xb6, 0xff, 0xff, 0xff, //0x00007cca jae LBB35_37 + //0x00007cd0 LBB35_40 + 0x41, 0xbd, 0x01, 0x00, 0x00, 0x00, //0x00007cd0 movl $1, %r13d + 0x83, 0xf8, 0x0a, //0x00007cd6 cmpl $10, %eax + 0x0f, 0x82, 0x2f, 0x00, 0x00, 0x00, //0x00007cd9 jb LBB35_45 + 0x41, 0xbd, 0x02, 0x00, 0x00, 0x00, //0x00007cdf movl $2, %r13d + 0x83, 0xf8, 0x64, //0x00007ce5 cmpl $100, %eax + 0x0f, 0x82, 0x20, 0x00, 0x00, 0x00, //0x00007ce8 jb LBB35_45 + 0x41, 0xbd, 0x03, 0x00, 0x00, 0x00, //0x00007cee movl $3, %r13d + 0x3d, 0xe8, 0x03, 0x00, 0x00, //0x00007cf4 cmpl $1000, %eax + 0x0f, 0x82, 0x0f, 0x00, 0x00, 0x00, //0x00007cf9 jb LBB35_45 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007cff cmpl $10000, %eax + 0x41, 0xbd, 0x05, 0x00, 0x00, 0x00, //0x00007d04 movl $5, %r13d + //0x00007d0a LBB35_44 + 0x41, 0x83, 0xdd, 0x00, //0x00007d0a sbbl $0, %r13d + //0x00007d0e LBB35_45 + 0x47, 0x8d, 0x0c, 0x2e, //0x00007d0e leal (%r14,%r13), %r9d + 0x43, 0x8d, 0x0c, 0x2e, //0x00007d12 leal (%r14,%r13), %ecx + 0x83, 0xc1, 0x05, //0x00007d16 addl $5, %ecx + 0x83, 0xf9, 0x1b, //0x00007d19 cmpl $27, %ecx + 0x0f, 0x82, 0x6d, 0x00, 0x00, 0x00, //0x00007d1c jb LBB35_70 + 0x44, 0x89, 0xea, //0x00007d22 movl %r13d, %edx + 0x49, 0x8d, 0x0c, 0x14, //0x00007d25 leaq (%r12,%rdx), %rcx + 0x48, 0x83, 0xc1, 0x01, //0x00007d29 addq $1, %rcx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007d2d cmpl $10000, %eax + 0x0f, 0x82, 0xc6, 0x00, 0x00, 0x00, //0x00007d32 jb LBB35_47 + 0x89, 0xc6, //0x00007d38 movl %eax, %esi + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x00007d3a movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xde, //0x00007d3f imulq %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x00007d43 shrq $45, %rbx + 0x44, 0x69, 0xc3, 0xf0, 0xd8, 0xff, 0xff, //0x00007d47 imull $-10000, %ebx, %r8d + 0x41, 0x01, 0xc0, //0x00007d4e addl %eax, %r8d + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007d51 movq $-48(%rbp), %r13 + 0x0f, 0x84, 0x48, 0x03, 0x00, 0x00, //0x00007d55 je LBB35_49 + 0x44, 0x89, 0xc0, //0x00007d5b movl %r8d, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00007d5e imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007d65 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x00007d69 imull $100, %eax, %esi + 0x41, 0x29, 0xf0, //0x00007d6c subl %esi, %r8d + 0x48, 0x8d, 0x35, 0x6a, 0x48, 0x00, 0x00, //0x00007d6f leaq $18538(%rip), %rsi /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x3c, 0x46, //0x00007d76 movzwl (%rsi,%r8,2), %edi + 0x66, 0x89, 0x79, 0xfe, //0x00007d7b movw %di, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x46, //0x00007d7f movzwl (%rsi,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00007d83 movw %ax, $-4(%rcx) + 0x45, 0x31, 0xc0, //0x00007d87 xorl %r8d, %r8d + 0xe9, 0x1a, 0x03, 0x00, 0x00, //0x00007d8a jmp LBB35_51 + //0x00007d8f LBB35_70 + 0x45, 0x89, 0xe8, //0x00007d8f movl %r13d, %r8d + 0x45, 0x85, 0xf6, //0x00007d92 testl %r14d, %r14d + 0x0f, 0x88, 0x1c, 0x01, 0x00, 0x00, //0x00007d95 js LBB35_71 + 0x4b, 0x8d, 0x14, 0x04, //0x00007d9b leaq (%r12,%r8), %rdx + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x00007d9f cmpl $10000, %eax + 0x0f, 0x82, 0x77, 0x01, 0x00, 0x00, //0x00007da4 jb LBB35_124 + 0x89, 0xc1, //0x00007daa movl %eax, %ecx + 0xbe, 0x59, 0x17, 0xb7, 0xd1, //0x00007dac movl $3518437209, %esi + 0x48, 0x0f, 0xaf, 0xf1, //0x00007db1 imulq %rcx, %rsi + 0x48, 0xc1, 0xee, 0x2d, //0x00007db5 shrq $45, %rsi + 0x69, 0xce, 0xf0, 0xd8, 0xff, 0xff, //0x00007db9 imull $-10000, %esi, %ecx + 0x01, 0xc1, //0x00007dbf addl %eax, %ecx + 0x48, 0x69, 0xc1, 0x1f, 0x85, 0xeb, 0x51, //0x00007dc1 imulq $1374389535, %rcx, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00007dc8 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x00007dcc imull $100, %eax, %edi + 0x29, 0xf9, //0x00007dcf subl %edi, %ecx + 0x48, 0x8d, 0x3d, 0x08, 0x48, 0x00, 0x00, //0x00007dd1 leaq $18440(%rip), %rdi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4f, //0x00007dd8 movzwl (%rdi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xfe, //0x00007ddc movw %cx, $-2(%rdx) + 0x48, 0x8d, 0x4a, 0xfc, //0x00007de0 leaq $-4(%rdx), %rcx + 0x0f, 0xb7, 0x04, 0x47, //0x00007de4 movzwl (%rdi,%rax,2), %eax + 0x66, 0x89, 0x42, 0xfc, //0x00007de8 movw %ax, $-4(%rdx) + 0x89, 0xf0, //0x00007dec movl %esi, %eax + 0x83, 0xf8, 0x64, //0x00007dee cmpl $100, %eax + 0x0f, 0x83, 0x36, 0x01, 0x00, 0x00, //0x00007df1 jae LBB35_128 + //0x00007df7 LBB35_127 + 0x89, 0xc3, //0x00007df7 movl %eax, %ebx + 0xe9, 0x70, 0x01, 0x00, 0x00, //0x00007df9 jmp LBB35_130 + //0x00007dfe LBB35_47 + 0x45, 0x31, 0xc0, //0x00007dfe xorl %r8d, %r8d + 0x89, 0xc3, //0x00007e01 movl %eax, %ebx + 0x4c, 0x8b, 0x6d, 0xd0, //0x00007e03 movq $-48(%rbp), %r13 + 0x83, 0xfb, 0x64, //0x00007e07 cmpl $100, %ebx + 0x0f, 0x83, 0xa6, 0x02, 0x00, 0x00, //0x00007e0a jae LBB35_54 + //0x00007e10 LBB35_53 + 0x89, 0xd8, //0x00007e10 movl %ebx, %eax + 0xe9, 0xe8, 0x02, 0x00, 0x00, //0x00007e12 jmp LBB35_56 + //0x00007e17 LBB35_12 + 0x41, 0xd3, 0xeb, //0x00007e17 shrl %cl, %r11d + 0x41, 0x81, 0xfb, 0xa0, 0x86, 0x01, 0x00, //0x00007e1a cmpl $100000, %r11d + 0x0f, 0x82, 0xc8, 0x01, 0x00, 0x00, //0x00007e21 jb LBB35_18 + 0xb9, 0x06, 0x00, 0x00, 0x00, //0x00007e27 movl $6, %ecx + 0x41, 0x81, 0xfb, 0x40, 0x42, 0x0f, 0x00, //0x00007e2c cmpl $1000000, %r11d + 0x0f, 0x82, 0x22, 0x00, 0x00, 0x00, //0x00007e33 jb LBB35_16 + 0xb9, 0x07, 0x00, 0x00, 0x00, //0x00007e39 movl $7, %ecx + 0x41, 0x81, 0xfb, 0x80, 0x96, 0x98, 0x00, //0x00007e3e cmpl $10000000, %r11d + 0x0f, 0x82, 0x10, 0x00, 0x00, 0x00, //0x00007e45 jb LBB35_16 + 0x41, 0x81, 0xfb, 0x00, 0xe1, 0xf5, 0x05, //0x00007e4b cmpl $100000000, %r11d + 0xb9, 0x09, 0x00, 0x00, 0x00, //0x00007e52 movl $9, %ecx + 0x48, 0x83, 0xd9, 0x00, //0x00007e57 sbbq $0, %rcx + //0x00007e5b LBB35_16 + 0x4c, 0x01, 0xc9, //0x00007e5b addq %r9, %rcx + //0x00007e5e LBB35_17 + 0x44, 0x89, 0xd8, //0x00007e5e movl %r11d, %eax + 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00007e61 movl $3518437209, %edx + 0x48, 0x0f, 0xaf, 0xd0, //0x00007e66 imulq %rax, %rdx + 0x48, 0xc1, 0xea, 0x2d, //0x00007e6a shrq $45, %rdx + 0x69, 0xc2, 0xf0, 0xd8, 0xff, 0xff, //0x00007e6e imull $-10000, %edx, %eax + 0x44, 0x01, 0xd8, //0x00007e74 addl %r11d, %eax + 0x48, 0x69, 0xf0, 0x1f, 0x85, 0xeb, 0x51, //0x00007e77 imulq $1374389535, %rax, %rsi + 0x48, 0xc1, 0xee, 0x25, //0x00007e7e shrq $37, %rsi + 0x6b, 0xde, 0x64, //0x00007e82 imull $100, %esi, %ebx + 0x29, 0xd8, //0x00007e85 subl %ebx, %eax + 0x48, 0x8d, 0x1d, 0x52, 0x47, 0x00, 0x00, //0x00007e87 leaq $18258(%rip), %rbx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x43, //0x00007e8e movzwl (%rbx,%rax,2), %eax + 0x66, 0x89, 0x41, 0xfe, //0x00007e92 movw %ax, $-2(%rcx) + 0x0f, 0xb7, 0x04, 0x73, //0x00007e96 movzwl (%rbx,%rsi,2), %eax + 0x66, 0x89, 0x41, 0xfc, //0x00007e9a movw %ax, $-4(%rcx) + 0x48, 0x89, 0xc8, //0x00007e9e movq %rcx, %rax + 0x48, 0x83, 0xc1, 0xfc, //0x00007ea1 addq $-4, %rcx + 0x41, 0x89, 0xd3, //0x00007ea5 movl %edx, %r11d + 0x41, 0x83, 0xfb, 0x64, //0x00007ea8 cmpl $100, %r11d + 0x0f, 0x83, 0x7d, 0x01, 0x00, 0x00, //0x00007eac jae LBB35_25 + 0xe9, 0xbb, 0x01, 0x00, 0x00, //0x00007eb2 jmp LBB35_27 + //0x00007eb7 LBB35_71 + 0x45, 0x85, 0xc9, //0x00007eb7 testl %r9d, %r9d + 0x0f, 0x8f, 0x22, 0x06, 0x00, 0x00, //0x00007eba jg LBB35_84 + 0x66, 0x41, 0xc7, 0x04, 0x24, 0x30, 0x2e, //0x00007ec0 movw $11824, (%r12) + 0x49, 0x83, 0xc4, 0x02, //0x00007ec7 addq $2, %r12 + 0x45, 0x85, 0xc9, //0x00007ecb testl %r9d, %r9d + 0x0f, 0x89, 0x0e, 0x06, 0x00, 0x00, //0x00007ece jns LBB35_84 + 0x45, 0x89, 0xeb, //0x00007ed4 movl %r13d, %r11d + 0x41, 0xf7, 0xd3, //0x00007ed7 notl %r11d + 0x45, 0x29, 0xf3, //0x00007eda subl %r14d, %r11d + 0x31, 0xc9, //0x00007edd xorl %ecx, %ecx + 0x41, 0x83, 0xfb, 0x1f, //0x00007edf cmpl $31, %r11d + 0x0f, 0x82, 0xe0, 0x05, 0x00, 0x00, //0x00007ee3 jb LBB35_82 + 0x4c, 0x89, 0xe7, //0x00007ee9 movq %r12, %rdi + 0x49, 0x83, 0xc3, 0x01, //0x00007eec addq $1, %r11 + 0x4c, 0x89, 0xd9, //0x00007ef0 movq %r11, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x00007ef3 andq $-32, %rcx + 0x48, 0x8d, 0x51, 0xe0, //0x00007ef7 leaq $-32(%rcx), %rdx + 0x49, 0x89, 0xd4, //0x00007efb movq %rdx, %r12 + 0x49, 0xc1, 0xec, 0x05, //0x00007efe shrq $5, %r12 + 0x49, 0x83, 0xc4, 0x01, //0x00007f02 addq $1, %r12 + 0x45, 0x89, 0xe7, //0x00007f06 movl %r12d, %r15d + 0x41, 0x83, 0xe7, 0x07, //0x00007f09 andl $7, %r15d + 0x48, 0x81, 0xfa, 0xe0, 0x00, 0x00, 0x00, //0x00007f0d cmpq $224, %rdx + 0x0f, 0x83, 0xbe, 0x04, 0x00, 0x00, //0x00007f14 jae LBB35_76 + 0x31, 0xd2, //0x00007f1a xorl %edx, %edx + 0xe9, 0x5c, 0x05, 0x00, 0x00, //0x00007f1c jmp LBB35_78 + //0x00007f21 LBB35_124 + 0x48, 0x89, 0xd1, //0x00007f21 movq %rdx, %rcx + 0x83, 0xf8, 0x64, //0x00007f24 cmpl $100, %eax + 0x0f, 0x82, 0xca, 0xfe, 0xff, 0xff, //0x00007f27 jb LBB35_127 + //0x00007f2d LBB35_128 + 0x48, 0x83, 0xc1, 0xff, //0x00007f2d addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0xa8, 0x46, 0x00, 0x00, //0x00007f31 leaq $18088(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00007f38 .p2align 4, 0x90 + //0x00007f40 LBB35_129 + 0x89, 0xc6, //0x00007f40 movl %eax, %esi + 0x48, 0x69, 0xde, 0x1f, 0x85, 0xeb, 0x51, //0x00007f42 imulq $1374389535, %rsi, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00007f49 shrq $37, %rbx + 0x6b, 0xf3, 0x64, //0x00007f4d imull $100, %ebx, %esi + 0x89, 0xc7, //0x00007f50 movl %eax, %edi + 0x29, 0xf7, //0x00007f52 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x00007f54 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x00007f59 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00007f5d addq $-2, %rcx + 0x3d, 0x0f, 0x27, 0x00, 0x00, //0x00007f61 cmpl $9999, %eax + 0x89, 0xd8, //0x00007f66 movl %ebx, %eax + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x00007f68 ja LBB35_129 + //0x00007f6e LBB35_130 + 0x4d, 0x63, 0xe9, //0x00007f6e movslq %r9d, %r13 + 0x83, 0xfb, 0x0a, //0x00007f71 cmpl $10, %ebx + 0x0f, 0x82, 0x23, 0x00, 0x00, 0x00, //0x00007f74 jb LBB35_132 + 0x89, 0xd8, //0x00007f7a movl %ebx, %eax + 0x48, 0x8d, 0x0d, 0x5d, 0x46, 0x00, 0x00, //0x00007f7c leaq $18013(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00007f83 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x04, 0x24, //0x00007f87 movw %ax, (%r12) + 0x4d, 0x01, 0xec, //0x00007f8c addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00007f8f cmpq %r13, %r8 + 0x0f, 0x8c, 0x18, 0x00, 0x00, 0x00, //0x00007f92 jl LBB35_135 + 0xe9, 0xdd, 0x03, 0x00, 0x00, //0x00007f98 jmp LBB35_134 + //0x00007f9d LBB35_132 + 0x80, 0xc3, 0x30, //0x00007f9d addb $48, %bl + 0x41, 0x88, 0x1c, 0x24, //0x00007fa0 movb %bl, (%r12) + 0x4d, 0x01, 0xec, //0x00007fa4 addq %r13, %r12 + 0x4d, 0x39, 0xe8, //0x00007fa7 cmpq %r13, %r8 + 0x0f, 0x8d, 0xca, 0x03, 0x00, 0x00, //0x00007faa jge LBB35_134 + //0x00007fb0 LBB35_135 + 0x48, 0x8b, 0x45, 0xd0, //0x00007fb0 movq $-48(%rbp), %rax + 0x4c, 0x01, 0xd0, //0x00007fb4 addq %r10, %rax + 0x4d, 0x8d, 0x34, 0x00, //0x00007fb7 leaq (%r8,%rax), %r14 + 0x49, 0x83, 0xc6, 0x01, //0x00007fbb addq $1, %r14 + 0x49, 0x01, 0xc5, //0x00007fbf addq %rax, %r13 + 0x4d, 0x39, 0xee, //0x00007fc2 cmpq %r13, %r14 + 0x4d, 0x89, 0xef, //0x00007fc5 movq %r13, %r15 + 0x4d, 0x0f, 0x47, 0xfe, //0x00007fc8 cmovaq %r14, %r15 + 0x4e, 0x8d, 0x1c, 0x00, //0x00007fcc leaq (%rax,%r8), %r11 + 0x4d, 0x29, 0xdf, //0x00007fd0 subq %r11, %r15 + 0x49, 0x83, 0xff, 0x08, //0x00007fd3 cmpq $8, %r15 + 0x0f, 0x82, 0xd3, 0x03, 0x00, 0x00, //0x00007fd7 jb LBB35_152 + 0x49, 0x83, 0xff, 0x20, //0x00007fdd cmpq $32, %r15 + 0x0f, 0x83, 0xfb, 0x01, 0x00, 0x00, //0x00007fe1 jae LBB35_141 + 0x45, 0x31, 0xc9, //0x00007fe7 xorl %r9d, %r9d + 0xe9, 0x3b, 0x03, 0x00, 0x00, //0x00007fea jmp LBB35_138 + //0x00007fef LBB35_18 + 0xb8, 0x01, 0x00, 0x00, 0x00, //0x00007fef movl $1, %eax + 0x41, 0x83, 0xfb, 0x0a, //0x00007ff4 cmpl $10, %r11d + 0x0f, 0x82, 0x21, 0x00, 0x00, 0x00, //0x00007ff8 jb LBB35_21 + 0xb8, 0x02, 0x00, 0x00, 0x00, //0x00007ffe movl $2, %eax + 0x41, 0x83, 0xfb, 0x64, //0x00008003 cmpl $100, %r11d + 0x0f, 0x82, 0x12, 0x00, 0x00, 0x00, //0x00008007 jb LBB35_21 + 0xb8, 0x03, 0x00, 0x00, 0x00, //0x0000800d movl $3, %eax + 0x41, 0x81, 0xfb, 0xe8, 0x03, 0x00, 0x00, //0x00008012 cmpl $1000, %r11d + 0x0f, 0x83, 0x67, 0x03, 0x00, 0x00, //0x00008019 jae LBB35_23 + //0x0000801f LBB35_21 + 0x4c, 0x01, 0xc8, //0x0000801f addq %r9, %rax + 0x48, 0x89, 0xc1, //0x00008022 movq %rax, %rcx + 0x41, 0x83, 0xfb, 0x64, //0x00008025 cmpl $100, %r11d + 0x0f, 0x82, 0x43, 0x00, 0x00, 0x00, //0x00008029 jb LBB35_27 + //0x0000802f LBB35_25 + 0x48, 0x83, 0xc1, 0xff, //0x0000802f addq $-1, %rcx + 0x4c, 0x8d, 0x05, 0xa6, 0x45, 0x00, 0x00, //0x00008033 leaq $17830(%rip), %r8 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000803a .p2align 4, 0x90 + //0x00008040 LBB35_26 + 0x44, 0x89, 0xde, //0x00008040 movl %r11d, %esi + 0x44, 0x89, 0xdb, //0x00008043 movl %r11d, %ebx + 0x4c, 0x69, 0xdb, 0x1f, 0x85, 0xeb, 0x51, //0x00008046 imulq $1374389535, %rbx, %r11 + 0x49, 0xc1, 0xeb, 0x25, //0x0000804d shrq $37, %r11 + 0x41, 0x6b, 0xdb, 0x64, //0x00008051 imull $100, %r11d, %ebx + 0x89, 0xf2, //0x00008055 movl %esi, %edx + 0x29, 0xda, //0x00008057 subl %ebx, %edx + 0x41, 0x0f, 0xb7, 0x14, 0x50, //0x00008059 movzwl (%r8,%rdx,2), %edx + 0x66, 0x89, 0x51, 0xff, //0x0000805e movw %dx, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x00008062 addq $-2, %rcx + 0x81, 0xfe, 0x0f, 0x27, 0x00, 0x00, //0x00008066 cmpl $9999, %esi + 0x0f, 0x87, 0xce, 0xff, 0xff, 0xff, //0x0000806c ja LBB35_26 + //0x00008072 LBB35_27 + 0x41, 0x83, 0xfb, 0x0a, //0x00008072 cmpl $10, %r11d + 0x0f, 0x82, 0x19, 0x00, 0x00, 0x00, //0x00008076 jb LBB35_29 + 0x44, 0x89, 0xd9, //0x0000807c movl %r11d, %ecx + 0x48, 0x8d, 0x15, 0x5a, 0x45, 0x00, 0x00, //0x0000807f leaq $17754(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008086 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x09, //0x0000808a movw %cx, (%r9) + 0x29, 0xf8, //0x0000808e subl %edi, %eax + 0xe9, 0x11, 0x08, 0x00, 0x00, //0x00008090 jmp LBB35_156 + //0x00008095 LBB35_29 + 0x41, 0x80, 0xc3, 0x30, //0x00008095 addb $48, %r11b + 0x45, 0x88, 0x19, //0x00008099 movb %r11b, (%r9) + 0x29, 0xf8, //0x0000809c subl %edi, %eax + 0xe9, 0x03, 0x08, 0x00, 0x00, //0x0000809e jmp LBB35_156 + //0x000080a3 LBB35_49 + 0x41, 0xb8, 0x04, 0x00, 0x00, 0x00, //0x000080a3 movl $4, %r8d + //0x000080a9 LBB35_51 + 0x48, 0x83, 0xc1, 0xfc, //0x000080a9 addq $-4, %rcx + 0x83, 0xfb, 0x64, //0x000080ad cmpl $100, %ebx + 0x0f, 0x82, 0x5a, 0xfd, 0xff, 0xff, //0x000080b0 jb LBB35_53 + //0x000080b6 LBB35_54 + 0x48, 0x83, 0xc1, 0xff, //0x000080b6 addq $-1, %rcx + 0x4c, 0x8d, 0x1d, 0x1f, 0x45, 0x00, 0x00, //0x000080ba leaq $17695(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000080c1 .p2align 4, 0x90 + //0x000080d0 LBB35_55 + 0x89, 0xd8, //0x000080d0 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x000080d2 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x000080d9 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x000080dd imull $100, %eax, %esi + 0x89, 0xdf, //0x000080e0 movl %ebx, %edi + 0x29, 0xf7, //0x000080e2 subl %esi, %edi + 0x41, 0x0f, 0xb7, 0x34, 0x7b, //0x000080e4 movzwl (%r11,%rdi,2), %esi + 0x66, 0x89, 0x71, 0xff, //0x000080e9 movw %si, $-1(%rcx) + 0x48, 0x83, 0xc1, 0xfe, //0x000080ed addq $-2, %rcx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000080f1 cmpl $9999, %ebx + 0x89, 0xc3, //0x000080f7 movl %eax, %ebx + 0x0f, 0x87, 0xd1, 0xff, 0xff, 0xff, //0x000080f9 ja LBB35_55 + //0x000080ff LBB35_56 + 0x49, 0x8d, 0x4c, 0x24, 0x01, //0x000080ff leaq $1(%r12), %rcx + 0x83, 0xf8, 0x0a, //0x00008104 cmpl $10, %eax + 0x0f, 0x82, 0x1f, 0x00, 0x00, 0x00, //0x00008107 jb LBB35_58 + 0x89, 0xc6, //0x0000810d movl %eax, %esi + 0x48, 0x8d, 0x3d, 0xca, 0x44, 0x00, 0x00, //0x0000810f leaq $17610(%rip), %rdi /* _Digits+0(%rip) */ + 0x8a, 0x04, 0x77, //0x00008116 movb (%rdi,%rsi,2), %al + 0x8a, 0x5c, 0x77, 0x01, //0x00008119 movb $1(%rdi,%rsi,2), %bl + 0x41, 0x88, 0x44, 0x24, 0x01, //0x0000811d movb %al, $1(%r12) + 0x41, 0x88, 0x5c, 0x24, 0x02, //0x00008122 movb %bl, $2(%r12) + 0xe9, 0x04, 0x00, 0x00, 0x00, //0x00008127 jmp LBB35_59 + //0x0000812c LBB35_58 + 0x04, 0x30, //0x0000812c addb $48, %al + 0x88, 0x01, //0x0000812e movb %al, (%rcx) + //0x00008130 LBB35_59 + 0x4d, 0x29, 0xc2, //0x00008130 subq %r8, %r10 + 0x4d, 0x01, 0xea, //0x00008133 addq %r13, %r10 + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x00008136 movl $1, %ebx + 0x4c, 0x29, 0xc3, //0x0000813b subq %r8, %rbx + 0x90, 0x90, //0x0000813e .p2align 4, 0x90 + //0x00008140 LBB35_60 + 0x48, 0x83, 0xc3, 0xff, //0x00008140 addq $-1, %rbx + 0x41, 0x80, 0x3c, 0x12, 0x30, //0x00008144 cmpb $48, (%r10,%rdx) + 0x4d, 0x8d, 0x52, 0xff, //0x00008149 leaq $-1(%r10), %r10 + 0x0f, 0x84, 0xed, 0xff, 0xff, 0xff, //0x0000814d je LBB35_60 + 0x41, 0x88, 0x04, 0x24, //0x00008153 movb %al, (%r12) + 0x48, 0x01, 0xd3, //0x00008157 addq %rdx, %rbx + 0x48, 0x83, 0xfb, 0x02, //0x0000815a cmpq $2, %rbx + 0x0f, 0x8c, 0x46, 0x00, 0x00, 0x00, //0x0000815e jl LBB35_62 + 0x49, 0x8d, 0x04, 0x12, //0x00008164 leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00008168 addq $2, %rax + 0xc6, 0x01, 0x2e, //0x0000816c movb $46, (%rcx) + 0xc6, 0x00, 0x65, //0x0000816f movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x00008172 testl %r9d, %r9d + 0x0f, 0x8e, 0x43, 0x00, 0x00, 0x00, //0x00008175 jle LBB35_65 + //0x0000817b LBB35_66 + 0x41, 0x83, 0xc1, 0xff, //0x0000817b addl $-1, %r9d + 0xc6, 0x40, 0x01, 0x2b, //0x0000817f movb $43, $1(%rax) + 0x44, 0x89, 0xc9, //0x00008183 movl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x00008186 cmpl $10, %ecx + 0x0f, 0x8c, 0x44, 0x00, 0x00, 0x00, //0x00008189 jl LBB35_69 + //0x0000818f LBB35_68 + 0x48, 0x63, 0xc9, //0x0000818f movslq %ecx, %rcx + 0x48, 0x8d, 0x15, 0x47, 0x44, 0x00, 0x00, //0x00008192 leaq $17479(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008199 movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x89, 0x48, 0x02, //0x0000819d movw %cx, $2(%rax) + 0x48, 0x83, 0xc0, 0x04, //0x000081a1 addq $4, %rax + 0xe9, 0xf9, 0x06, 0x00, 0x00, //0x000081a5 jmp LBB35_155 + //0x000081aa LBB35_62 + 0x49, 0x8d, 0x04, 0x12, //0x000081aa leaq (%r10,%rdx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x000081ae addq $1, %rax + 0xc6, 0x00, 0x65, //0x000081b2 movb $101, (%rax) + 0x45, 0x85, 0xc9, //0x000081b5 testl %r9d, %r9d + 0x0f, 0x8f, 0xbd, 0xff, 0xff, 0xff, //0x000081b8 jg LBB35_66 + //0x000081be LBB35_65 + 0xc6, 0x40, 0x01, 0x2d, //0x000081be movb $45, $1(%rax) + 0xb9, 0x01, 0x00, 0x00, 0x00, //0x000081c2 movl $1, %ecx + 0x44, 0x29, 0xc9, //0x000081c7 subl %r9d, %ecx + 0x83, 0xf9, 0x0a, //0x000081ca cmpl $10, %ecx + 0x0f, 0x8d, 0xbc, 0xff, 0xff, 0xff, //0x000081cd jge LBB35_68 + //0x000081d3 LBB35_69 + 0x80, 0xc1, 0x30, //0x000081d3 addb $48, %cl + 0x88, 0x48, 0x02, //0x000081d6 movb %cl, $2(%rax) + 0x48, 0x83, 0xc0, 0x03, //0x000081d9 addq $3, %rax + 0xe9, 0xc1, 0x06, 0x00, 0x00, //0x000081dd jmp LBB35_155 + //0x000081e2 LBB35_141 + 0x4c, 0x89, 0xe6, //0x000081e2 movq %r12, %rsi + 0x4d, 0x89, 0xf9, //0x000081e5 movq %r15, %r9 + 0x49, 0x83, 0xe1, 0xe0, //0x000081e8 andq $-32, %r9 + 0x49, 0x8d, 0x41, 0xe0, //0x000081ec leaq $-32(%r9), %rax + 0x48, 0x89, 0xc3, //0x000081f0 movq %rax, %rbx + 0x48, 0xc1, 0xeb, 0x05, //0x000081f3 shrq $5, %rbx + 0x48, 0x83, 0xc3, 0x01, //0x000081f7 addq $1, %rbx + 0x41, 0x89, 0xdc, //0x000081fb movl %ebx, %r12d + 0x41, 0x83, 0xe4, 0x07, //0x000081fe andl $7, %r12d + 0x48, 0x3d, 0xe0, 0x00, 0x00, 0x00, //0x00008202 cmpq $224, %rax + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008208 jae LBB35_143 + 0x31, 0xc9, //0x0000820e xorl %ecx, %ecx + 0xe9, 0xb0, 0x00, 0x00, 0x00, //0x00008210 jmp LBB35_145 + //0x00008215 LBB35_143 + 0x4b, 0x8d, 0x04, 0x02, //0x00008215 leaq (%r10,%r8), %rax + 0x48, 0x8b, 0x4d, 0xd0, //0x00008219 movq $-48(%rbp), %rcx + 0x48, 0x01, 0xc8, //0x0000821d addq %rcx, %rax + 0x48, 0x05, 0xf0, 0x00, 0x00, 0x00, //0x00008220 addq $240, %rax + 0x48, 0x83, 0xe3, 0xf8, //0x00008226 andq $-8, %rbx + 0x48, 0xf7, 0xdb, //0x0000822a negq %rbx + 0x31, 0xc9, //0x0000822d xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x29, 0xf8, 0xff, 0xff, //0x0000822f movdqa $-2007(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008237 .p2align 4, 0x90 + //0x00008240 LBB35_144 + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x10, 0xff, 0xff, 0xff, //0x00008240 movdqu %xmm0, $-240(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x20, 0xff, 0xff, 0xff, //0x00008249 movdqu %xmm0, $-224(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x30, 0xff, 0xff, 0xff, //0x00008252 movdqu %xmm0, $-208(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x40, 0xff, 0xff, 0xff, //0x0000825b movdqu %xmm0, $-192(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x50, 0xff, 0xff, 0xff, //0x00008264 movdqu %xmm0, $-176(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x60, 0xff, 0xff, 0xff, //0x0000826d movdqu %xmm0, $-160(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x84, 0x08, 0x70, 0xff, 0xff, 0xff, //0x00008276 movdqu %xmm0, $-144(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x80, //0x0000827f movdqu %xmm0, $-128(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0x90, //0x00008285 movdqu %xmm0, $-112(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xa0, //0x0000828b movdqu %xmm0, $-96(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xb0, //0x00008291 movdqu %xmm0, $-80(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xc0, //0x00008297 movdqu %xmm0, $-64(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xd0, //0x0000829d movdqu %xmm0, $-48(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xe0, //0x000082a3 movdqu %xmm0, $-32(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xf0, //0x000082a9 movdqu %xmm0, $-16(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x000082af movdqu %xmm0, (%rax,%rcx) + 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x000082b4 addq $256, %rcx + 0x48, 0x83, 0xc3, 0x08, //0x000082bb addq $8, %rbx + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x000082bf jne LBB35_144 + //0x000082c5 LBB35_145 + 0x4d, 0x85, 0xe4, //0x000082c5 testq %r12, %r12 + 0x0f, 0x84, 0x3a, 0x00, 0x00, 0x00, //0x000082c8 je LBB35_148 + 0x4c, 0x01, 0xd1, //0x000082ce addq %r10, %rcx + 0x4c, 0x01, 0xc1, //0x000082d1 addq %r8, %rcx + 0x48, 0x8b, 0x45, 0xd0, //0x000082d4 movq $-48(%rbp), %rax + 0x48, 0x01, 0xc8, //0x000082d8 addq %rcx, %rax + 0x48, 0x83, 0xc0, 0x10, //0x000082db addq $16, %rax + 0x49, 0xc1, 0xe4, 0x05, //0x000082df shlq $5, %r12 + 0x31, 0xc9, //0x000082e3 xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0x73, 0xf7, 0xff, 0xff, //0x000082e5 movdqa $-2189(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + 0x90, 0x90, 0x90, //0x000082ed .p2align 4, 0x90 + //0x000082f0 LBB35_147 + 0xf3, 0x0f, 0x7f, 0x44, 0x08, 0xf0, //0x000082f0 movdqu %xmm0, $-16(%rax,%rcx) + 0xf3, 0x0f, 0x7f, 0x04, 0x08, //0x000082f6 movdqu %xmm0, (%rax,%rcx) + 0x48, 0x83, 0xc1, 0x20, //0x000082fb addq $32, %rcx + 0x49, 0x39, 0xcc, //0x000082ff cmpq %rcx, %r12 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x00008302 jne LBB35_147 + //0x00008308 LBB35_148 + 0x4d, 0x39, 0xcf, //0x00008308 cmpq %r9, %r15 + 0x0f, 0x85, 0x0c, 0x00, 0x00, 0x00, //0x0000830b jne LBB35_150 + 0x48, 0x89, 0xf0, //0x00008311 movq %rsi, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x00008314 movq $-48(%rbp), %r13 + 0xe9, 0x86, 0x05, 0x00, 0x00, //0x00008318 jmp LBB35_155 + //0x0000831d LBB35_150 + 0x41, 0xf6, 0xc7, 0x18, //0x0000831d testb $24, %r15b + 0x49, 0x89, 0xf4, //0x00008321 movq %rsi, %r12 + 0x0f, 0x84, 0x83, 0x00, 0x00, 0x00, //0x00008324 je LBB35_151 + //0x0000832a LBB35_138 + 0x4d, 0x39, 0xee, //0x0000832a cmpq %r13, %r14 + 0x4d, 0x0f, 0x47, 0xee, //0x0000832d cmovaq %r14, %r13 + 0x4d, 0x29, 0xdd, //0x00008331 subq %r11, %r13 + 0x4d, 0x89, 0xeb, //0x00008334 movq %r13, %r11 + 0x49, 0x83, 0xe3, 0xf8, //0x00008337 andq $-8, %r11 + 0x4c, 0x01, 0xda, //0x0000833b addq %r11, %rdx + 0x4d, 0x01, 0xca, //0x0000833e addq %r9, %r10 + 0x4d, 0x01, 0xc2, //0x00008341 addq %r8, %r10 + 0x4c, 0x03, 0x55, 0xd0, //0x00008344 addq $-48(%rbp), %r10 + 0x4c, 0x89, 0xd9, //0x00008348 movq %r11, %rcx + 0x4c, 0x29, 0xc9, //0x0000834b subq %r9, %rcx + 0x31, 0xdb, //0x0000834e xorl %ebx, %ebx + 0x48, 0xb8, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, //0x00008350 movabsq $3472328296227680304, %rax + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000835a .p2align 4, 0x90 + //0x00008360 LBB35_139 + 0x49, 0x89, 0x04, 0x1a, //0x00008360 movq %rax, (%r10,%rbx) + 0x48, 0x83, 0xc3, 0x08, //0x00008364 addq $8, %rbx + 0x48, 0x39, 0xd9, //0x00008368 cmpq %rbx, %rcx + 0x0f, 0x85, 0xef, 0xff, 0xff, 0xff, //0x0000836b jne LBB35_139 + 0x4d, 0x39, 0xdd, //0x00008371 cmpq %r11, %r13 + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00008374 jne LBB35_152 + //0x0000837a LBB35_134 + 0x4c, 0x89, 0xe0, //0x0000837a movq %r12, %rax + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000837d movq $-48(%rbp), %r13 + 0xe9, 0x1d, 0x05, 0x00, 0x00, //0x00008381 jmp LBB35_155 + //0x00008386 LBB35_23 + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008386 cmpl $10000, %r11d + 0x4c, 0x89, 0xc9, //0x0000838d movq %r9, %rcx + 0x48, 0x83, 0xd9, 0x00, //0x00008390 sbbq $0, %rcx + 0x48, 0x83, 0xc1, 0x05, //0x00008394 addq $5, %rcx + 0x41, 0x81, 0xfb, 0x10, 0x27, 0x00, 0x00, //0x00008398 cmpl $10000, %r11d + 0x0f, 0x83, 0xb9, 0xfa, 0xff, 0xff, //0x0000839f jae LBB35_17 + 0x48, 0x89, 0xc8, //0x000083a5 movq %rcx, %rax + 0xe9, 0x82, 0xfc, 0xff, 0xff, //0x000083a8 jmp LBB35_25 + //0x000083ad LBB35_151 + 0x4c, 0x01, 0xca, //0x000083ad addq %r9, %rdx + //0x000083b0 LBB35_152 + 0x4c, 0x8b, 0x6d, 0xd0, //0x000083b0 movq $-48(%rbp), %r13 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000083b4 .p2align 4, 0x90 + //0x000083c0 LBB35_153 + 0xc6, 0x02, 0x30, //0x000083c0 movb $48, (%rdx) + 0x48, 0x83, 0xc2, 0x01, //0x000083c3 addq $1, %rdx + 0x4c, 0x39, 0xe2, //0x000083c7 cmpq %r12, %rdx + 0x0f, 0x82, 0xf0, 0xff, 0xff, 0xff, //0x000083ca jb LBB35_153 + 0x4c, 0x89, 0xe0, //0x000083d0 movq %r12, %rax + 0xe9, 0xcb, 0x04, 0x00, 0x00, //0x000083d3 jmp LBB35_155 + //0x000083d8 LBB35_76 + 0x48, 0x8b, 0x55, 0xd0, //0x000083d8 movq $-48(%rbp), %rdx + 0x49, 0x8d, 0x1c, 0x12, //0x000083dc leaq (%r10,%rdx), %rbx + 0x48, 0x81, 0xc3, 0xf2, 0x00, 0x00, 0x00, //0x000083e0 addq $242, %rbx + 0x49, 0x83, 0xe4, 0xf8, //0x000083e7 andq $-8, %r12 + 0x49, 0xf7, 0xdc, //0x000083eb negq %r12 + 0x31, 0xd2, //0x000083ee xorl %edx, %edx + 0x66, 0x0f, 0x6f, 0x05, 0x68, 0xf6, 0xff, 0xff, //0x000083f0 movdqa $-2456(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + //0x000083f8 LBB35_77 + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x10, 0xff, 0xff, 0xff, //0x000083f8 movdqu %xmm0, $-240(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x20, 0xff, 0xff, 0xff, //0x00008401 movdqu %xmm0, $-224(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x30, 0xff, 0xff, 0xff, //0x0000840a movdqu %xmm0, $-208(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x40, 0xff, 0xff, 0xff, //0x00008413 movdqu %xmm0, $-192(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x50, 0xff, 0xff, 0xff, //0x0000841c movdqu %xmm0, $-176(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x60, 0xff, 0xff, 0xff, //0x00008425 movdqu %xmm0, $-160(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x84, 0x13, 0x70, 0xff, 0xff, 0xff, //0x0000842e movdqu %xmm0, $-144(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0x80, //0x00008437 movdqu %xmm0, $-128(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0x90, //0x0000843d movdqu %xmm0, $-112(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xa0, //0x00008443 movdqu %xmm0, $-96(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xb0, //0x00008449 movdqu %xmm0, $-80(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xc0, //0x0000844f movdqu %xmm0, $-64(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xd0, //0x00008455 movdqu %xmm0, $-48(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xe0, //0x0000845b movdqu %xmm0, $-32(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x44, 0x13, 0xf0, //0x00008461 movdqu %xmm0, $-16(%rbx,%rdx) + 0xf3, 0x0f, 0x7f, 0x04, 0x13, //0x00008467 movdqu %xmm0, (%rbx,%rdx) + 0x48, 0x81, 0xc2, 0x00, 0x01, 0x00, 0x00, //0x0000846c addq $256, %rdx + 0x49, 0x83, 0xc4, 0x08, //0x00008473 addq $8, %r12 + 0x0f, 0x85, 0x7b, 0xff, 0xff, 0xff, //0x00008477 jne LBB35_77 + //0x0000847d LBB35_78 + 0x4d, 0x85, 0xff, //0x0000847d testq %r15, %r15 + 0x0f, 0x84, 0x34, 0x00, 0x00, 0x00, //0x00008480 je LBB35_81 + 0x4c, 0x01, 0xd2, //0x00008486 addq %r10, %rdx + 0x48, 0x8b, 0x75, 0xd0, //0x00008489 movq $-48(%rbp), %rsi + 0x48, 0x01, 0xf2, //0x0000848d addq %rsi, %rdx + 0x48, 0x83, 0xc2, 0x12, //0x00008490 addq $18, %rdx + 0x49, 0xc1, 0xe7, 0x05, //0x00008494 shlq $5, %r15 + 0x31, 0xf6, //0x00008498 xorl %esi, %esi + 0x66, 0x0f, 0x6f, 0x05, 0xbe, 0xf5, 0xff, 0xff, //0x0000849a movdqa $-2626(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + //0x000084a2 LBB35_80 + 0xf3, 0x0f, 0x7f, 0x44, 0x32, 0xf0, //0x000084a2 movdqu %xmm0, $-16(%rdx,%rsi) + 0xf3, 0x0f, 0x7f, 0x04, 0x32, //0x000084a8 movdqu %xmm0, (%rdx,%rsi) + 0x48, 0x83, 0xc6, 0x20, //0x000084ad addq $32, %rsi + 0x49, 0x39, 0xf7, //0x000084b1 cmpq %rsi, %r15 + 0x0f, 0x85, 0xe8, 0xff, 0xff, 0xff, //0x000084b4 jne LBB35_80 + //0x000084ba LBB35_81 + 0x49, 0x89, 0xfc, //0x000084ba movq %rdi, %r12 + 0x49, 0x01, 0xcc, //0x000084bd addq %rcx, %r12 + 0x49, 0x39, 0xcb, //0x000084c0 cmpq %rcx, %r11 + 0x0f, 0x84, 0x19, 0x00, 0x00, 0x00, //0x000084c3 je LBB35_84 + //0x000084c9 LBB35_82 + 0x44, 0x01, 0xc9, //0x000084c9 addl %r9d, %ecx + 0xf7, 0xd9, //0x000084cc negl %ecx + 0x90, 0x90, //0x000084ce .p2align 4, 0x90 + //0x000084d0 LBB35_83 + 0x41, 0xc6, 0x04, 0x24, 0x30, //0x000084d0 movb $48, (%r12) + 0x49, 0x83, 0xc4, 0x01, //0x000084d5 addq $1, %r12 + 0x83, 0xc1, 0xff, //0x000084d9 addl $-1, %ecx + 0x0f, 0x85, 0xee, 0xff, 0xff, 0xff, //0x000084dc jne LBB35_83 + //0x000084e2 LBB35_84 + 0x4f, 0x8d, 0x3c, 0x04, //0x000084e2 leaq (%r12,%r8), %r15 + 0x3d, 0x10, 0x27, 0x00, 0x00, //0x000084e6 cmpl $10000, %eax + 0x0f, 0x82, 0x50, 0x00, 0x00, 0x00, //0x000084eb jb LBB35_85 + 0x89, 0xc2, //0x000084f1 movl %eax, %edx + 0xbb, 0x59, 0x17, 0xb7, 0xd1, //0x000084f3 movl $3518437209, %ebx + 0x48, 0x0f, 0xaf, 0xda, //0x000084f8 imulq %rdx, %rbx + 0x48, 0xc1, 0xeb, 0x2d, //0x000084fc shrq $45, %rbx + 0x69, 0xd3, 0xf0, 0xd8, 0xff, 0xff, //0x00008500 imull $-10000, %ebx, %edx + 0x01, 0xc2, //0x00008506 addl %eax, %edx + 0x0f, 0x84, 0x4b, 0x00, 0x00, 0x00, //0x00008508 je LBB35_87 + 0x89, 0xd0, //0x0000850e movl %edx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008510 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008517 shrq $37, %rax + 0x6b, 0xf0, 0x64, //0x0000851b imull $100, %eax, %esi + 0x29, 0xf2, //0x0000851e subl %esi, %edx + 0x48, 0x8d, 0x35, 0xb9, 0x40, 0x00, 0x00, //0x00008520 leaq $16569(%rip), %rsi /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x14, 0x56, //0x00008527 movzwl (%rsi,%rdx,2), %edx + 0x66, 0x41, 0x89, 0x57, 0xfe, //0x0000852b movw %dx, $-2(%r15) + 0x0f, 0xb7, 0x04, 0x46, //0x00008530 movzwl (%rsi,%rax,2), %eax + 0x66, 0x41, 0x89, 0x47, 0xfc, //0x00008534 movw %ax, $-4(%r15) + 0x45, 0x31, 0xdb, //0x00008539 xorl %r11d, %r11d + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x0000853c jmp LBB35_89 + //0x00008541 LBB35_85 + 0x45, 0x31, 0xdb, //0x00008541 xorl %r11d, %r11d + 0x4c, 0x89, 0xfa, //0x00008544 movq %r15, %rdx + 0x89, 0xc3, //0x00008547 movl %eax, %ebx + 0x83, 0xfb, 0x64, //0x00008549 cmpl $100, %ebx + 0x0f, 0x83, 0x1a, 0x00, 0x00, 0x00, //0x0000854c jae LBB35_92 + //0x00008552 LBB35_91 + 0x89, 0xd8, //0x00008552 movl %ebx, %eax + 0xe9, 0x55, 0x00, 0x00, 0x00, //0x00008554 jmp LBB35_94 + //0x00008559 LBB35_87 + 0x41, 0xbb, 0x04, 0x00, 0x00, 0x00, //0x00008559 movl $4, %r11d + //0x0000855f LBB35_89 + 0x49, 0x8d, 0x57, 0xfc, //0x0000855f leaq $-4(%r15), %rdx + 0x83, 0xfb, 0x64, //0x00008563 cmpl $100, %ebx + 0x0f, 0x82, 0xe6, 0xff, 0xff, 0xff, //0x00008566 jb LBB35_91 + //0x0000856c LBB35_92 + 0x48, 0x83, 0xc2, 0xff, //0x0000856c addq $-1, %rdx + 0x48, 0x8d, 0x35, 0x69, 0x40, 0x00, 0x00, //0x00008570 leaq $16489(%rip), %rsi /* _Digits+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008577 .p2align 4, 0x90 + //0x00008580 LBB35_93 + 0x89, 0xd8, //0x00008580 movl %ebx, %eax + 0x48, 0x69, 0xc0, 0x1f, 0x85, 0xeb, 0x51, //0x00008582 imulq $1374389535, %rax, %rax + 0x48, 0xc1, 0xe8, 0x25, //0x00008589 shrq $37, %rax + 0x6b, 0xf8, 0x64, //0x0000858d imull $100, %eax, %edi + 0x89, 0xd9, //0x00008590 movl %ebx, %ecx + 0x29, 0xf9, //0x00008592 subl %edi, %ecx + 0x0f, 0xb7, 0x0c, 0x4e, //0x00008594 movzwl (%rsi,%rcx,2), %ecx + 0x66, 0x89, 0x4a, 0xff, //0x00008598 movw %cx, $-1(%rdx) + 0x48, 0x83, 0xc2, 0xfe, //0x0000859c addq $-2, %rdx + 0x81, 0xfb, 0x0f, 0x27, 0x00, 0x00, //0x000085a0 cmpl $9999, %ebx + 0x89, 0xc3, //0x000085a6 movl %eax, %ebx + 0x0f, 0x87, 0xd2, 0xff, 0xff, 0xff, //0x000085a8 ja LBB35_93 + //0x000085ae LBB35_94 + 0x83, 0xf8, 0x0a, //0x000085ae cmpl $10, %eax + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x000085b1 jb LBB35_96 + 0x89, 0xc0, //0x000085b7 movl %eax, %eax + 0x48, 0x8d, 0x0d, 0x20, 0x40, 0x00, 0x00, //0x000085b9 leaq $16416(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x000085c0 movzwl (%rcx,%rax,2), %eax + 0x4d, 0x89, 0xe2, //0x000085c4 movq %r12, %r10 + 0x66, 0x41, 0x89, 0x04, 0x24, //0x000085c7 movw %ax, (%r12) + 0xe9, 0x09, 0x00, 0x00, 0x00, //0x000085cc jmp LBB35_97 + //0x000085d1 LBB35_96 + 0x04, 0x30, //0x000085d1 addb $48, %al + 0x4d, 0x89, 0xe2, //0x000085d3 movq %r12, %r10 + 0x41, 0x88, 0x04, 0x24, //0x000085d6 movb %al, (%r12) + //0x000085da LBB35_97 + 0x4d, 0x29, 0xdf, //0x000085da subq %r11, %r15 + 0x4d, 0x29, 0xd8, //0x000085dd subq %r11, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000085e0 addq $1, %r8 + 0x43, 0x8d, 0x04, 0x33, //0x000085e4 leal (%r11,%r14), %eax + 0xb1, 0x01, //0x000085e8 movb $1, %cl + 0x28, 0xc1, //0x000085ea subb %al, %cl + 0xba, 0x01, 0x00, 0x00, 0x00, //0x000085ec movl $1, %edx + 0x44, 0x29, 0xf2, //0x000085f1 subl %r14d, %edx + 0x44, 0x29, 0xda, //0x000085f4 subl %r11d, %edx + 0x47, 0x8d, 0x24, 0x1e, //0x000085f7 leal (%r14,%r11), %r12d + 0x41, 0x83, 0xc4, 0xfe, //0x000085fb addl $-2, %r12d + 0x45, 0x01, 0xde, //0x000085ff addl %r11d, %r14d + 0x41, 0x83, 0xc6, 0xff, //0x00008602 addl $-1, %r14d + 0x31, 0xdb, //0x00008606 xorl %ebx, %ebx + 0x44, 0x89, 0xe6, //0x00008608 movl %r12d, %esi + 0x90, 0x90, 0x90, 0x90, 0x90, //0x0000860b .p2align 4, 0x90 + //0x00008610 LBB35_98 + 0x80, 0xc1, 0x03, //0x00008610 addb $3, %cl + 0x83, 0xc6, 0x01, //0x00008613 addl $1, %esi + 0x41, 0x80, 0x7c, 0x1f, 0xff, 0x30, //0x00008616 cmpb $48, $-1(%r15,%rbx) + 0x48, 0x8d, 0x5b, 0xff, //0x0000861c leaq $-1(%rbx), %rbx + 0x0f, 0x84, 0xea, 0xff, 0xff, 0xff, //0x00008620 je LBB35_98 + 0x49, 0x8d, 0x04, 0x1f, //0x00008626 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x01, //0x0000862a addq $1, %rax + 0x45, 0x85, 0xc9, //0x0000862e testl %r9d, %r9d + 0x0f, 0x8e, 0x45, 0x00, 0x00, 0x00, //0x00008631 jle LBB35_100 + 0x45, 0x29, 0xdd, //0x00008637 subl %r11d, %r13d + 0x42, 0x8d, 0x3c, 0x2b, //0x0000863a leal (%rbx,%r13), %edi + 0x83, 0xc7, 0x01, //0x0000863e addl $1, %edi + 0x41, 0x39, 0xf9, //0x00008641 cmpl %edi, %r9d + 0x0f, 0x8d, 0x3b, 0x00, 0x00, 0x00, //0x00008644 jge LBB35_102 + 0x83, 0xc2, 0xff, //0x0000864a addl $-1, %edx + 0x48, 0x63, 0xc2, //0x0000864d movslq %edx, %rax + 0x48, 0x8d, 0x34, 0x18, //0x00008650 leaq (%rax,%rbx), %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00008654 addq $1, %rsi + 0x85, 0xf6, //0x00008658 testl %esi, %esi + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000865a movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0xf5, 0x00, 0x00, 0x00, //0x0000865e jle LBB35_120 + 0x41, 0x89, 0xf0, //0x00008664 movl %esi, %r8d + 0x49, 0x8d, 0x50, 0xff, //0x00008667 leaq $-1(%r8), %rdx + 0x48, 0x83, 0xfa, 0x03, //0x0000866b cmpq $3, %rdx + 0x0f, 0x83, 0x7b, 0x00, 0x00, 0x00, //0x0000866f jae LBB35_121 + 0x31, 0xd2, //0x00008675 xorl %edx, %edx + 0xe9, 0xa0, 0x00, 0x00, 0x00, //0x00008677 jmp LBB35_117 + //0x0000867c LBB35_100 + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000867c movq $-48(%rbp), %r13 + 0xe9, 0x1e, 0x02, 0x00, 0x00, //0x00008680 jmp LBB35_155 + //0x00008685 LBB35_102 + 0x45, 0x89, 0xf6, //0x00008685 movl %r14d, %r14d + 0x49, 0x29, 0xde, //0x00008688 subq %rbx, %r14 + 0x45, 0x85, 0xf6, //0x0000868b testl %r14d, %r14d + 0x4c, 0x8b, 0x6d, 0xd0, //0x0000868e movq $-48(%rbp), %r13 + 0x0f, 0x8e, 0x0b, 0x02, 0x00, 0x00, //0x00008692 jle LBB35_155 + 0x45, 0x89, 0xe3, //0x00008698 movl %r12d, %r11d + 0x4c, 0x89, 0xd9, //0x0000869b movq %r11, %rcx + 0x48, 0x29, 0xd9, //0x0000869e subq %rbx, %rcx + 0x31, 0xd2, //0x000086a1 xorl %edx, %edx + 0x83, 0xf9, 0x1f, //0x000086a3 cmpl $31, %ecx + 0x0f, 0x82, 0xe4, 0x01, 0x00, 0x00, //0x000086a6 jb LBB35_112 + 0x49, 0x29, 0xdb, //0x000086ac subq %rbx, %r11 + 0x41, 0x89, 0xc9, //0x000086af movl %ecx, %r9d + 0x49, 0x83, 0xc1, 0x01, //0x000086b2 addq $1, %r9 + 0x4c, 0x89, 0xca, //0x000086b6 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0xe0, //0x000086b9 andq $-32, %rdx + 0x4d, 0x01, 0xc2, //0x000086bd addq %r8, %r10 + 0x89, 0xf0, //0x000086c0 movl %esi, %eax + 0x48, 0x83, 0xc0, 0x01, //0x000086c2 addq $1, %rax + 0x48, 0x83, 0xe0, 0xe0, //0x000086c6 andq $-32, %rax + 0x4c, 0x01, 0xd0, //0x000086ca addq %r10, %rax + 0x48, 0x8d, 0x4a, 0xe0, //0x000086cd leaq $-32(%rdx), %rcx + 0x49, 0x89, 0xc8, //0x000086d1 movq %rcx, %r8 + 0x49, 0xc1, 0xe8, 0x05, //0x000086d4 shrq $5, %r8 + 0x49, 0x83, 0xc0, 0x01, //0x000086d8 addq $1, %r8 + 0x48, 0x81, 0xf9, 0xe0, 0x00, 0x00, 0x00, //0x000086dc cmpq $224, %rcx + 0x0f, 0x83, 0x85, 0x00, 0x00, 0x00, //0x000086e3 jae LBB35_106 + 0x31, 0xc9, //0x000086e9 xorl %ecx, %ecx + 0xe9, 0x33, 0x01, 0x00, 0x00, //0x000086eb jmp LBB35_108 + //0x000086f0 LBB35_121 + 0x83, 0xe6, 0xfc, //0x000086f0 andl $-4, %esi + 0x48, 0xf7, 0xde, //0x000086f3 negq %rsi + 0x31, 0xd2, //0x000086f6 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000086f8 .p2align 4, 0x90 + //0x00008700 LBB35_122 + 0x49, 0x8d, 0x3c, 0x17, //0x00008700 leaq (%r15,%rdx), %rdi + 0x8b, 0x44, 0x3b, 0xfd, //0x00008704 movl $-3(%rbx,%rdi), %eax + 0x89, 0x44, 0x3b, 0xfe, //0x00008708 movl %eax, $-2(%rbx,%rdi) + 0x48, 0x83, 0xc2, 0xfc, //0x0000870c addq $-4, %rdx + 0x48, 0x39, 0xd6, //0x00008710 cmpq %rdx, %rsi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008713 jne LBB35_122 + 0x48, 0xf7, 0xda, //0x00008719 negq %rdx + //0x0000871c LBB35_117 + 0x41, 0xf6, 0xc0, 0x03, //0x0000871c testb $3, %r8b + 0x0f, 0x84, 0x33, 0x00, 0x00, 0x00, //0x00008720 je LBB35_120 + 0x0f, 0xb6, 0xf9, //0x00008726 movzbl %cl, %edi + 0x83, 0xe7, 0x03, //0x00008729 andl $3, %edi + 0x48, 0xf7, 0xdf, //0x0000872c negq %rdi + 0x4c, 0x89, 0xf9, //0x0000872f movq %r15, %rcx + 0x48, 0x29, 0xd1, //0x00008732 subq %rdx, %rcx + 0x31, 0xd2, //0x00008735 xorl %edx, %edx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008737 .p2align 4, 0x90 + //0x00008740 LBB35_119 + 0x48, 0x8d, 0x34, 0x11, //0x00008740 leaq (%rcx,%rdx), %rsi + 0x0f, 0xb6, 0x04, 0x33, //0x00008744 movzbl (%rbx,%rsi), %eax + 0x88, 0x44, 0x33, 0x01, //0x00008748 movb %al, $1(%rbx,%rsi) + 0x48, 0x83, 0xc2, 0xff, //0x0000874c addq $-1, %rdx + 0x48, 0x39, 0xd7, //0x00008750 cmpq %rdx, %rdi + 0x0f, 0x85, 0xe7, 0xff, 0xff, 0xff, //0x00008753 jne LBB35_119 + //0x00008759 LBB35_120 + 0x49, 0x63, 0xc1, //0x00008759 movslq %r9d, %rax + 0x41, 0xc6, 0x04, 0x02, 0x2e, //0x0000875c movb $46, (%r10,%rax) + 0x49, 0x8d, 0x04, 0x1f, //0x00008761 leaq (%r15,%rbx), %rax + 0x48, 0x83, 0xc0, 0x02, //0x00008765 addq $2, %rax + 0xe9, 0x35, 0x01, 0x00, 0x00, //0x00008769 jmp LBB35_155 + //0x0000876e LBB35_106 + 0x44, 0x89, 0xde, //0x0000876e movl %r11d, %esi + 0x48, 0x83, 0xc6, 0x01, //0x00008771 addq $1, %rsi + 0x48, 0x83, 0xe6, 0xe0, //0x00008775 andq $-32, %rsi + 0x48, 0x83, 0xc6, 0xe0, //0x00008779 addq $-32, %rsi + 0x48, 0xc1, 0xee, 0x05, //0x0000877d shrq $5, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00008781 addq $1, %rsi + 0x48, 0x83, 0xe6, 0xf8, //0x00008785 andq $-8, %rsi + 0x48, 0xf7, 0xde, //0x00008789 negq %rsi + 0x31, 0xc9, //0x0000878c xorl %ecx, %ecx + 0x66, 0x0f, 0x6f, 0x05, 0xca, 0xf2, 0xff, 0xff, //0x0000878e movdqa $-3382(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + //0x00008796 LBB35_107 + 0x49, 0x8d, 0x3c, 0x0f, //0x00008796 leaq (%r15,%rcx), %rdi + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x01, //0x0000879a movdqu %xmm0, $1(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x11, //0x000087a0 movdqu %xmm0, $17(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x21, //0x000087a6 movdqu %xmm0, $33(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x31, //0x000087ac movdqu %xmm0, $49(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x41, //0x000087b2 movdqu %xmm0, $65(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x51, //0x000087b8 movdqu %xmm0, $81(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x61, //0x000087be movdqu %xmm0, $97(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0x71, //0x000087c4 movdqu %xmm0, $113(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0x81, 0x00, 0x00, 0x00, //0x000087ca movdqu %xmm0, $129(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0x91, 0x00, 0x00, 0x00, //0x000087d3 movdqu %xmm0, $145(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xa1, 0x00, 0x00, 0x00, //0x000087dc movdqu %xmm0, $161(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xb1, 0x00, 0x00, 0x00, //0x000087e5 movdqu %xmm0, $177(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xc1, 0x00, 0x00, 0x00, //0x000087ee movdqu %xmm0, $193(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xd1, 0x00, 0x00, 0x00, //0x000087f7 movdqu %xmm0, $209(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xe1, 0x00, 0x00, 0x00, //0x00008800 movdqu %xmm0, $225(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x84, 0x3b, 0xf1, 0x00, 0x00, 0x00, //0x00008809 movdqu %xmm0, $241(%rbx,%rdi) + 0x48, 0x81, 0xc1, 0x00, 0x01, 0x00, 0x00, //0x00008812 addq $256, %rcx + 0x48, 0x83, 0xc6, 0x08, //0x00008819 addq $8, %rsi + 0x0f, 0x85, 0x73, 0xff, 0xff, 0xff, //0x0000881d jne LBB35_107 + //0x00008823 LBB35_108 + 0x48, 0x01, 0xd8, //0x00008823 addq %rbx, %rax + 0x41, 0xf6, 0xc0, 0x07, //0x00008826 testb $7, %r8b + 0x0f, 0x84, 0x4d, 0x00, 0x00, 0x00, //0x0000882a je LBB35_111 + 0x41, 0x80, 0xc3, 0x01, //0x00008830 addb $1, %r11b + 0x41, 0x80, 0xe3, 0xe0, //0x00008834 andb $-32, %r11b + 0x41, 0x80, 0xc3, 0xe0, //0x00008838 addb $-32, %r11b + 0x41, 0xc0, 0xeb, 0x05, //0x0000883c shrb $5, %r11b + 0x41, 0x80, 0xc3, 0x01, //0x00008840 addb $1, %r11b + 0x45, 0x0f, 0xb6, 0xc3, //0x00008844 movzbl %r11b, %r8d + 0x41, 0x83, 0xe0, 0x07, //0x00008848 andl $7, %r8d + 0x49, 0xc1, 0xe0, 0x05, //0x0000884c shlq $5, %r8 + 0x4c, 0x01, 0xf9, //0x00008850 addq %r15, %rcx + 0x48, 0x83, 0xc1, 0x11, //0x00008853 addq $17, %rcx + 0x31, 0xf6, //0x00008857 xorl %esi, %esi + 0x66, 0x0f, 0x6f, 0x05, 0xff, 0xf1, 0xff, 0xff, //0x00008859 movdqa $-3585(%rip), %xmm0 /* LCPI35_0+0(%rip) */ + //0x00008861 LBB35_110 + 0x48, 0x8d, 0x3c, 0x31, //0x00008861 leaq (%rcx,%rsi), %rdi + 0xf3, 0x0f, 0x7f, 0x44, 0x3b, 0xf0, //0x00008865 movdqu %xmm0, $-16(%rbx,%rdi) + 0xf3, 0x0f, 0x7f, 0x04, 0x3b, //0x0000886b movdqu %xmm0, (%rbx,%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x00008870 addq $32, %rsi + 0x49, 0x39, 0xf0, //0x00008874 cmpq %rsi, %r8 + 0x0f, 0x85, 0xe4, 0xff, 0xff, 0xff, //0x00008877 jne LBB35_110 + //0x0000887d LBB35_111 + 0x49, 0x39, 0xd1, //0x0000887d cmpq %rdx, %r9 + 0x0f, 0x84, 0x1d, 0x00, 0x00, 0x00, //0x00008880 je LBB35_155 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008886 .p2align 4, 0x90 + //0x00008890 LBB35_112 + 0xc6, 0x00, 0x30, //0x00008890 movb $48, (%rax) + 0x48, 0x83, 0xc0, 0x01, //0x00008893 addq $1, %rax + 0x83, 0xc2, 0x01, //0x00008897 addl $1, %edx + 0x44, 0x39, 0xf2, //0x0000889a cmpl %r14d, %edx + 0x0f, 0x8c, 0xed, 0xff, 0xff, 0xff, //0x0000889d jl LBB35_112 + //0x000088a3 LBB35_155 + 0x44, 0x29, 0xe8, //0x000088a3 subl %r13d, %eax + //0x000088a6 LBB35_156 + 0x48, 0x83, 0xc4, 0x10, //0x000088a6 addq $16, %rsp + 0x5b, //0x000088aa popq %rbx + 0x41, 0x5c, //0x000088ab popq %r12 + 0x41, 0x5d, //0x000088ad popq %r13 + 0x41, 0x5e, //0x000088af popq %r14 + 0x41, 0x5f, //0x000088b1 popq %r15 + 0x5d, //0x000088b3 popq %rbp + 0xc3, //0x000088b4 retq + //0x000088b5 LBB35_1 + 0x31, 0xc0, //0x000088b5 xorl %eax, %eax + 0xe9, 0xea, 0xff, 0xff, 0xff, //0x000088b7 jmp LBB35_156 + //0x000088bc LBB35_5 + 0x4c, 0x89, 0x4d, 0xc8, //0x000088bc movq %r9, $-56(%rbp) + 0x48, 0x89, 0x7d, 0xd0, //0x000088c0 movq %rdi, $-48(%rbp) + 0x41, 0xb8, 0x6b, 0xff, 0xff, 0xff, //0x000088c4 movl $-149, %r8d + 0x41, 0x89, 0xc3, //0x000088ca movl %eax, %r11d + 0xe9, 0x2b, 0xf2, 0xff, 0xff, //0x000088cd jmp LBB35_6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000088d2 .p2align 4, 0x00 + //0x000088e0 LCPI36_0 + 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, //0x000088e0 QUAD $0x4040404040404040; QUAD $0x4040404040404040 // .space 16, '@@@@@@@@@@@@@@@@' + //0x000088f0 LCPI36_1 + 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, 0x5b, //0x000088f0 QUAD $0x5b5b5b5b5b5b5b5b; QUAD $0x5b5b5b5b5b5b5b5b // .space 16, '[[[[[[[[[[[[[[[[' + //0x00008900 LCPI36_2 + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00008900 QUAD $0x0101010101010101; QUAD $0x0101010101010101 // .space 16, '\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01\x01' + //0x00008910 LCPI36_3 + 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, 0xbf, //0x00008910 QUAD $0xbfbfbfbfbfbfbfbf; QUAD $0xbfbfbfbfbfbfbfbf // .space 16, '\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf\xbf' + //0x00008920 LCPI36_4 + 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, 0x19, //0x00008920 QUAD $0x1919191919191919; QUAD $0x1919191919191919 // .space 16, '\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19\x19' + //0x00008930 LCPI36_5 + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, //0x00008930 QUAD $0x2020202020202020; QUAD $0x2020202020202020 // .space 16, ' ' + //0x00008940 LCPI36_6 + 0xbf, //0x00008940 .byte 191 + 0xbf, //0x00008941 .byte 191 + 0xbf, //0x00008942 .byte 191 + 0xbf, //0x00008943 .byte 191 + 0xbf, //0x00008944 .byte 191 + 0xbf, //0x00008945 .byte 191 + 0xbf, //0x00008946 .byte 191 + 0xbf, //0x00008947 .byte 191 + 0x00, //0x00008948 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008949 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000894f BYTE $0x00 // .space 1, '\x00' + //0x00008950 LCPI36_7 + 0x1a, //0x00008950 .byte 26 + 0x1a, //0x00008951 .byte 26 + 0x1a, //0x00008952 .byte 26 + 0x1a, //0x00008953 .byte 26 + 0x1a, //0x00008954 .byte 26 + 0x1a, //0x00008955 .byte 26 + 0x1a, //0x00008956 .byte 26 + 0x1a, //0x00008957 .byte 26 + 0x00, //0x00008958 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008959 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000895f BYTE $0x00 // .space 1, '\x00' + //0x00008960 LCPI36_8 + 0x20, //0x00008960 .byte 32 + 0x20, //0x00008961 .byte 32 + 0x20, //0x00008962 .byte 32 + 0x20, //0x00008963 .byte 32 + 0x20, //0x00008964 .byte 32 + 0x20, //0x00008965 .byte 32 + 0x20, //0x00008966 .byte 32 + 0x20, //0x00008967 .byte 32 + 0x00, //0x00008968 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x00008969 BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896a BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896b BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896c BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896d BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896e BYTE $0x00 // .space 1, '\x00' + 0x00, //0x0000896f BYTE $0x00 // .space 1, '\x00' + //0x00008970 .p2align 4, 0x90 + //0x00008970 _to_lower + 0x55, //0x00008970 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008971 movq %rsp, %rbp + 0x48, 0x83, 0xfa, 0x10, //0x00008974 cmpq $16, %rdx + 0x0f, 0x82, 0xfc, 0x00, 0x00, 0x00, //0x00008978 jb LBB36_1 + 0x4c, 0x8d, 0x42, 0xf0, //0x0000897e leaq $-16(%rdx), %r8 + 0x41, 0xf6, 0xc0, 0x10, //0x00008982 testb $16, %r8b + 0x0f, 0x84, 0x18, 0x00, 0x00, 0x00, //0x00008986 je LBB36_6 + 0x49, 0x83, 0xf8, 0x10, //0x0000898c cmpq $16, %r8 + 0x0f, 0x83, 0x58, 0x00, 0x00, 0x00, //0x00008990 jae LBB36_8 + //0x00008996 LBB36_2 + 0x4d, 0x85, 0xc0, //0x00008996 testq %r8, %r8 + 0x0f, 0x85, 0xe7, 0x00, 0x00, 0x00, //0x00008999 jne LBB36_3 + 0xe9, 0x9a, 0x01, 0x00, 0x00, //0x0000899f jmp LBB36_32 + //0x000089a4 LBB36_6 + 0xf3, 0x0f, 0x6f, 0x06, //0x000089a4 movdqu (%rsi), %xmm0 + 0x66, 0x0f, 0x6f, 0xc8, //0x000089a8 movdqa %xmm0, %xmm1 + 0x66, 0x0f, 0x64, 0x0d, 0x2c, 0xff, 0xff, 0xff, //0x000089ac pcmpgtb $-212(%rip), %xmm1 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x34, 0xff, 0xff, 0xff, //0x000089b4 movdqa $-204(%rip), %xmm2 /* LCPI36_1+0(%rip) */ + 0x66, 0x0f, 0x64, 0xd0, //0x000089bc pcmpgtb %xmm0, %xmm2 + 0x66, 0x0f, 0xdb, 0xd1, //0x000089c0 pand %xmm1, %xmm2 + 0x66, 0x0f, 0xdb, 0x15, 0x34, 0xff, 0xff, 0xff, //0x000089c4 pand $-204(%rip), %xmm2 /* LCPI36_2+0(%rip) */ + 0x66, 0x0f, 0x71, 0xf2, 0x05, //0x000089cc psllw $5, %xmm2 + 0x66, 0x0f, 0xfc, 0xd0, //0x000089d1 paddb %xmm0, %xmm2 + 0xf3, 0x0f, 0x7f, 0x17, //0x000089d5 movdqu %xmm2, (%rdi) + 0x48, 0x83, 0xc6, 0x10, //0x000089d9 addq $16, %rsi + 0x48, 0x83, 0xc7, 0x10, //0x000089dd addq $16, %rdi + 0x4c, 0x89, 0xc2, //0x000089e1 movq %r8, %rdx + 0x49, 0x83, 0xf8, 0x10, //0x000089e4 cmpq $16, %r8 + 0x0f, 0x82, 0xa8, 0xff, 0xff, 0xff, //0x000089e8 jb LBB36_2 + //0x000089ee LBB36_8 + 0x66, 0x0f, 0x6f, 0x05, 0xea, 0xfe, 0xff, 0xff, //0x000089ee movdqa $-278(%rip), %xmm0 /* LCPI36_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xf2, 0xfe, 0xff, 0xff, //0x000089f6 movdqa $-270(%rip), %xmm1 /* LCPI36_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0xfa, 0xfe, 0xff, 0xff, //0x000089fe movdqa $-262(%rip), %xmm2 /* LCPI36_2+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008a06 .p2align 4, 0x90 + //0x00008a10 LBB36_9 + 0xf3, 0x0f, 0x6f, 0x1e, //0x00008a10 movdqu (%rsi), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00008a14 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x00008a18 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xe9, //0x00008a1c movdqa %xmm1, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00008a20 pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00008a24 pand %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xea, //0x00008a28 pand %xmm2, %xmm5 + 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x00008a2c psllw $5, %xmm5 + 0x66, 0x0f, 0xfc, 0xeb, //0x00008a31 paddb %xmm3, %xmm5 + 0xf3, 0x0f, 0x7f, 0x2f, //0x00008a35 movdqu %xmm5, (%rdi) + 0xf3, 0x0f, 0x6f, 0x5e, 0x10, //0x00008a39 movdqu $16(%rsi), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00008a3e movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0x64, 0xe0, //0x00008a42 pcmpgtb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xe9, //0x00008a46 movdqa %xmm1, %xmm5 + 0x66, 0x0f, 0x64, 0xeb, //0x00008a4a pcmpgtb %xmm3, %xmm5 + 0x66, 0x0f, 0xdb, 0xec, //0x00008a4e pand %xmm4, %xmm5 + 0x66, 0x0f, 0xdb, 0xea, //0x00008a52 pand %xmm2, %xmm5 + 0x66, 0x0f, 0x71, 0xf5, 0x05, //0x00008a56 psllw $5, %xmm5 + 0x66, 0x0f, 0xfc, 0xeb, //0x00008a5b paddb %xmm3, %xmm5 + 0xf3, 0x0f, 0x7f, 0x6f, 0x10, //0x00008a5f movdqu %xmm5, $16(%rdi) + 0x48, 0x83, 0xc6, 0x20, //0x00008a64 addq $32, %rsi + 0x48, 0x83, 0xc7, 0x20, //0x00008a68 addq $32, %rdi + 0x48, 0x83, 0xc2, 0xe0, //0x00008a6c addq $-32, %rdx + 0x48, 0x83, 0xfa, 0x0f, //0x00008a70 cmpq $15, %rdx + 0x0f, 0x87, 0x96, 0xff, 0xff, 0xff, //0x00008a74 ja LBB36_9 + //0x00008a7a LBB36_1 + 0x49, 0x89, 0xd0, //0x00008a7a movq %rdx, %r8 + 0x4d, 0x85, 0xc0, //0x00008a7d testq %r8, %r8 + 0x0f, 0x84, 0xb8, 0x00, 0x00, 0x00, //0x00008a80 je LBB36_32 + //0x00008a86 LBB36_3 + 0x49, 0x83, 0xf8, 0x08, //0x00008a86 cmpq $8, %r8 + 0x0f, 0x82, 0x1a, 0x00, 0x00, 0x00, //0x00008a8a jb LBB36_4 + 0x4a, 0x8d, 0x04, 0x06, //0x00008a90 leaq (%rsi,%r8), %rax + 0x48, 0x39, 0xc7, //0x00008a94 cmpq %rax, %rdi + 0x0f, 0x83, 0xa3, 0x00, 0x00, 0x00, //0x00008a97 jae LBB36_12 + 0x4a, 0x8d, 0x04, 0x07, //0x00008a9d leaq (%rdi,%r8), %rax + 0x48, 0x39, 0xc6, //0x00008aa1 cmpq %rax, %rsi + 0x0f, 0x83, 0x96, 0x00, 0x00, 0x00, //0x00008aa4 jae LBB36_12 + //0x00008aaa LBB36_4 + 0x49, 0x89, 0xf3, //0x00008aaa movq %rsi, %r11 + 0x4d, 0x89, 0xc1, //0x00008aad movq %r8, %r9 + 0x48, 0x89, 0xf8, //0x00008ab0 movq %rdi, %rax + //0x00008ab3 LBB36_17 + 0x41, 0xf6, 0xc1, 0x01, //0x00008ab3 testb $1, %r9b + 0x0f, 0x85, 0x12, 0x00, 0x00, 0x00, //0x00008ab7 jne LBB36_28 + 0x4d, 0x89, 0xc8, //0x00008abd movq %r9, %r8 + 0x49, 0x83, 0xf9, 0x01, //0x00008ac0 cmpq $1, %r9 + 0x0f, 0x85, 0x33, 0x00, 0x00, 0x00, //0x00008ac4 jne LBB36_30 + 0xe9, 0x6f, 0x00, 0x00, 0x00, //0x00008aca jmp LBB36_32 + //0x00008acf LBB36_28 + 0x41, 0x0f, 0xb6, 0x0b, //0x00008acf movzbl (%r11), %ecx + 0x8d, 0x71, 0xbf, //0x00008ad3 leal $-65(%rcx), %esi + 0x8d, 0x79, 0x20, //0x00008ad6 leal $32(%rcx), %edi + 0x40, 0x80, 0xfe, 0x1a, //0x00008ad9 cmpb $26, %sil + 0x40, 0x0f, 0xb6, 0xf7, //0x00008add movzbl %dil, %esi + 0x0f, 0x43, 0xf1, //0x00008ae1 cmovael %ecx, %esi + 0x4d, 0x8d, 0x41, 0xff, //0x00008ae4 leaq $-1(%r9), %r8 + 0x40, 0x88, 0x30, //0x00008ae8 movb %sil, (%rax) + 0x49, 0x83, 0xc3, 0x01, //0x00008aeb addq $1, %r11 + 0x48, 0x83, 0xc0, 0x01, //0x00008aef addq $1, %rax + 0x49, 0x83, 0xf9, 0x01, //0x00008af3 cmpq $1, %r9 + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008af7 je LBB36_32 + //0x00008afd LBB36_30 + 0x31, 0xf6, //0x00008afd xorl %esi, %esi + 0x90, //0x00008aff .p2align 4, 0x90 + //0x00008b00 LBB36_31 + 0x41, 0x0f, 0xb6, 0x3c, 0x33, //0x00008b00 movzbl (%r11,%rsi), %edi + 0x8d, 0x4f, 0xbf, //0x00008b05 leal $-65(%rdi), %ecx + 0x8d, 0x57, 0x20, //0x00008b08 leal $32(%rdi), %edx + 0x80, 0xf9, 0x1a, //0x00008b0b cmpb $26, %cl + 0x0f, 0xb6, 0xca, //0x00008b0e movzbl %dl, %ecx + 0x0f, 0x43, 0xcf, //0x00008b11 cmovael %edi, %ecx + 0x88, 0x0c, 0x30, //0x00008b14 movb %cl, (%rax,%rsi) + 0x41, 0x0f, 0xb6, 0x4c, 0x33, 0x01, //0x00008b17 movzbl $1(%r11,%rsi), %ecx + 0x8d, 0x51, 0xbf, //0x00008b1d leal $-65(%rcx), %edx + 0x8d, 0x79, 0x20, //0x00008b20 leal $32(%rcx), %edi + 0x80, 0xfa, 0x1a, //0x00008b23 cmpb $26, %dl + 0x40, 0x0f, 0xb6, 0xd7, //0x00008b26 movzbl %dil, %edx + 0x0f, 0x43, 0xd1, //0x00008b2a cmovael %ecx, %edx + 0x88, 0x54, 0x30, 0x01, //0x00008b2d movb %dl, $1(%rax,%rsi) + 0x48, 0x83, 0xc6, 0x02, //0x00008b31 addq $2, %rsi + 0x49, 0x39, 0xf0, //0x00008b35 cmpq %rsi, %r8 + 0x0f, 0x85, 0xc2, 0xff, 0xff, 0xff, //0x00008b38 jne LBB36_31 + //0x00008b3e LBB36_32 + 0x5d, //0x00008b3e popq %rbp + 0xc3, //0x00008b3f retq + //0x00008b40 LBB36_12 + 0x49, 0x83, 0xf8, 0x20, //0x00008b40 cmpq $32, %r8 + 0x0f, 0x83, 0x07, 0x00, 0x00, 0x00, //0x00008b44 jae LBB36_19 + 0x31, 0xc9, //0x00008b4a xorl %ecx, %ecx + 0xe9, 0xba, 0x01, 0x00, 0x00, //0x00008b4c jmp LBB36_14 + //0x00008b51 LBB36_19 + 0x4c, 0x89, 0xc1, //0x00008b51 movq %r8, %rcx + 0x48, 0x83, 0xe1, 0xe0, //0x00008b54 andq $-32, %rcx + 0x48, 0x8d, 0x41, 0xe0, //0x00008b58 leaq $-32(%rcx), %rax + 0x49, 0x89, 0xc1, //0x00008b5c movq %rax, %r9 + 0x49, 0xc1, 0xe9, 0x05, //0x00008b5f shrq $5, %r9 + 0x49, 0x83, 0xc1, 0x01, //0x00008b63 addq $1, %r9 + 0x48, 0x85, 0xc0, //0x00008b67 testq %rax, %rax + 0x0f, 0x84, 0x1d, 0x02, 0x00, 0x00, //0x00008b6a je LBB36_20 + 0x4c, 0x89, 0xca, //0x00008b70 movq %r9, %rdx + 0x48, 0x83, 0xe2, 0xfe, //0x00008b73 andq $-2, %rdx + 0x48, 0xf7, 0xda, //0x00008b77 negq %rdx + 0x31, 0xc0, //0x00008b7a xorl %eax, %eax + 0x66, 0x0f, 0x6f, 0x05, 0x8c, 0xfd, 0xff, 0xff, //0x00008b7c movdqa $-628(%rip), %xmm0 /* LCPI36_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x94, 0xfd, 0xff, 0xff, //0x00008b84 movdqa $-620(%rip), %xmm1 /* LCPI36_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x9c, 0xfd, 0xff, 0xff, //0x00008b8c movdqa $-612(%rip), %xmm2 /* LCPI36_5+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008b94 .p2align 4, 0x90 + //0x00008ba0 LBB36_22 + 0xf3, 0x0f, 0x6f, 0x1c, 0x06, //0x00008ba0 movdqu (%rsi,%rax), %xmm3 + 0xf3, 0x0f, 0x6f, 0x64, 0x06, 0x10, //0x00008ba5 movdqu $16(%rsi,%rax), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008bab movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008baf paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008bb3 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008bb7 paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008bbb movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008bbf pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008bc3 pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008bc7 movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008bcb pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008bcf pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008bd3 movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008bd7 pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008bdb paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008bdf pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008be3 por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008be7 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008beb pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008bef paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008bf3 pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008bf7 por %xmm6, %xmm4 + 0xf3, 0x0f, 0x7f, 0x1c, 0x07, //0x00008bfb movdqu %xmm3, (%rdi,%rax) + 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x10, //0x00008c00 movdqu %xmm4, $16(%rdi,%rax) + 0xf3, 0x0f, 0x6f, 0x5c, 0x06, 0x20, //0x00008c06 movdqu $32(%rsi,%rax), %xmm3 + 0xf3, 0x0f, 0x6f, 0x64, 0x06, 0x30, //0x00008c0c movdqu $48(%rsi,%rax), %xmm4 + 0x66, 0x0f, 0x6f, 0xeb, //0x00008c12 movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xfc, 0xe8, //0x00008c16 paddb %xmm0, %xmm5 + 0x66, 0x0f, 0x6f, 0xf4, //0x00008c1a movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xf0, //0x00008c1e paddb %xmm0, %xmm6 + 0x66, 0x0f, 0x6f, 0xfd, //0x00008c22 movdqa %xmm5, %xmm7 + 0x66, 0x0f, 0xda, 0xf9, //0x00008c26 pminub %xmm1, %xmm7 + 0x66, 0x0f, 0x74, 0xfd, //0x00008c2a pcmpeqb %xmm5, %xmm7 + 0x66, 0x0f, 0x6f, 0xee, //0x00008c2e movdqa %xmm6, %xmm5 + 0x66, 0x0f, 0xda, 0xe9, //0x00008c32 pminub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xee, //0x00008c36 pcmpeqb %xmm6, %xmm5 + 0x66, 0x0f, 0x6f, 0xf7, //0x00008c3a movdqa %xmm7, %xmm6 + 0x66, 0x0f, 0xdf, 0xf3, //0x00008c3e pandn %xmm3, %xmm6 + 0x66, 0x0f, 0xfc, 0xda, //0x00008c42 paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdb, 0xdf, //0x00008c46 pand %xmm7, %xmm3 + 0x66, 0x0f, 0xeb, 0xde, //0x00008c4a por %xmm6, %xmm3 + 0x66, 0x0f, 0x6f, 0xf5, //0x00008c4e movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0xdf, 0xf4, //0x00008c52 pandn %xmm4, %xmm6 + 0x66, 0x0f, 0xfc, 0xe2, //0x00008c56 paddb %xmm2, %xmm4 + 0x66, 0x0f, 0xdb, 0xe5, //0x00008c5a pand %xmm5, %xmm4 + 0x66, 0x0f, 0xeb, 0xe6, //0x00008c5e por %xmm6, %xmm4 + 0xf3, 0x0f, 0x7f, 0x5c, 0x07, 0x20, //0x00008c62 movdqu %xmm3, $32(%rdi,%rax) + 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x30, //0x00008c68 movdqu %xmm4, $48(%rdi,%rax) + 0x48, 0x83, 0xc0, 0x40, //0x00008c6e addq $64, %rax + 0x48, 0x83, 0xc2, 0x02, //0x00008c72 addq $2, %rdx + 0x0f, 0x85, 0x24, 0xff, 0xff, 0xff, //0x00008c76 jne LBB36_22 + 0x41, 0xf6, 0xc1, 0x01, //0x00008c7c testb $1, %r9b + 0x0f, 0x84, 0x72, 0x00, 0x00, 0x00, //0x00008c80 je LBB36_25 + //0x00008c86 LBB36_24 + 0xf3, 0x0f, 0x6f, 0x04, 0x06, //0x00008c86 movdqu (%rsi,%rax), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4c, 0x06, 0x10, //0x00008c8b movdqu $16(%rsi,%rax), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x77, 0xfc, 0xff, 0xff, //0x00008c91 movdqa $-905(%rip), %xmm2 /* LCPI36_3+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xd8, //0x00008c99 movdqa %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xda, //0x00008c9d paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008ca1 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0x6f, 0x25, 0x73, 0xfc, 0xff, 0xff, //0x00008ca5 movdqa $-909(%rip), %xmm4 /* LCPI36_4+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xeb, //0x00008cad movdqa %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xec, //0x00008cb1 pminub %xmm4, %xmm5 + 0x66, 0x0f, 0x74, 0xeb, //0x00008cb5 pcmpeqb %xmm3, %xmm5 + 0x66, 0x0f, 0xda, 0xe2, //0x00008cb9 pminub %xmm2, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x00008cbd pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0x6f, 0x15, 0x67, 0xfc, 0xff, 0xff, //0x00008cc1 movdqa $-921(%rip), %xmm2 /* LCPI36_5+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xdd, //0x00008cc9 movdqa %xmm5, %xmm3 + 0x66, 0x0f, 0xdf, 0xd8, //0x00008ccd pandn %xmm0, %xmm3 + 0x66, 0x0f, 0xfc, 0xc2, //0x00008cd1 paddb %xmm2, %xmm0 + 0x66, 0x0f, 0xfc, 0xd1, //0x00008cd5 paddb %xmm1, %xmm2 + 0x66, 0x0f, 0xdb, 0xc5, //0x00008cd9 pand %xmm5, %xmm0 + 0x66, 0x0f, 0xeb, 0xc3, //0x00008cdd por %xmm3, %xmm0 + 0x66, 0x0f, 0xdb, 0xd4, //0x00008ce1 pand %xmm4, %xmm2 + 0x66, 0x0f, 0xdf, 0xe1, //0x00008ce5 pandn %xmm1, %xmm4 + 0x66, 0x0f, 0xeb, 0xe2, //0x00008ce9 por %xmm2, %xmm4 + 0xf3, 0x0f, 0x7f, 0x04, 0x07, //0x00008ced movdqu %xmm0, (%rdi,%rax) + 0xf3, 0x0f, 0x7f, 0x64, 0x07, 0x10, //0x00008cf2 movdqu %xmm4, $16(%rdi,%rax) + //0x00008cf8 LBB36_25 + 0x49, 0x39, 0xc8, //0x00008cf8 cmpq %rcx, %r8 + 0x0f, 0x84, 0x3d, 0xfe, 0xff, 0xff, //0x00008cfb je LBB36_32 + 0x41, 0xf6, 0xc0, 0x18, //0x00008d01 testb $24, %r8b + 0x0f, 0x84, 0x93, 0x00, 0x00, 0x00, //0x00008d05 je LBB36_27 + //0x00008d0b LBB36_14 + 0x4d, 0x89, 0xc2, //0x00008d0b movq %r8, %r10 + 0x49, 0x83, 0xe2, 0xf8, //0x00008d0e andq $-8, %r10 + 0x4e, 0x8d, 0x1c, 0x16, //0x00008d12 leaq (%rsi,%r10), %r11 + 0x45, 0x89, 0xc1, //0x00008d16 movl %r8d, %r9d + 0x41, 0x83, 0xe1, 0x07, //0x00008d19 andl $7, %r9d + 0x4a, 0x8d, 0x04, 0x17, //0x00008d1d leaq (%rdi,%r10), %rax + 0x66, 0x0f, 0x6f, 0x05, 0x17, 0xfc, 0xff, 0xff, //0x00008d21 movdqa $-1001(%rip), %xmm0 /* LCPI36_6+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0x1f, 0xfc, 0xff, 0xff, //0x00008d29 movdqa $-993(%rip), %xmm1 /* LCPI36_7+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x15, 0x27, 0xfc, 0xff, 0xff, //0x00008d31 movdqa $-985(%rip), %xmm2 /* LCPI36_8+0(%rip) */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008d39 .p2align 4, 0x90 + //0x00008d40 LBB36_15 + 0xf3, 0x0f, 0x7e, 0x1c, 0x0e, //0x00008d40 movq (%rsi,%rcx), %xmm3 + 0x66, 0x0f, 0x6f, 0xe3, //0x00008d45 movdqa %xmm3, %xmm4 + 0x66, 0x0f, 0xfc, 0xe0, //0x00008d49 paddb %xmm0, %xmm4 + 0x66, 0x0f, 0x6f, 0xec, //0x00008d4d movdqa %xmm4, %xmm5 + 0x66, 0x0f, 0xde, 0xe9, //0x00008d51 pmaxub %xmm1, %xmm5 + 0x66, 0x0f, 0x74, 0xec, //0x00008d55 pcmpeqb %xmm4, %xmm5 + 0x66, 0x0f, 0x6f, 0xe5, //0x00008d59 movdqa %xmm5, %xmm4 + 0x66, 0x0f, 0xdb, 0xe3, //0x00008d5d pand %xmm3, %xmm4 + 0x66, 0x0f, 0xfc, 0xda, //0x00008d61 paddb %xmm2, %xmm3 + 0x66, 0x0f, 0xdf, 0xeb, //0x00008d65 pandn %xmm3, %xmm5 + 0x66, 0x0f, 0xeb, 0xec, //0x00008d69 por %xmm4, %xmm5 + 0x66, 0x0f, 0xd6, 0x2c, 0x0f, //0x00008d6d movq %xmm5, (%rdi,%rcx) + 0x48, 0x83, 0xc1, 0x08, //0x00008d72 addq $8, %rcx + 0x49, 0x39, 0xca, //0x00008d76 cmpq %rcx, %r10 + 0x0f, 0x85, 0xc1, 0xff, 0xff, 0xff, //0x00008d79 jne LBB36_15 + 0x4d, 0x39, 0xd0, //0x00008d7f cmpq %r10, %r8 + 0x0f, 0x85, 0x2b, 0xfd, 0xff, 0xff, //0x00008d82 jne LBB36_17 + 0xe9, 0xb1, 0xfd, 0xff, 0xff, //0x00008d88 jmp LBB36_32 + //0x00008d8d LBB36_20 + 0x31, 0xc0, //0x00008d8d xorl %eax, %eax + 0x41, 0xf6, 0xc1, 0x01, //0x00008d8f testb $1, %r9b + 0x0f, 0x85, 0xed, 0xfe, 0xff, 0xff, //0x00008d93 jne LBB36_24 + 0xe9, 0x5a, 0xff, 0xff, 0xff, //0x00008d99 jmp LBB36_25 + //0x00008d9e LBB36_27 + 0x48, 0x01, 0xcf, //0x00008d9e addq %rcx, %rdi + 0x41, 0x83, 0xe0, 0x1f, //0x00008da1 andl $31, %r8d + 0x48, 0x01, 0xce, //0x00008da5 addq %rcx, %rsi + 0xe9, 0xfd, 0xfc, 0xff, 0xff, //0x00008da8 jmp LBB36_4 + 0x90, 0x90, 0x90, //0x00008dad .p2align 4, 0x90 + //0x00008db0 _format_significand + 0x55, //0x00008db0 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008db1 movq %rsp, %rbp + 0x41, 0x56, //0x00008db4 pushq %r14 + 0x53, //0x00008db6 pushq %rbx + 0x4c, 0x63, 0xc2, //0x00008db7 movslq %edx, %r8 + 0x49, 0x01, 0xf0, //0x00008dba addq %rsi, %r8 + 0x48, 0x89, 0xf8, //0x00008dbd movq %rdi, %rax + 0x48, 0xc1, 0xe8, 0x20, //0x00008dc0 shrq $32, %rax + 0x0f, 0x85, 0x1c, 0x00, 0x00, 0x00, //0x00008dc4 jne LBB37_2 + 0x45, 0x31, 0xc9, //0x00008dca xorl %r9d, %r9d + 0x4d, 0x89, 0xc6, //0x00008dcd movq %r8, %r14 + 0x48, 0x89, 0xfa, //0x00008dd0 movq %rdi, %rdx + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008dd3 cmpl $10000, %edx + 0x0f, 0x83, 0xe3, 0x00, 0x00, 0x00, //0x00008dd9 jae LBB37_8 + //0x00008ddf LBB37_7 + 0x89, 0xd7, //0x00008ddf movl %edx, %edi + 0xe9, 0x32, 0x01, 0x00, 0x00, //0x00008de1 jmp LBB37_10 + //0x00008de6 LBB37_2 + 0x48, 0xb9, 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00008de6 movabsq $-6067343680855748867, %rcx + 0x48, 0x89, 0xf8, //0x00008df0 movq %rdi, %rax + 0x48, 0xf7, 0xe1, //0x00008df3 mulq %rcx + 0x48, 0xc1, 0xea, 0x1a, //0x00008df6 shrq $26, %rdx + 0x69, 0xca, 0x00, 0x1f, 0x0a, 0xfa, //0x00008dfa imull $-100000000, %edx, %ecx + 0x01, 0xf9, //0x00008e00 addl %edi, %ecx + 0x0f, 0x84, 0xa4, 0x00, 0x00, 0x00, //0x00008e02 je LBB37_3 + 0x89, 0xc8, //0x00008e08 movl %ecx, %eax + 0x41, 0xb9, 0x59, 0x17, 0xb7, 0xd1, //0x00008e0a movl $3518437209, %r9d + 0x49, 0x0f, 0xaf, 0xc1, //0x00008e10 imulq %r9, %rax + 0x48, 0xc1, 0xe8, 0x2d, //0x00008e14 shrq $45, %rax + 0x69, 0xf8, 0x10, 0x27, 0x00, 0x00, //0x00008e18 imull $10000, %eax, %edi + 0x29, 0xf9, //0x00008e1e subl %edi, %ecx + 0x48, 0x89, 0xc7, //0x00008e20 movq %rax, %rdi + 0x49, 0x0f, 0xaf, 0xf9, //0x00008e23 imulq %r9, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008e27 shrq $45, %rdi + 0x69, 0xff, 0x10, 0x27, 0x00, 0x00, //0x00008e2b imull $10000, %edi, %edi + 0x29, 0xf8, //0x00008e31 subl %edi, %eax + 0x0f, 0xb7, 0xf9, //0x00008e33 movzwl %cx, %edi + 0xc1, 0xef, 0x02, //0x00008e36 shrl $2, %edi + 0x44, 0x69, 0xcf, 0x7b, 0x14, 0x00, 0x00, //0x00008e39 imull $5243, %edi, %r9d + 0x41, 0xc1, 0xe9, 0x11, //0x00008e40 shrl $17, %r9d + 0x41, 0x6b, 0xf9, 0x64, //0x00008e44 imull $100, %r9d, %edi + 0x29, 0xf9, //0x00008e48 subl %edi, %ecx + 0x44, 0x0f, 0xb7, 0xd1, //0x00008e4a movzwl %cx, %r10d + 0x0f, 0xb7, 0xf8, //0x00008e4e movzwl %ax, %edi + 0xc1, 0xef, 0x02, //0x00008e51 shrl $2, %edi + 0x69, 0xff, 0x7b, 0x14, 0x00, 0x00, //0x00008e54 imull $5243, %edi, %edi + 0xc1, 0xef, 0x11, //0x00008e5a shrl $17, %edi + 0x6b, 0xcf, 0x64, //0x00008e5d imull $100, %edi, %ecx + 0x29, 0xc8, //0x00008e60 subl %ecx, %eax + 0x44, 0x0f, 0xb7, 0xd8, //0x00008e62 movzwl %ax, %r11d + 0x48, 0x8d, 0x0d, 0x73, 0x37, 0x00, 0x00, //0x00008e66 leaq $14195(%rip), %rcx /* _Digits+0(%rip) */ + 0x42, 0x0f, 0xb7, 0x04, 0x51, //0x00008e6d movzwl (%rcx,%r10,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfe, //0x00008e72 movw %ax, $-2(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x49, //0x00008e77 movzwl (%rcx,%r9,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfc, //0x00008e7c movw %ax, $-4(%r8) + 0x42, 0x0f, 0xb7, 0x04, 0x59, //0x00008e81 movzwl (%rcx,%r11,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xfa, //0x00008e86 movw %ax, $-6(%r8) + 0x0f, 0xb7, 0x04, 0x79, //0x00008e8b movzwl (%rcx,%rdi,2), %eax + 0x66, 0x41, 0x89, 0x40, 0xf8, //0x00008e8f movw %ax, $-8(%r8) + 0x45, 0x31, 0xc9, //0x00008e94 xorl %r9d, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00008e97 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008e9b cmpl $10000, %edx + 0x0f, 0x82, 0x38, 0xff, 0xff, 0xff, //0x00008ea1 jb LBB37_7 + 0xe9, 0x16, 0x00, 0x00, 0x00, //0x00008ea7 jmp LBB37_8 + //0x00008eac LBB37_3 + 0x41, 0xb9, 0x08, 0x00, 0x00, 0x00, //0x00008eac movl $8, %r9d + 0x4d, 0x8d, 0x70, 0xf8, //0x00008eb2 leaq $-8(%r8), %r14 + 0x81, 0xfa, 0x10, 0x27, 0x00, 0x00, //0x00008eb6 cmpl $10000, %edx + 0x0f, 0x82, 0x1d, 0xff, 0xff, 0xff, //0x00008ebc jb LBB37_7 + //0x00008ec2 LBB37_8 + 0x41, 0xba, 0x59, 0x17, 0xb7, 0xd1, //0x00008ec2 movl $3518437209, %r10d + 0x4c, 0x8d, 0x1d, 0x11, 0x37, 0x00, 0x00, //0x00008ec8 leaq $14097(%rip), %r11 /* _Digits+0(%rip) */ + 0x90, //0x00008ecf .p2align 4, 0x90 + //0x00008ed0 LBB37_9 + 0x89, 0xd7, //0x00008ed0 movl %edx, %edi + 0x49, 0x0f, 0xaf, 0xfa, //0x00008ed2 imulq %r10, %rdi + 0x48, 0xc1, 0xef, 0x2d, //0x00008ed6 shrq $45, %rdi + 0x69, 0xc7, 0xf0, 0xd8, 0xff, 0xff, //0x00008eda imull $-10000, %edi, %eax + 0x01, 0xd0, //0x00008ee0 addl %edx, %eax + 0x48, 0x69, 0xd8, 0x1f, 0x85, 0xeb, 0x51, //0x00008ee2 imulq $1374389535, %rax, %rbx + 0x48, 0xc1, 0xeb, 0x25, //0x00008ee9 shrq $37, %rbx + 0x6b, 0xcb, 0x64, //0x00008eed imull $100, %ebx, %ecx + 0x29, 0xc8, //0x00008ef0 subl %ecx, %eax + 0x41, 0x0f, 0xb7, 0x04, 0x43, //0x00008ef2 movzwl (%r11,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008ef7 movw %ax, $-2(%r14) + 0x41, 0x0f, 0xb7, 0x04, 0x5b, //0x00008efc movzwl (%r11,%rbx,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfc, //0x00008f01 movw %ax, $-4(%r14) + 0x49, 0x83, 0xc6, 0xfc, //0x00008f06 addq $-4, %r14 + 0x81, 0xfa, 0xff, 0xe0, 0xf5, 0x05, //0x00008f0a cmpl $99999999, %edx + 0x89, 0xfa, //0x00008f10 movl %edi, %edx + 0x0f, 0x87, 0xb8, 0xff, 0xff, 0xff, //0x00008f12 ja LBB37_9 + //0x00008f18 LBB37_10 + 0x83, 0xff, 0x64, //0x00008f18 cmpl $100, %edi + 0x0f, 0x83, 0x20, 0x00, 0x00, 0x00, //0x00008f1b jae LBB37_11 + 0x83, 0xff, 0x0a, //0x00008f21 cmpl $10, %edi + 0x0f, 0x82, 0x4d, 0x00, 0x00, 0x00, //0x00008f24 jb LBB37_14 + //0x00008f2a LBB37_13 + 0x89, 0xf8, //0x00008f2a movl %edi, %eax + 0x48, 0x8d, 0x0d, 0xad, 0x36, 0x00, 0x00, //0x00008f2c leaq $13997(%rip), %rcx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x04, 0x41, //0x00008f33 movzwl (%rcx,%rax,2), %eax + 0x66, 0x41, 0x89, 0x46, 0xfe, //0x00008f37 movw %ax, $-2(%r14) + 0xe9, 0x3d, 0x00, 0x00, 0x00, //0x00008f3c jmp LBB37_15 + //0x00008f41 LBB37_11 + 0x0f, 0xb7, 0xc7, //0x00008f41 movzwl %di, %eax + 0xc1, 0xe8, 0x02, //0x00008f44 shrl $2, %eax + 0x69, 0xc0, 0x7b, 0x14, 0x00, 0x00, //0x00008f47 imull $5243, %eax, %eax + 0xc1, 0xe8, 0x11, //0x00008f4d shrl $17, %eax + 0x6b, 0xc8, 0x64, //0x00008f50 imull $100, %eax, %ecx + 0x29, 0xcf, //0x00008f53 subl %ecx, %edi + 0x0f, 0xb7, 0xcf, //0x00008f55 movzwl %di, %ecx + 0x48, 0x8d, 0x15, 0x81, 0x36, 0x00, 0x00, //0x00008f58 leaq $13953(%rip), %rdx /* _Digits+0(%rip) */ + 0x0f, 0xb7, 0x0c, 0x4a, //0x00008f5f movzwl (%rdx,%rcx,2), %ecx + 0x66, 0x41, 0x89, 0x4e, 0xfe, //0x00008f63 movw %cx, $-2(%r14) + 0x49, 0x83, 0xc6, 0xfe, //0x00008f68 addq $-2, %r14 + 0x89, 0xc7, //0x00008f6c movl %eax, %edi + 0x83, 0xff, 0x0a, //0x00008f6e cmpl $10, %edi + 0x0f, 0x83, 0xb3, 0xff, 0xff, 0xff, //0x00008f71 jae LBB37_13 + //0x00008f77 LBB37_14 + 0x40, 0x80, 0xc7, 0x30, //0x00008f77 addb $48, %dil + 0x40, 0x88, 0x3e, //0x00008f7b movb %dil, (%rsi) + //0x00008f7e LBB37_15 + 0x4d, 0x29, 0xc8, //0x00008f7e subq %r9, %r8 + 0x4c, 0x89, 0xc0, //0x00008f81 movq %r8, %rax + 0x5b, //0x00008f84 popq %rbx + 0x41, 0x5e, //0x00008f85 popq %r14 + 0x5d, //0x00008f87 popq %rbp + 0xc3, //0x00008f88 retq + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008f89 .p2align 4, 0x90 + //0x00008f90 _left_shift + 0x55, //0x00008f90 pushq %rbp + 0x48, 0x89, 0xe5, //0x00008f91 movq %rsp, %rbp + 0x41, 0x57, //0x00008f94 pushq %r15 + 0x41, 0x56, //0x00008f96 pushq %r14 + 0x53, //0x00008f98 pushq %rbx + 0x89, 0xf1, //0x00008f99 movl %esi, %ecx + 0x4c, 0x6b, 0xf1, 0x68, //0x00008f9b imulq $104, %rcx, %r14 + 0x48, 0x8d, 0x15, 0x2a, 0x90, 0x00, 0x00, //0x00008f9f leaq $36906(%rip), %rdx /* _LSHIFT_TAB+0(%rip) */ + 0x45, 0x8b, 0x04, 0x16, //0x00008fa6 movl (%r14,%rdx), %r8d + 0x4c, 0x8b, 0x1f, //0x00008faa movq (%rdi), %r11 + 0x4c, 0x63, 0x4f, 0x10, //0x00008fad movslq $16(%rdi), %r9 + 0x45, 0x89, 0xca, //0x00008fb1 movl %r9d, %r10d + 0x4d, 0x85, 0xc9, //0x00008fb4 testq %r9, %r9 + 0x0f, 0x84, 0x4c, 0x00, 0x00, 0x00, //0x00008fb7 je LBB38_1 + 0x49, 0x8d, 0x34, 0x16, //0x00008fbd leaq (%r14,%rdx), %rsi + 0x48, 0x83, 0xc6, 0x04, //0x00008fc1 addq $4, %rsi + 0x31, 0xdb, //0x00008fc5 xorl %ebx, %ebx + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00008fc7 .p2align 4, 0x90 + //0x00008fd0 LBB38_3 + 0x0f, 0xb6, 0x04, 0x1e, //0x00008fd0 movzbl (%rsi,%rbx), %eax + 0x84, 0xc0, //0x00008fd4 testb %al, %al + 0x0f, 0x84, 0x41, 0x00, 0x00, 0x00, //0x00008fd6 je LBB38_10 + 0x41, 0x38, 0x04, 0x1b, //0x00008fdc cmpb %al, (%r11,%rbx) + 0x0f, 0x85, 0xba, 0x01, 0x00, 0x00, //0x00008fe0 jne LBB38_5 + 0x48, 0x83, 0xc3, 0x01, //0x00008fe6 addq $1, %rbx + 0x49, 0x39, 0xd9, //0x00008fea cmpq %rbx, %r9 + 0x0f, 0x85, 0xdd, 0xff, 0xff, 0xff, //0x00008fed jne LBB38_3 + 0x44, 0x89, 0xce, //0x00008ff3 movl %r9d, %esi + 0x4c, 0x01, 0xf2, //0x00008ff6 addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x00008ff9 cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x85, 0x15, 0x00, 0x00, 0x00, //0x00008ffe jne LBB38_9 + 0xe9, 0x14, 0x00, 0x00, 0x00, //0x00009004 jmp LBB38_10 + //0x00009009 LBB38_1 + 0x31, 0xf6, //0x00009009 xorl %esi, %esi + 0x4c, 0x01, 0xf2, //0x0000900b addq %r14, %rdx + 0x80, 0x7c, 0x16, 0x04, 0x00, //0x0000900e cmpb $0, $4(%rsi,%rdx) + 0x0f, 0x84, 0x04, 0x00, 0x00, 0x00, //0x00009013 je LBB38_10 + //0x00009019 LBB38_9 + 0x41, 0x83, 0xc0, 0xff, //0x00009019 addl $-1, %r8d + //0x0000901d LBB38_10 + 0x45, 0x85, 0xd2, //0x0000901d testl %r10d, %r10d + 0x0f, 0x8e, 0xa2, 0x00, 0x00, 0x00, //0x00009020 jle LBB38_25 + 0x43, 0x8d, 0x04, 0x10, //0x00009026 leal (%r8,%r10), %eax + 0x4c, 0x63, 0xf8, //0x0000902a movslq %eax, %r15 + 0x41, 0x83, 0xc1, 0xff, //0x0000902d addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x00009031 addq $-1, %r15 + 0x31, 0xd2, //0x00009035 xorl %edx, %edx + 0x49, 0xbe, 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00009037 movabsq $-3689348814741910323, %r14 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009041 .p2align 4, 0x90 + //0x00009050 LBB38_12 + 0x44, 0x89, 0xc8, //0x00009050 movl %r9d, %eax + 0x49, 0x0f, 0xbe, 0x34, 0x03, //0x00009053 movsbq (%r11,%rax), %rsi + 0x48, 0x83, 0xc6, 0xd0, //0x00009058 addq $-48, %rsi + 0x48, 0xd3, 0xe6, //0x0000905c shlq %cl, %rsi + 0x48, 0x01, 0xd6, //0x0000905f addq %rdx, %rsi + 0x48, 0x89, 0xf0, //0x00009062 movq %rsi, %rax + 0x49, 0xf7, 0xe6, //0x00009065 mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x00009068 shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x0000906c leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009070 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xf0, //0x00009074 movq %rsi, %rax + 0x48, 0x29, 0xd8, //0x00009077 subq %rbx, %rax + 0x4c, 0x39, 0x7f, 0x08, //0x0000907a cmpq %r15, $8(%rdi) + 0x0f, 0x86, 0x0c, 0x00, 0x00, 0x00, //0x0000907e jbe LBB38_18 + 0x04, 0x30, //0x00009084 addb $48, %al + 0x43, 0x88, 0x04, 0x3b, //0x00009086 movb %al, (%r11,%r15) + 0xe9, 0x11, 0x00, 0x00, 0x00, //0x0000908a jmp LBB38_20 + 0x90, //0x0000908f .p2align 4, 0x90 + //0x00009090 LBB38_18 + 0x48, 0x85, 0xc0, //0x00009090 testq %rax, %rax + 0x0f, 0x84, 0x07, 0x00, 0x00, 0x00, //0x00009093 je LBB38_20 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009099 movl $1, $28(%rdi) + //0x000090a0 LBB38_20 + 0x49, 0x83, 0xfa, 0x02, //0x000090a0 cmpq $2, %r10 + 0x0f, 0x8c, 0x14, 0x00, 0x00, 0x00, //0x000090a4 jl LBB38_14 + 0x49, 0x83, 0xc2, 0xff, //0x000090aa addq $-1, %r10 + 0x4c, 0x8b, 0x1f, //0x000090ae movq (%rdi), %r11 + 0x41, 0x83, 0xc1, 0xff, //0x000090b1 addl $-1, %r9d + 0x49, 0x83, 0xc7, 0xff, //0x000090b5 addq $-1, %r15 + 0xe9, 0x92, 0xff, 0xff, 0xff, //0x000090b9 jmp LBB38_12 + //0x000090be LBB38_14 + 0x48, 0x83, 0xfe, 0x0a, //0x000090be cmpq $10, %rsi + 0x0f, 0x83, 0x71, 0x00, 0x00, 0x00, //0x000090c2 jae LBB38_15 + //0x000090c8 LBB38_25 + 0x48, 0x63, 0x4f, 0x10, //0x000090c8 movslq $16(%rdi), %rcx + 0x49, 0x63, 0xc0, //0x000090cc movslq %r8d, %rax + 0x48, 0x01, 0xc8, //0x000090cf addq %rcx, %rax + 0x89, 0x47, 0x10, //0x000090d2 movl %eax, $16(%rdi) + 0x48, 0x8b, 0x4f, 0x08, //0x000090d5 movq $8(%rdi), %rcx + 0x48, 0x39, 0xc1, //0x000090d9 cmpq %rax, %rcx + 0x0f, 0x87, 0x05, 0x00, 0x00, 0x00, //0x000090dc ja LBB38_27 + 0x89, 0x4f, 0x10, //0x000090e2 movl %ecx, $16(%rdi) + 0x89, 0xc8, //0x000090e5 movl %ecx, %eax + //0x000090e7 LBB38_27 + 0x44, 0x01, 0x47, 0x14, //0x000090e7 addl %r8d, $20(%rdi) + 0x85, 0xc0, //0x000090eb testl %eax, %eax + 0x0f, 0x8e, 0x32, 0x00, 0x00, 0x00, //0x000090ed jle LBB38_31 + 0x48, 0x8b, 0x0f, //0x000090f3 movq (%rdi), %rcx + 0x89, 0xc2, //0x000090f6 movl %eax, %edx + 0x48, 0x83, 0xc2, 0x01, //0x000090f8 addq $1, %rdx + 0x83, 0xc0, 0xff, //0x000090fc addl $-1, %eax + 0x90, //0x000090ff .p2align 4, 0x90 + //0x00009100 LBB38_29 + 0x89, 0xc6, //0x00009100 movl %eax, %esi + 0x80, 0x3c, 0x31, 0x30, //0x00009102 cmpb $48, (%rcx,%rsi) + 0x0f, 0x85, 0x26, 0x00, 0x00, 0x00, //0x00009106 jne LBB38_33 + 0x89, 0x47, 0x10, //0x0000910c movl %eax, $16(%rdi) + 0x48, 0x83, 0xc2, 0xff, //0x0000910f addq $-1, %rdx + 0x83, 0xc0, 0xff, //0x00009113 addl $-1, %eax + 0x48, 0x83, 0xfa, 0x01, //0x00009116 cmpq $1, %rdx + 0x0f, 0x8f, 0xe0, 0xff, 0xff, 0xff, //0x0000911a jg LBB38_29 + 0xe9, 0x06, 0x00, 0x00, 0x00, //0x00009120 jmp LBB38_32 + //0x00009125 LBB38_31 + 0x0f, 0x85, 0x07, 0x00, 0x00, 0x00, //0x00009125 jne LBB38_33 + //0x0000912b LBB38_32 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x0000912b movl $0, $20(%rdi) + //0x00009132 LBB38_33 + 0x5b, //0x00009132 popq %rbx + 0x41, 0x5e, //0x00009133 popq %r14 + 0x41, 0x5f, //0x00009135 popq %r15 + 0x5d, //0x00009137 popq %rbp + 0xc3, //0x00009138 retq + //0x00009139 LBB38_15 + 0x45, 0x01, 0xc1, //0x00009139 addl %r8d, %r9d + 0x49, 0x63, 0xf1, //0x0000913c movslq %r9d, %rsi + 0x48, 0x83, 0xc6, 0xff, //0x0000913f addq $-1, %rsi + 0xe9, 0x1e, 0x00, 0x00, 0x00, //0x00009143 jmp LBB38_16 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009148 .p2align 4, 0x90 + //0x00009150 LBB38_17 + 0x04, 0x30, //0x00009150 addb $48, %al + 0x48, 0x8b, 0x1f, //0x00009152 movq (%rdi), %rbx + 0x88, 0x04, 0x33, //0x00009155 movb %al, (%rbx,%rsi) + //0x00009158 LBB38_24 + 0x48, 0x83, 0xc6, 0xff, //0x00009158 addq $-1, %rsi + 0x48, 0x83, 0xf9, 0x09, //0x0000915c cmpq $9, %rcx + 0x0f, 0x86, 0x62, 0xff, 0xff, 0xff, //0x00009160 jbe LBB38_25 + //0x00009166 LBB38_16 + 0x48, 0x89, 0xd1, //0x00009166 movq %rdx, %rcx + 0x48, 0x89, 0xd0, //0x00009169 movq %rdx, %rax + 0x49, 0xf7, 0xe6, //0x0000916c mulq %r14 + 0x48, 0xc1, 0xea, 0x03, //0x0000916f shrq $3, %rdx + 0x48, 0x8d, 0x04, 0x12, //0x00009173 leaq (%rdx,%rdx), %rax + 0x48, 0x8d, 0x1c, 0x80, //0x00009177 leaq (%rax,%rax,4), %rbx + 0x48, 0x89, 0xc8, //0x0000917b movq %rcx, %rax + 0x48, 0x29, 0xd8, //0x0000917e subq %rbx, %rax + 0x48, 0x39, 0x77, 0x08, //0x00009181 cmpq %rsi, $8(%rdi) + 0x0f, 0x87, 0xc5, 0xff, 0xff, 0xff, //0x00009185 ja LBB38_17 + 0x48, 0x85, 0xc0, //0x0000918b testq %rax, %rax + 0x0f, 0x84, 0xc4, 0xff, 0xff, 0xff, //0x0000918e je LBB38_24 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x00009194 movl $1, $28(%rdi) + 0xe9, 0xb8, 0xff, 0xff, 0xff, //0x0000919b jmp LBB38_24 + //0x000091a0 LBB38_5 + 0x0f, 0x8c, 0x73, 0xfe, 0xff, 0xff, //0x000091a0 jl LBB38_9 + 0xe9, 0x72, 0xfe, 0xff, 0xff, //0x000091a6 jmp LBB38_10 + 0x90, 0x90, 0x90, 0x90, 0x90, //0x000091ab .p2align 4, 0x90 + //0x000091b0 _right_shift + 0x55, //0x000091b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000091b1 movq %rsp, %rbp + 0x53, //0x000091b4 pushq %rbx + 0x89, 0xf1, //0x000091b5 movl %esi, %ecx + 0x44, 0x8b, 0x47, 0x10, //0x000091b7 movl $16(%rdi), %r8d + 0x31, 0xd2, //0x000091bb xorl %edx, %edx + 0x45, 0x85, 0xc0, //0x000091bd testl %r8d, %r8d + 0x41, 0xbb, 0x00, 0x00, 0x00, 0x00, //0x000091c0 movl $0, %r11d + 0x45, 0x0f, 0x4f, 0xd8, //0x000091c6 cmovgl %r8d, %r11d + 0x31, 0xc0, //0x000091ca xorl %eax, %eax + 0x90, 0x90, 0x90, 0x90, //0x000091cc .p2align 4, 0x90 + //0x000091d0 LBB39_1 + 0x49, 0x39, 0xd3, //0x000091d0 cmpq %rdx, %r11 + 0x0f, 0x84, 0x4f, 0x01, 0x00, 0x00, //0x000091d3 je LBB39_2 + 0x48, 0x8d, 0x04, 0x80, //0x000091d9 leaq (%rax,%rax,4), %rax + 0x48, 0x8b, 0x37, //0x000091dd movq (%rdi), %rsi + 0x48, 0x0f, 0xbe, 0x34, 0x16, //0x000091e0 movsbq (%rsi,%rdx), %rsi + 0x48, 0x8d, 0x04, 0x46, //0x000091e5 leaq (%rsi,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x000091e9 addq $-48, %rax + 0x48, 0x83, 0xc2, 0x01, //0x000091ed addq $1, %rdx + 0x48, 0x89, 0xc6, //0x000091f1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x000091f4 shrq %cl, %rsi + 0x48, 0x85, 0xf6, //0x000091f7 testq %rsi, %rsi + 0x0f, 0x84, 0xd0, 0xff, 0xff, 0xff, //0x000091fa je LBB39_1 + 0x41, 0x89, 0xd3, //0x00009200 movl %edx, %r11d + //0x00009203 LBB39_7 + 0x8b, 0x57, 0x14, //0x00009203 movl $20(%rdi), %edx + 0x44, 0x29, 0xda, //0x00009206 subl %r11d, %edx + 0x83, 0xc2, 0x01, //0x00009209 addl $1, %edx + 0x49, 0xc7, 0xc1, 0xff, 0xff, 0xff, 0xff, //0x0000920c movq $-1, %r9 + 0x49, 0xd3, 0xe1, //0x00009213 shlq %cl, %r9 + 0x89, 0x57, 0x14, //0x00009216 movl %edx, $20(%rdi) + 0x49, 0xf7, 0xd1, //0x00009219 notq %r9 + 0x45, 0x31, 0xd2, //0x0000921c xorl %r10d, %r10d + 0x45, 0x39, 0xc3, //0x0000921f cmpl %r8d, %r11d + 0x0f, 0x8d, 0x80, 0x00, 0x00, 0x00, //0x00009222 jge LBB39_10 + 0x4d, 0x63, 0xc3, //0x00009228 movslq %r11d, %r8 + 0x48, 0x8b, 0x37, //0x0000922b movq (%rdi), %rsi + 0x45, 0x31, 0xd2, //0x0000922e xorl %r10d, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009231 .p2align 4, 0x90 + //0x00009240 LBB39_9 + 0x48, 0x89, 0xc2, //0x00009240 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009243 shrq %cl, %rdx + 0x4c, 0x21, 0xc8, //0x00009246 andq %r9, %rax + 0x80, 0xc2, 0x30, //0x00009249 addb $48, %dl + 0x42, 0x88, 0x14, 0x16, //0x0000924c movb %dl, (%rsi,%r10) + 0x48, 0x8b, 0x37, //0x00009250 movq (%rdi), %rsi + 0x4a, 0x8d, 0x14, 0x06, //0x00009253 leaq (%rsi,%r8), %rdx + 0x4d, 0x0f, 0xbe, 0x1c, 0x12, //0x00009257 movsbq (%r10,%rdx), %r11 + 0x4b, 0x8d, 0x5c, 0x10, 0x01, //0x0000925c leaq $1(%r8,%r10), %rbx + 0x49, 0x83, 0xc2, 0x01, //0x00009261 addq $1, %r10 + 0x48, 0x8d, 0x04, 0x80, //0x00009265 leaq (%rax,%rax,4), %rax + 0x49, 0x8d, 0x04, 0x43, //0x00009269 leaq (%r11,%rax,2), %rax + 0x48, 0x83, 0xc0, 0xd0, //0x0000926d addq $-48, %rax + 0x48, 0x63, 0x57, 0x10, //0x00009271 movslq $16(%rdi), %rdx + 0x48, 0x39, 0xd3, //0x00009275 cmpq %rdx, %rbx + 0x0f, 0x8c, 0xc2, 0xff, 0xff, 0xff, //0x00009278 jl LBB39_9 + 0xe9, 0x25, 0x00, 0x00, 0x00, //0x0000927e jmp LBB39_10 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009283 .p2align 4, 0x90 + //0x00009290 LBB39_12 + 0x40, 0x80, 0xc6, 0x30, //0x00009290 addb $48, %sil + 0x48, 0x8b, 0x1f, //0x00009294 movq (%rdi), %rbx + 0x40, 0x88, 0x34, 0x13, //0x00009297 movb %sil, (%rbx,%rdx) + 0x83, 0xc2, 0x01, //0x0000929b addl $1, %edx + 0x41, 0x89, 0xd2, //0x0000929e movl %edx, %r10d + //0x000092a1 LBB39_15 + 0x48, 0x01, 0xc0, //0x000092a1 addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x000092a4 leaq (%rax,%rax,4), %rax + //0x000092a8 LBB39_10 + 0x48, 0x85, 0xc0, //0x000092a8 testq %rax, %rax + 0x0f, 0x84, 0x2b, 0x00, 0x00, 0x00, //0x000092ab je LBB39_16 + 0x48, 0x89, 0xc6, //0x000092b1 movq %rax, %rsi + 0x48, 0xd3, 0xee, //0x000092b4 shrq %cl, %rsi + 0x4c, 0x21, 0xc8, //0x000092b7 andq %r9, %rax + 0x49, 0x63, 0xd2, //0x000092ba movslq %r10d, %rdx + 0x48, 0x39, 0x57, 0x08, //0x000092bd cmpq %rdx, $8(%rdi) + 0x0f, 0x87, 0xc9, 0xff, 0xff, 0xff, //0x000092c1 ja LBB39_12 + 0x48, 0x85, 0xf6, //0x000092c7 testq %rsi, %rsi + 0x0f, 0x84, 0xd1, 0xff, 0xff, 0xff, //0x000092ca je LBB39_15 + 0xc7, 0x47, 0x1c, 0x01, 0x00, 0x00, 0x00, //0x000092d0 movl $1, $28(%rdi) + 0xe9, 0xc5, 0xff, 0xff, 0xff, //0x000092d7 jmp LBB39_15 + //0x000092dc LBB39_16 + 0x44, 0x89, 0x57, 0x10, //0x000092dc movl %r10d, $16(%rdi) + 0x45, 0x85, 0xd2, //0x000092e0 testl %r10d, %r10d + 0x0f, 0x8e, 0x85, 0x00, 0x00, 0x00, //0x000092e3 jle LBB39_20 + 0x48, 0x8b, 0x07, //0x000092e9 movq (%rdi), %rax + 0x44, 0x89, 0xd1, //0x000092ec movl %r10d, %ecx + 0x48, 0x83, 0xc1, 0x01, //0x000092ef addq $1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x000092f3 addl $-1, %r10d + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x000092f7 .p2align 4, 0x90 + //0x00009300 LBB39_18 + 0x44, 0x89, 0xd2, //0x00009300 movl %r10d, %edx + 0x80, 0x3c, 0x10, 0x30, //0x00009303 cmpb $48, (%rax,%rdx) + 0x0f, 0x85, 0x67, 0x00, 0x00, 0x00, //0x00009307 jne LBB39_22 + 0x44, 0x89, 0x57, 0x10, //0x0000930d movl %r10d, $16(%rdi) + 0x48, 0x83, 0xc1, 0xff, //0x00009311 addq $-1, %rcx + 0x41, 0x83, 0xc2, 0xff, //0x00009315 addl $-1, %r10d + 0x48, 0x83, 0xf9, 0x01, //0x00009319 cmpq $1, %rcx + 0x0f, 0x8f, 0xdd, 0xff, 0xff, 0xff, //0x0000931d jg LBB39_18 + 0xe9, 0x4f, 0x00, 0x00, 0x00, //0x00009323 jmp LBB39_21 + //0x00009328 LBB39_2 + 0x48, 0x85, 0xc0, //0x00009328 testq %rax, %rax + 0x0f, 0x84, 0x50, 0x00, 0x00, 0x00, //0x0000932b je LBB39_23 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009331 .p2align 4, 0x90 + 0x48, 0x89, 0xc2, //0x00009340 movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x00009343 shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009346 testq %rdx, %rdx + 0x0f, 0x85, 0xb4, 0xfe, 0xff, 0xff, //0x00009349 jne LBB39_7 + //0x0000934f LBB39_4 + 0x48, 0x01, 0xc0, //0x0000934f addq %rax, %rax + 0x48, 0x8d, 0x04, 0x80, //0x00009352 leaq (%rax,%rax,4), %rax + 0x41, 0x83, 0xc3, 0x01, //0x00009356 addl $1, %r11d + 0x48, 0x89, 0xc2, //0x0000935a movq %rax, %rdx + 0x48, 0xd3, 0xea, //0x0000935d shrq %cl, %rdx + 0x48, 0x85, 0xd2, //0x00009360 testq %rdx, %rdx + 0x0f, 0x84, 0xe6, 0xff, 0xff, 0xff, //0x00009363 je LBB39_4 + 0xe9, 0x95, 0xfe, 0xff, 0xff, //0x00009369 jmp LBB39_7 + //0x0000936e LBB39_20 + 0x0f, 0x84, 0x03, 0x00, 0x00, 0x00, //0x0000936e je LBB39_21 + //0x00009374 LBB39_22 + 0x5b, //0x00009374 popq %rbx + 0x5d, //0x00009375 popq %rbp + 0xc3, //0x00009376 retq + //0x00009377 LBB39_21 + 0xc7, 0x47, 0x14, 0x00, 0x00, 0x00, 0x00, //0x00009377 movl $0, $20(%rdi) + 0x5b, //0x0000937e popq %rbx + 0x5d, //0x0000937f popq %rbp + 0xc3, //0x00009380 retq + //0x00009381 LBB39_23 + 0xc7, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, //0x00009381 movl $0, $16(%rdi) + 0x5b, //0x00009388 popq %rbx + 0x5d, //0x00009389 popq %rbp + 0xc3, //0x0000938a retq + 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000938b .p2align 4, 0x00 + //0x00009390 LCPI40_0 + 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, 0x22, //0x00009390 QUAD $0x2222222222222222; QUAD $0x2222222222222222 // .space 16, '""""""""""""""""' + //0x000093a0 LCPI40_1 + 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, 0x5c, //0x000093a0 QUAD $0x5c5c5c5c5c5c5c5c; QUAD $0x5c5c5c5c5c5c5c5c // .space 16, '\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + //0x000093b0 .p2align 4, 0x90 + //0x000093b0 _advance_string_default + 0x55, //0x000093b0 pushq %rbp + 0x48, 0x89, 0xe5, //0x000093b1 movq %rsp, %rbp + 0x41, 0x57, //0x000093b4 pushq %r15 + 0x41, 0x56, //0x000093b6 pushq %r14 + 0x41, 0x55, //0x000093b8 pushq %r13 + 0x41, 0x54, //0x000093ba pushq %r12 + 0x53, //0x000093bc pushq %rbx + 0x50, //0x000093bd pushq %rax + 0x4c, 0x8b, 0x7f, 0x08, //0x000093be movq $8(%rdi), %r15 + 0x49, 0x29, 0xf7, //0x000093c2 subq %rsi, %r15 + 0x0f, 0x84, 0x81, 0x03, 0x00, 0x00, //0x000093c5 je LBB40_17 + 0x4c, 0x8b, 0x0f, //0x000093cb movq (%rdi), %r9 + 0x48, 0xc7, 0x02, 0xff, 0xff, 0xff, 0xff, //0x000093ce movq $-1, (%rdx) + 0x49, 0x83, 0xff, 0x40, //0x000093d5 cmpq $64, %r15 + 0x0f, 0x82, 0xf8, 0x01, 0x00, 0x00, //0x000093d9 jb LBB40_18 + 0x48, 0x89, 0xf7, //0x000093df movq %rsi, %rdi + 0x48, 0xf7, 0xd7, //0x000093e2 notq %rdi + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000093e5 movq $-1, $-48(%rbp) + 0x45, 0x31, 0xf6, //0x000093ed xorl %r14d, %r14d + 0x66, 0x0f, 0x6f, 0x05, 0x98, 0xff, 0xff, 0xff, //0x000093f0 movdqa $-104(%rip), %xmm0 /* LCPI40_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x0d, 0xa0, 0xff, 0xff, 0xff, //0x000093f8 movdqa $-96(%rip), %xmm1 /* LCPI40_1+0(%rip) */ + //0x00009400 .p2align 4, 0x90 + //0x00009400 LBB40_3 + 0xf3, 0x41, 0x0f, 0x6f, 0x14, 0x31, //0x00009400 movdqu (%r9,%rsi), %xmm2 + 0xf3, 0x41, 0x0f, 0x6f, 0x5c, 0x31, 0x10, //0x00009406 movdqu $16(%r9,%rsi), %xmm3 + 0xf3, 0x41, 0x0f, 0x6f, 0x64, 0x31, 0x20, //0x0000940d movdqu $32(%r9,%rsi), %xmm4 + 0xf3, 0x41, 0x0f, 0x6f, 0x6c, 0x31, 0x30, //0x00009414 movdqu $48(%r9,%rsi), %xmm5 + 0x66, 0x0f, 0x6f, 0xf2, //0x0000941b movdqa %xmm2, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000941f pcmpeqb %xmm0, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xe6, //0x00009423 pmovmskb %xmm6, %r12d + 0x66, 0x0f, 0x6f, 0xf3, //0x00009428 movdqa %xmm3, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x0000942c pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xde, //0x00009430 pmovmskb %xmm6, %ebx + 0x66, 0x0f, 0x6f, 0xf4, //0x00009434 movdqa %xmm4, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009438 pcmpeqb %xmm0, %xmm6 + 0x66, 0x0f, 0xd7, 0xc6, //0x0000943c pmovmskb %xmm6, %eax + 0x66, 0x0f, 0x6f, 0xf5, //0x00009440 movdqa %xmm5, %xmm6 + 0x66, 0x0f, 0x74, 0xf0, //0x00009444 pcmpeqb %xmm0, %xmm6 + 0x66, 0x44, 0x0f, 0xd7, 0xc6, //0x00009448 pmovmskb %xmm6, %r8d + 0x66, 0x0f, 0x74, 0xd1, //0x0000944d pcmpeqb %xmm1, %xmm2 + 0x66, 0x44, 0x0f, 0xd7, 0xea, //0x00009451 pmovmskb %xmm2, %r13d + 0x66, 0x0f, 0x74, 0xd9, //0x00009456 pcmpeqb %xmm1, %xmm3 + 0x66, 0x0f, 0xd7, 0xcb, //0x0000945a pmovmskb %xmm3, %ecx + 0x66, 0x0f, 0x74, 0xe1, //0x0000945e pcmpeqb %xmm1, %xmm4 + 0x66, 0x44, 0x0f, 0xd7, 0xd4, //0x00009462 pmovmskb %xmm4, %r10d + 0x66, 0x0f, 0x74, 0xe9, //0x00009467 pcmpeqb %xmm1, %xmm5 + 0x66, 0x44, 0x0f, 0xd7, 0xdd, //0x0000946b pmovmskb %xmm5, %r11d + 0x49, 0xc1, 0xe0, 0x30, //0x00009470 shlq $48, %r8 + 0x48, 0xc1, 0xe0, 0x20, //0x00009474 shlq $32, %rax + 0x4c, 0x09, 0xc0, //0x00009478 orq %r8, %rax + 0x48, 0xc1, 0xe3, 0x10, //0x0000947b shlq $16, %rbx + 0x48, 0x09, 0xc3, //0x0000947f orq %rax, %rbx + 0x49, 0x09, 0xdc, //0x00009482 orq %rbx, %r12 + 0x49, 0xc1, 0xe3, 0x30, //0x00009485 shlq $48, %r11 + 0x49, 0xc1, 0xe2, 0x20, //0x00009489 shlq $32, %r10 + 0x4d, 0x09, 0xda, //0x0000948d orq %r11, %r10 + 0x48, 0xc1, 0xe1, 0x10, //0x00009490 shlq $16, %rcx + 0x4c, 0x09, 0xd1, //0x00009494 orq %r10, %rcx + 0x49, 0x09, 0xcd, //0x00009497 orq %rcx, %r13 + 0x0f, 0x85, 0x30, 0x00, 0x00, 0x00, //0x0000949a jne LBB40_7 + 0x4d, 0x85, 0xf6, //0x000094a0 testq %r14, %r14 + 0x0f, 0x85, 0x40, 0x00, 0x00, 0x00, //0x000094a3 jne LBB40_9 + 0x45, 0x31, 0xf6, //0x000094a9 xorl %r14d, %r14d + 0x4d, 0x85, 0xe4, //0x000094ac testq %r12, %r12 + 0x0f, 0x85, 0x86, 0x00, 0x00, 0x00, //0x000094af jne LBB40_10 + //0x000094b5 LBB40_6 + 0x49, 0x83, 0xc7, 0xc0, //0x000094b5 addq $-64, %r15 + 0x48, 0x83, 0xc7, 0xc0, //0x000094b9 addq $-64, %rdi + 0x48, 0x83, 0xc6, 0x40, //0x000094bd addq $64, %rsi + 0x49, 0x83, 0xff, 0x3f, //0x000094c1 cmpq $63, %r15 + 0x0f, 0x87, 0x35, 0xff, 0xff, 0xff, //0x000094c5 ja LBB40_3 + 0xe9, 0x81, 0x00, 0x00, 0x00, //0x000094cb jmp LBB40_12 + //0x000094d0 LBB40_7 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000094d0 cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000094d5 jne LBB40_9 + 0x49, 0x0f, 0xbc, 0xc5, //0x000094db bsfq %r13, %rax + 0x48, 0x01, 0xf0, //0x000094df addq %rsi, %rax + 0x48, 0x89, 0x45, 0xd0, //0x000094e2 movq %rax, $-48(%rbp) + 0x48, 0x89, 0x02, //0x000094e6 movq %rax, (%rdx) + //0x000094e9 LBB40_9 + 0x4c, 0x89, 0xf0, //0x000094e9 movq %r14, %rax + 0x48, 0xf7, 0xd0, //0x000094ec notq %rax + 0x4c, 0x21, 0xe8, //0x000094ef andq %r13, %rax + 0x4c, 0x8d, 0x04, 0x00, //0x000094f2 leaq (%rax,%rax), %r8 + 0x4d, 0x09, 0xf0, //0x000094f6 orq %r14, %r8 + 0x4c, 0x89, 0xc1, //0x000094f9 movq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x000094fc notq %rcx + 0x4c, 0x21, 0xe9, //0x000094ff andq %r13, %rcx + 0x48, 0xbb, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009502 movabsq $-6148914691236517206, %rbx + 0x48, 0x21, 0xd9, //0x0000950c andq %rbx, %rcx + 0x45, 0x31, 0xf6, //0x0000950f xorl %r14d, %r14d + 0x48, 0x01, 0xc1, //0x00009512 addq %rax, %rcx + 0x41, 0x0f, 0x92, 0xc6, //0x00009515 setb %r14b + 0x48, 0x01, 0xc9, //0x00009519 addq %rcx, %rcx + 0x48, 0xb8, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, //0x0000951c movabsq $6148914691236517205, %rax + 0x48, 0x31, 0xc1, //0x00009526 xorq %rax, %rcx + 0x4c, 0x21, 0xc1, //0x00009529 andq %r8, %rcx + 0x48, 0xf7, 0xd1, //0x0000952c notq %rcx + 0x49, 0x21, 0xcc, //0x0000952f andq %rcx, %r12 + 0x4d, 0x85, 0xe4, //0x00009532 testq %r12, %r12 + 0x0f, 0x84, 0x7a, 0xff, 0xff, 0xff, //0x00009535 je LBB40_6 + //0x0000953b LBB40_10 + 0x49, 0x0f, 0xbc, 0xc4, //0x0000953b bsfq %r12, %rax + 0x48, 0x29, 0xf8, //0x0000953f subq %rdi, %rax + //0x00009542 LBB40_11 + 0x48, 0x83, 0xc4, 0x08, //0x00009542 addq $8, %rsp + 0x5b, //0x00009546 popq %rbx + 0x41, 0x5c, //0x00009547 popq %r12 + 0x41, 0x5d, //0x00009549 popq %r13 + 0x41, 0x5e, //0x0000954b popq %r14 + 0x41, 0x5f, //0x0000954d popq %r15 + 0x5d, //0x0000954f popq %rbp + 0xc3, //0x00009550 retq + //0x00009551 LBB40_12 + 0x4c, 0x01, 0xce, //0x00009551 addq %r9, %rsi + 0x49, 0x83, 0xff, 0x20, //0x00009554 cmpq $32, %r15 + 0x0f, 0x82, 0xf6, 0x00, 0x00, 0x00, //0x00009558 jb LBB40_23 + //0x0000955e LBB40_13 + 0xf3, 0x0f, 0x6f, 0x06, //0x0000955e movdqu (%rsi), %xmm0 + 0xf3, 0x0f, 0x6f, 0x4e, 0x10, //0x00009562 movdqu $16(%rsi), %xmm1 + 0x66, 0x0f, 0x6f, 0x15, 0x21, 0xfe, 0xff, 0xff, //0x00009567 movdqa $-479(%rip), %xmm2 /* LCPI40_0+0(%rip) */ + 0x66, 0x0f, 0x6f, 0x1d, 0x29, 0xfe, 0xff, 0xff, //0x0000956f movdqa $-471(%rip), %xmm3 /* LCPI40_1+0(%rip) */ + 0x66, 0x0f, 0x6f, 0xe0, //0x00009577 movdqa %xmm0, %xmm4 + 0x66, 0x0f, 0x74, 0xe2, //0x0000957b pcmpeqb %xmm2, %xmm4 + 0x66, 0x0f, 0xd7, 0xfc, //0x0000957f pmovmskb %xmm4, %edi + 0x66, 0x0f, 0x74, 0xd1, //0x00009583 pcmpeqb %xmm1, %xmm2 + 0x66, 0x0f, 0xd7, 0xca, //0x00009587 pmovmskb %xmm2, %ecx + 0x66, 0x0f, 0x74, 0xc3, //0x0000958b pcmpeqb %xmm3, %xmm0 + 0x66, 0x0f, 0xd7, 0xc0, //0x0000958f pmovmskb %xmm0, %eax + 0x66, 0x0f, 0x74, 0xcb, //0x00009593 pcmpeqb %xmm3, %xmm1 + 0x66, 0x0f, 0xd7, 0xd9, //0x00009597 pmovmskb %xmm1, %ebx + 0x48, 0xc1, 0xe1, 0x10, //0x0000959b shlq $16, %rcx + 0x48, 0x09, 0xcf, //0x0000959f orq %rcx, %rdi + 0x48, 0xc1, 0xe3, 0x10, //0x000095a2 shlq $16, %rbx + 0x48, 0x09, 0xd8, //0x000095a6 orq %rbx, %rax + 0x0f, 0x85, 0x45, 0x00, 0x00, 0x00, //0x000095a9 jne LBB40_19 + 0x4d, 0x85, 0xf6, //0x000095af testq %r14, %r14 + 0x0f, 0x85, 0x5b, 0x00, 0x00, 0x00, //0x000095b2 jne LBB40_21 + 0x45, 0x31, 0xf6, //0x000095b8 xorl %r14d, %r14d + 0x48, 0x85, 0xff, //0x000095bb testq %rdi, %rdi + 0x0f, 0x84, 0x88, 0x00, 0x00, 0x00, //0x000095be je LBB40_22 + //0x000095c4 LBB40_16 + 0x48, 0x0f, 0xbc, 0xc7, //0x000095c4 bsfq %rdi, %rax + 0x4c, 0x29, 0xce, //0x000095c8 subq %r9, %rsi + 0x48, 0x01, 0xf0, //0x000095cb addq %rsi, %rax + 0x48, 0x83, 0xc0, 0x01, //0x000095ce addq $1, %rax + 0xe9, 0x6b, 0xff, 0xff, 0xff, //0x000095d2 jmp LBB40_11 + //0x000095d7 LBB40_18 + 0x4c, 0x01, 0xce, //0x000095d7 addq %r9, %rsi + 0x48, 0xc7, 0x45, 0xd0, 0xff, 0xff, 0xff, 0xff, //0x000095da movq $-1, $-48(%rbp) + 0x45, 0x31, 0xf6, //0x000095e2 xorl %r14d, %r14d + 0x49, 0x83, 0xff, 0x20, //0x000095e5 cmpq $32, %r15 + 0x0f, 0x83, 0x6f, 0xff, 0xff, 0xff, //0x000095e9 jae LBB40_13 + 0xe9, 0x60, 0x00, 0x00, 0x00, //0x000095ef jmp LBB40_23 + //0x000095f4 LBB40_19 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000095f4 cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x14, 0x00, 0x00, 0x00, //0x000095f9 jne LBB40_21 + 0x48, 0x89, 0xf1, //0x000095ff movq %rsi, %rcx + 0x4c, 0x29, 0xc9, //0x00009602 subq %r9, %rcx + 0x48, 0x0f, 0xbc, 0xd8, //0x00009605 bsfq %rax, %rbx + 0x48, 0x01, 0xcb, //0x00009609 addq %rcx, %rbx + 0x48, 0x89, 0x5d, 0xd0, //0x0000960c movq %rbx, $-48(%rbp) + 0x48, 0x89, 0x1a, //0x00009610 movq %rbx, (%rdx) + //0x00009613 LBB40_21 + 0x44, 0x89, 0xf1, //0x00009613 movl %r14d, %ecx + 0xf7, 0xd1, //0x00009616 notl %ecx + 0x21, 0xc1, //0x00009618 andl %eax, %ecx + 0x45, 0x8d, 0x04, 0x4e, //0x0000961a leal (%r14,%rcx,2), %r8d + 0x8d, 0x1c, 0x09, //0x0000961e leal (%rcx,%rcx), %ebx + 0xf7, 0xd3, //0x00009621 notl %ebx + 0x21, 0xc3, //0x00009623 andl %eax, %ebx + 0x81, 0xe3, 0xaa, 0xaa, 0xaa, 0xaa, //0x00009625 andl $-1431655766, %ebx + 0x45, 0x31, 0xf6, //0x0000962b xorl %r14d, %r14d + 0x01, 0xcb, //0x0000962e addl %ecx, %ebx + 0x41, 0x0f, 0x92, 0xc6, //0x00009630 setb %r14b + 0x01, 0xdb, //0x00009634 addl %ebx, %ebx + 0x81, 0xf3, 0x55, 0x55, 0x55, 0x55, //0x00009636 xorl $1431655765, %ebx + 0x44, 0x21, 0xc3, //0x0000963c andl %r8d, %ebx + 0xf7, 0xd3, //0x0000963f notl %ebx + 0x21, 0xdf, //0x00009641 andl %ebx, %edi + 0x48, 0x85, 0xff, //0x00009643 testq %rdi, %rdi + 0x0f, 0x85, 0x78, 0xff, 0xff, 0xff, //0x00009646 jne LBB40_16 + //0x0000964c LBB40_22 + 0x48, 0x83, 0xc6, 0x20, //0x0000964c addq $32, %rsi + 0x49, 0x83, 0xc7, 0xe0, //0x00009650 addq $-32, %r15 + //0x00009654 LBB40_23 + 0x4d, 0x85, 0xf6, //0x00009654 testq %r14, %r14 + 0x0f, 0x85, 0xb5, 0x00, 0x00, 0x00, //0x00009657 jne LBB40_37 + 0x4d, 0x85, 0xff, //0x0000965d testq %r15, %r15 + 0x0f, 0x84, 0xa1, 0x00, 0x00, 0x00, //0x00009660 je LBB40_36 + //0x00009666 LBB40_25 + 0x4c, 0x89, 0xcf, //0x00009666 movq %r9, %rdi + 0x48, 0xf7, 0xd7, //0x00009669 notq %rdi + 0x48, 0x83, 0xc7, 0x01, //0x0000966c addq $1, %rdi + //0x00009670 LBB40_26 + 0x31, 0xc0, //0x00009670 xorl %eax, %eax + //0x00009672 LBB40_27 + 0x48, 0x89, 0xc3, //0x00009672 movq %rax, %rbx + 0x0f, 0xb6, 0x0c, 0x06, //0x00009675 movzbl (%rsi,%rax), %ecx + 0x80, 0xf9, 0x22, //0x00009679 cmpb $34, %cl + 0x0f, 0x84, 0x7e, 0x00, 0x00, 0x00, //0x0000967c je LBB40_35 + 0x80, 0xf9, 0x5c, //0x00009682 cmpb $92, %cl + 0x0f, 0x84, 0x12, 0x00, 0x00, 0x00, //0x00009685 je LBB40_30 + 0x48, 0x8d, 0x43, 0x01, //0x0000968b leaq $1(%rbx), %rax + 0x49, 0x39, 0xc7, //0x0000968f cmpq %rax, %r15 + 0x0f, 0x85, 0xda, 0xff, 0xff, 0xff, //0x00009692 jne LBB40_27 + 0xe9, 0x53, 0x00, 0x00, 0x00, //0x00009698 jmp LBB40_34 + //0x0000969d LBB40_30 + 0x49, 0x8d, 0x4f, 0xff, //0x0000969d leaq $-1(%r15), %rcx + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000096a1 movq $-1, %rax + 0x48, 0x39, 0xd9, //0x000096a8 cmpq %rbx, %rcx + 0x0f, 0x84, 0x91, 0xfe, 0xff, 0xff, //0x000096ab je LBB40_11 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x000096b1 cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x0e, 0x00, 0x00, 0x00, //0x000096b6 jne LBB40_33 + 0x48, 0x8d, 0x0c, 0x37, //0x000096bc leaq (%rdi,%rsi), %rcx + 0x48, 0x01, 0xd9, //0x000096c0 addq %rbx, %rcx + 0x48, 0x89, 0x4d, 0xd0, //0x000096c3 movq %rcx, $-48(%rbp) + 0x48, 0x89, 0x0a, //0x000096c7 movq %rcx, (%rdx) + //0x000096ca LBB40_33 + 0x48, 0x01, 0xde, //0x000096ca addq %rbx, %rsi + 0x48, 0x83, 0xc6, 0x02, //0x000096cd addq $2, %rsi + 0x4c, 0x89, 0xf9, //0x000096d1 movq %r15, %rcx + 0x48, 0x29, 0xd9, //0x000096d4 subq %rbx, %rcx + 0x48, 0x83, 0xc1, 0xfe, //0x000096d7 addq $-2, %rcx + 0x49, 0x83, 0xc7, 0xfe, //0x000096db addq $-2, %r15 + 0x49, 0x39, 0xdf, //0x000096df cmpq %rbx, %r15 + 0x49, 0x89, 0xcf, //0x000096e2 movq %rcx, %r15 + 0x0f, 0x85, 0x85, 0xff, 0xff, 0xff, //0x000096e5 jne LBB40_26 + 0xe9, 0x52, 0xfe, 0xff, 0xff, //0x000096eb jmp LBB40_11 + //0x000096f0 LBB40_34 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x000096f0 movq $-1, %rax + 0x80, 0xf9, 0x22, //0x000096f7 cmpb $34, %cl + 0x0f, 0x85, 0x42, 0xfe, 0xff, 0xff, //0x000096fa jne LBB40_11 + //0x00009700 LBB40_35 + 0x48, 0x01, 0xde, //0x00009700 addq %rbx, %rsi + 0x48, 0x83, 0xc6, 0x01, //0x00009703 addq $1, %rsi + //0x00009707 LBB40_36 + 0x4c, 0x29, 0xce, //0x00009707 subq %r9, %rsi + 0x48, 0x89, 0xf0, //0x0000970a movq %rsi, %rax + 0xe9, 0x30, 0xfe, 0xff, 0xff, //0x0000970d jmp LBB40_11 + //0x00009712 LBB40_37 + 0x4d, 0x85, 0xff, //0x00009712 testq %r15, %r15 + 0x0f, 0x84, 0x31, 0x00, 0x00, 0x00, //0x00009715 je LBB40_17 + 0x48, 0x83, 0x7d, 0xd0, 0xff, //0x0000971b cmpq $-1, $-48(%rbp) + 0x0f, 0x85, 0x10, 0x00, 0x00, 0x00, //0x00009720 jne LBB40_40 + 0x4c, 0x89, 0xc8, //0x00009726 movq %r9, %rax + 0x48, 0xf7, 0xd0, //0x00009729 notq %rax + 0x48, 0x01, 0xf0, //0x0000972c addq %rsi, %rax + 0x48, 0x89, 0x45, 0xd0, //0x0000972f movq %rax, $-48(%rbp) + 0x48, 0x89, 0x02, //0x00009733 movq %rax, (%rdx) + //0x00009736 LBB40_40 + 0x48, 0x83, 0xc6, 0x01, //0x00009736 addq $1, %rsi + 0x49, 0x83, 0xc7, 0xff, //0x0000973a addq $-1, %r15 + 0x4d, 0x85, 0xff, //0x0000973e testq %r15, %r15 + 0x0f, 0x85, 0x1f, 0xff, 0xff, 0xff, //0x00009741 jne LBB40_25 + 0xe9, 0xbb, 0xff, 0xff, 0xff, //0x00009747 jmp LBB40_36 + //0x0000974c LBB40_17 + 0x48, 0xc7, 0xc0, 0xff, 0xff, 0xff, 0xff, //0x0000974c movq $-1, %rax + 0xe9, 0xea, 0xfd, 0xff, 0xff, //0x00009753 jmp LBB40_11 + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, //0x00009758 .p2align 4, 0x90 + //0x00009760 _unescape + 0x55, //0x00009760 pushq %rbp + 0x48, 0x89, 0xe5, //0x00009761 movq %rsp, %rbp + 0x41, 0x57, //0x00009764 pushq %r15 + 0x41, 0x56, //0x00009766 pushq %r14 + 0x41, 0x55, //0x00009768 pushq %r13 + 0x41, 0x54, //0x0000976a pushq %r12 + 0x53, //0x0000976c pushq %rbx + 0x50, //0x0000976d pushq %rax + 0x4c, 0x8b, 0x2f, //0x0000976e movq (%rdi), %r13 + 0x4c, 0x29, 0xee, //0x00009771 subq %r13, %rsi + 0x48, 0xc7, 0xc3, 0xff, 0xff, 0xff, 0xff, //0x00009774 movq $-1, %rbx + 0x48, 0x85, 0xf6, //0x0000977b testq %rsi, %rsi + 0x0f, 0x8e, 0xcf, 0x00, 0x00, 0x00, //0x0000977e jle LBB41_13 + 0x49, 0x89, 0xd6, //0x00009784 movq %rdx, %r14 + 0x49, 0x89, 0xff, //0x00009787 movq %rdi, %r15 + 0x49, 0x8d, 0x45, 0x01, //0x0000978a leaq $1(%r13), %rax + 0x41, 0x0f, 0xb6, 0x4d, 0x01, //0x0000978e movzbl $1(%r13), %ecx + 0x48, 0x8d, 0x15, 0x36, 0x77, 0x00, 0x00, //0x00009793 leaq $30518(%rip), %rdx /* __UnquoteTab+0(%rip) */ + 0x8a, 0x0c, 0x11, //0x0000979a movb (%rcx,%rdx), %cl + 0x80, 0xf9, 0xff, //0x0000979d cmpb $-1, %cl + 0x0f, 0x84, 0x17, 0x00, 0x00, 0x00, //0x000097a0 je LBB41_4 + 0x84, 0xc9, //0x000097a6 testb %cl, %cl + 0x0f, 0x85, 0x21, 0x00, 0x00, 0x00, //0x000097a8 jne LBB41_6 + 0x49, 0x89, 0x07, //0x000097ae movq %rax, (%r15) + 0x48, 0xc7, 0xc3, 0xfd, 0xff, 0xff, 0xff, //0x000097b1 movq $-3, %rbx + 0xe9, 0x96, 0x00, 0x00, 0x00, //0x000097b8 jmp LBB41_13 + //0x000097bd LBB41_4 + 0x48, 0x83, 0xfe, 0x03, //0x000097bd cmpq $3, %rsi + 0x0f, 0x8f, 0x19, 0x00, 0x00, 0x00, //0x000097c1 jg LBB41_7 + 0x49, 0x89, 0x07, //0x000097c7 movq %rax, (%r15) + 0xe9, 0x84, 0x00, 0x00, 0x00, //0x000097ca jmp LBB41_13 + //0x000097cf LBB41_6 + 0x41, 0x88, 0x0e, //0x000097cf movb %cl, (%r14) + 0x49, 0x83, 0x07, 0x02, //0x000097d2 addq $2, (%r15) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000097d6 movl $1, %ebx + 0xe9, 0x73, 0x00, 0x00, 0x00, //0x000097db jmp LBB41_13 + //0x000097e0 LBB41_7 + 0x41, 0x8b, 0x4d, 0x02, //0x000097e0 movl $2(%r13), %ecx + 0x89, 0xc8, //0x000097e4 movl %ecx, %eax + 0xf7, 0xd0, //0x000097e6 notl %eax + 0x8d, 0x91, 0xd0, 0xcf, 0xcf, 0xcf, //0x000097e8 leal $-808464432(%rcx), %edx + 0x25, 0x80, 0x80, 0x80, 0x80, //0x000097ee andl $-2139062144, %eax + 0x85, 0xd0, //0x000097f3 testl %edx, %eax + 0x0f, 0x85, 0x4a, 0x00, 0x00, 0x00, //0x000097f5 jne LBB41_11 + 0x8d, 0x91, 0x19, 0x19, 0x19, 0x19, //0x000097fb leal $421075225(%rcx), %edx + 0x09, 0xca, //0x00009801 orl %ecx, %edx + 0xf7, 0xc2, 0x80, 0x80, 0x80, 0x80, //0x00009803 testl $-2139062144, %edx + 0x0f, 0x85, 0x36, 0x00, 0x00, 0x00, //0x00009809 jne LBB41_11 + 0x89, 0xca, //0x0000980f movl %ecx, %edx + 0x81, 0xe2, 0x7f, 0x7f, 0x7f, 0x7f, //0x00009811 andl $2139062143, %edx + 0xbf, 0xc0, 0xc0, 0xc0, 0xc0, //0x00009817 movl $-1061109568, %edi + 0x29, 0xd7, //0x0000981c subl %edx, %edi + 0x8d, 0x9a, 0x46, 0x46, 0x46, 0x46, //0x0000981e leal $1179010630(%rdx), %ebx + 0x21, 0xc7, //0x00009824 andl %eax, %edi + 0x85, 0xdf, //0x00009826 testl %ebx, %edi + 0x0f, 0x85, 0x17, 0x00, 0x00, 0x00, //0x00009828 jne LBB41_11 + 0xbf, 0xe0, 0xe0, 0xe0, 0xe0, //0x0000982e movl $-522133280, %edi + 0x29, 0xd7, //0x00009833 subl %edx, %edi + 0x81, 0xc2, 0x39, 0x39, 0x39, 0x39, //0x00009835 addl $960051513, %edx + 0x21, 0xf8, //0x0000983b andl %edi, %eax + 0x85, 0xd0, //0x0000983d testl %edx, %eax + 0x0f, 0x84, 0x20, 0x00, 0x00, 0x00, //0x0000983f je LBB41_14 + //0x00009845 LBB41_11 + 0x49, 0x83, 0xc5, 0x02, //0x00009845 addq $2, %r13 + 0x4d, 0x89, 0x2f, //0x00009849 movq %r13, (%r15) + //0x0000984c LBB41_12 + 0x48, 0xc7, 0xc3, 0xfe, 0xff, 0xff, 0xff, //0x0000984c movq $-2, %rbx + //0x00009853 LBB41_13 + 0x48, 0x89, 0xd8, //0x00009853 movq %rbx, %rax + 0x48, 0x83, 0xc4, 0x08, //0x00009856 addq $8, %rsp + 0x5b, //0x0000985a popq %rbx + 0x41, 0x5c, //0x0000985b popq %r12 + 0x41, 0x5d, //0x0000985d popq %r13 + 0x41, 0x5e, //0x0000985f popq %r14 + 0x41, 0x5f, //0x00009861 popq %r15 + 0x5d, //0x00009863 popq %rbp + 0xc3, //0x00009864 retq + //0x00009865 LBB41_14 + 0x0f, 0xc9, //0x00009865 bswapl %ecx + 0x89, 0xc8, //0x00009867 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009869 shrl $4, %eax + 0xf7, 0xd0, //0x0000986c notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x0000986e andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00009873 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x00009876 andl $252645135, %ecx + 0x01, 0xc1, //0x0000987c addl %eax, %ecx + 0x89, 0xc8, //0x0000987e movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009880 shrl $4, %eax + 0x09, 0xc8, //0x00009883 orl %ecx, %eax + 0x89, 0xc1, //0x00009885 movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x00009887 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x0000988a andl $65280, %ecx + 0x44, 0x0f, 0xb6, 0xe0, //0x00009890 movzbl %al, %r12d + 0x41, 0x09, 0xcc, //0x00009894 orl %ecx, %r12d + 0x49, 0x8d, 0x55, 0x06, //0x00009897 leaq $6(%r13), %rdx + 0x49, 0x89, 0x17, //0x0000989b movq %rdx, (%r15) + 0x41, 0x83, 0xfc, 0x7f, //0x0000989e cmpl $127, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000098a2 jbe LBB41_18 + 0x41, 0x81, 0xfc, 0xff, 0x07, 0x00, 0x00, //0x000098a8 cmpl $2047, %r12d + 0x0f, 0x86, 0x4c, 0x00, 0x00, 0x00, //0x000098af jbe LBB41_19 + 0x89, 0xc7, //0x000098b5 movl %eax, %edi + 0x81, 0xe7, 0x00, 0x00, 0xf8, 0x00, //0x000098b7 andl $16252928, %edi + 0x81, 0xff, 0x00, 0x00, 0xd8, 0x00, //0x000098bd cmpl $14155776, %edi + 0x0f, 0x84, 0x55, 0x00, 0x00, 0x00, //0x000098c3 je LBB41_20 + 0xc1, 0xe9, 0x0c, //0x000098c9 shrl $12, %ecx + 0x80, 0xc9, 0xe0, //0x000098cc orb $-32, %cl + 0x41, 0x88, 0x0e, //0x000098cf movb %cl, (%r14) + 0x41, 0xc1, 0xec, 0x06, //0x000098d2 shrl $6, %r12d + 0x41, 0x80, 0xe4, 0x3f, //0x000098d6 andb $63, %r12b + 0x41, 0x80, 0xcc, 0x80, //0x000098da orb $-128, %r12b + 0x45, 0x88, 0x66, 0x01, //0x000098de movb %r12b, $1(%r14) + 0x24, 0x3f, //0x000098e2 andb $63, %al + 0x0c, 0x80, //0x000098e4 orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x000098e6 movb %al, $2(%r14) + 0xbb, 0x03, 0x00, 0x00, 0x00, //0x000098ea movl $3, %ebx + 0xe9, 0x5f, 0xff, 0xff, 0xff, //0x000098ef jmp LBB41_13 + //0x000098f4 LBB41_18 + 0x41, 0x88, 0x06, //0x000098f4 movb %al, (%r14) + 0xbb, 0x01, 0x00, 0x00, 0x00, //0x000098f7 movl $1, %ebx + 0xe9, 0x52, 0xff, 0xff, 0xff, //0x000098fc jmp LBB41_13 + //0x00009901 LBB41_19 + 0x41, 0xc1, 0xec, 0x06, //0x00009901 shrl $6, %r12d + 0x41, 0x80, 0xcc, 0xc0, //0x00009905 orb $-64, %r12b + 0x45, 0x88, 0x26, //0x00009909 movb %r12b, (%r14) + 0x24, 0x3f, //0x0000990c andb $63, %al + 0x0c, 0x80, //0x0000990e orb $-128, %al + 0x41, 0x88, 0x46, 0x01, //0x00009910 movb %al, $1(%r14) + 0xbb, 0x02, 0x00, 0x00, 0x00, //0x00009914 movl $2, %ebx + 0xe9, 0x35, 0xff, 0xff, 0xff, //0x00009919 jmp LBB41_13 + //0x0000991e LBB41_20 + 0x48, 0xc7, 0xc3, 0xfc, 0xff, 0xff, 0xff, //0x0000991e movq $-4, %rbx + 0x48, 0x83, 0xfe, 0x06, //0x00009925 cmpq $6, %rsi + 0x0f, 0x8c, 0x24, 0xff, 0xff, 0xff, //0x00009929 jl LBB41_13 + 0x41, 0x81, 0xfc, 0xff, 0xdb, 0x00, 0x00, //0x0000992f cmpl $56319, %r12d + 0x0f, 0x87, 0x17, 0xff, 0xff, 0xff, //0x00009936 ja LBB41_13 + 0x80, 0x3a, 0x5c, //0x0000993c cmpb $92, (%rdx) + 0x0f, 0x85, 0x0e, 0xff, 0xff, 0xff, //0x0000993f jne LBB41_13 + 0x41, 0x80, 0x7d, 0x07, 0x75, //0x00009945 cmpb $117, $7(%r13) + 0x0f, 0x85, 0x03, 0xff, 0xff, 0xff, //0x0000994a jne LBB41_13 + 0x49, 0x8d, 0x7d, 0x08, //0x00009950 leaq $8(%r13), %rdi + 0x48, 0x89, 0x7d, 0xd0, //0x00009954 movq %rdi, $-48(%rbp) + 0xe8, 0x13, 0x8c, 0xff, 0xff, //0x00009958 callq _unhex16_is + 0x84, 0xc0, //0x0000995d testb %al, %al + 0x0f, 0x84, 0x9a, 0x00, 0x00, 0x00, //0x0000995f je LBB41_27 + 0x48, 0x8b, 0x45, 0xd0, //0x00009965 movq $-48(%rbp), %rax + 0x8b, 0x08, //0x00009969 movl (%rax), %ecx + 0x0f, 0xc9, //0x0000996b bswapl %ecx + 0x89, 0xc8, //0x0000996d movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x0000996f shrl $4, %eax + 0xf7, 0xd0, //0x00009972 notl %eax + 0x25, 0x01, 0x01, 0x01, 0x01, //0x00009974 andl $16843009, %eax + 0x8d, 0x04, 0xc0, //0x00009979 leal (%rax,%rax,8), %eax + 0x81, 0xe1, 0x0f, 0x0f, 0x0f, 0x0f, //0x0000997c andl $252645135, %ecx + 0x01, 0xc1, //0x00009982 addl %eax, %ecx + 0x89, 0xc8, //0x00009984 movl %ecx, %eax + 0xc1, 0xe8, 0x04, //0x00009986 shrl $4, %eax + 0x09, 0xc8, //0x00009989 orl %ecx, %eax + 0x89, 0xc1, //0x0000998b movl %eax, %ecx + 0x81, 0xe1, 0x00, 0x00, 0xfc, 0x00, //0x0000998d andl $16515072, %ecx + 0x81, 0xf9, 0x00, 0x00, 0xdc, 0x00, //0x00009993 cmpl $14417920, %ecx + 0x0f, 0x85, 0x6c, 0x00, 0x00, 0x00, //0x00009999 jne LBB41_28 + 0x89, 0xc1, //0x0000999f movl %eax, %ecx + 0xc1, 0xe9, 0x08, //0x000099a1 shrl $8, %ecx + 0x81, 0xe1, 0x00, 0xff, 0x00, 0x00, //0x000099a4 andl $65280, %ecx + 0x0f, 0xb6, 0xc0, //0x000099aa movzbl %al, %eax + 0x09, 0xc8, //0x000099ad orl %ecx, %eax + 0x41, 0xc1, 0xe4, 0x0a, //0x000099af shll $10, %r12d + 0x42, 0x8d, 0x0c, 0x20, //0x000099b3 leal (%rax,%r12), %ecx + 0x44, 0x01, 0xe0, //0x000099b7 addl %r12d, %eax + 0x05, 0x00, 0x24, 0xa0, 0xfc, //0x000099ba addl $-56613888, %eax + 0x89, 0xc2, //0x000099bf movl %eax, %edx + 0xc1, 0xea, 0x12, //0x000099c1 shrl $18, %edx + 0x80, 0xca, 0xf0, //0x000099c4 orb $-16, %dl + 0x41, 0x88, 0x16, //0x000099c7 movb %dl, (%r14) + 0x89, 0xc2, //0x000099ca movl %eax, %edx + 0xc1, 0xea, 0x0c, //0x000099cc shrl $12, %edx + 0x80, 0xe2, 0x3f, //0x000099cf andb $63, %dl + 0x80, 0xca, 0x80, //0x000099d2 orb $-128, %dl + 0x41, 0x88, 0x56, 0x01, //0x000099d5 movb %dl, $1(%r14) + 0xc1, 0xe8, 0x06, //0x000099d9 shrl $6, %eax + 0x24, 0x3f, //0x000099dc andb $63, %al + 0x0c, 0x80, //0x000099de orb $-128, %al + 0x41, 0x88, 0x46, 0x02, //0x000099e0 movb %al, $2(%r14) + 0x80, 0xe1, 0x3f, //0x000099e4 andb $63, %cl + 0x80, 0xc9, 0x80, //0x000099e7 orb $-128, %cl + 0x41, 0x88, 0x4e, 0x03, //0x000099ea movb %cl, $3(%r14) + 0x49, 0x83, 0xc5, 0x0c, //0x000099ee addq $12, %r13 + 0x4d, 0x89, 0x2f, //0x000099f2 movq %r13, (%r15) + 0xbb, 0x04, 0x00, 0x00, 0x00, //0x000099f5 movl $4, %ebx + 0xe9, 0x54, 0xfe, 0xff, 0xff, //0x000099fa jmp LBB41_13 + //0x000099ff LBB41_27 + 0x48, 0x8b, 0x45, 0xd0, //0x000099ff movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x00009a03 movq %rax, (%r15) + 0xe9, 0x41, 0xfe, 0xff, 0xff, //0x00009a06 jmp LBB41_12 + //0x00009a0b LBB41_28 + 0x48, 0x8b, 0x45, 0xd0, //0x00009a0b movq $-48(%rbp), %rax + 0x49, 0x89, 0x07, //0x00009a0f movq %rax, (%r15) + 0xe9, 0x3c, 0xfe, 0xff, 0xff, //0x00009a12 jmp LBB41_13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00009a17 .p2align 4, 0x00 + //0x00009a20 _POW10_M128_TAB + 0x53, 0xe4, 0x60, 0xcd, 0x69, 0xc8, 0x32, 0x17, //0x00009a20 .quad 1671618768450675795 + 0x88, 0x02, 0x1c, 0x08, 0xa0, 0xd5, 0x8f, 0xfa, //0x00009a28 .quad -391859759250406776 + 0xb4, 0x8e, 0x5c, 0x20, 0x42, 0xbd, 0x7f, 0x0e, //0x00009a30 .quad 1044761730281672372 + 0x95, 0x81, 0x11, 0x05, 0x84, 0xe5, 0x99, 0x9c, //0x00009a38 .quad -7162441377172586091 + 0x61, 0xb2, 0x73, 0xa8, 0x92, 0xac, 0x1f, 0x52, //0x00009a40 .quad 5917638181279478369 + 0xfa, 0xe1, 0x55, 0x06, 0xe5, 0x5e, 0xc0, 0xc3, //0x00009a48 .quad -4341365703038344710 + 0xf9, 0x9e, 0x90, 0x52, 0xb7, 0x97, 0xa7, 0xe6, //0x00009a50 .quad -1826324310255427847 + 0x78, 0x5a, 0xeb, 0x47, 0x9e, 0x76, 0xb0, 0xf4, //0x00009a58 .quad -815021110370542984 + 0x5c, 0x63, 0x9a, 0x93, 0xd2, 0xbe, 0x28, 0x90, //0x00009a60 .quad -8058981721550724260 + 0x8b, 0x18, 0xf3, 0xec, 0x22, 0x4a, 0xee, 0x98, //0x00009a68 .quad -7426917221622671221 + 0x33, 0xfc, 0x80, 0x38, 0x87, 0xee, 0x32, 0x74, //0x00009a70 .quad 8373016921771146291 + 0xae, 0xde, 0x2f, 0xa8, 0xab, 0xdc, 0x29, 0xbf, //0x00009a78 .quad -4671960508600951122 + 0x3f, 0x3b, 0xa1, 0x06, 0x29, 0xaa, 0x3f, 0x11, //0x00009a80 .quad 1242899115359157055 + 0x5a, 0xd6, 0x3b, 0x92, 0xd6, 0x53, 0xf4, 0xee, //0x00009a88 .quad -1228264617323800998 + 0x07, 0xc5, 0x24, 0xa4, 0x59, 0xca, 0xc7, 0x4a, //0x00009a90 .quad 5388497965526861063 + 0xf8, 0x65, 0x65, 0x1b, 0x66, 0xb4, 0x58, 0x95, //0x00009a98 .quad -7685194413468457480 + 0x49, 0xf6, 0x2d, 0x0d, 0xf0, 0xbc, 0x79, 0x5d, //0x00009aa0 .quad 6735622456908576329 + 0x76, 0xbf, 0x3e, 0xa2, 0x7f, 0xe1, 0xae, 0xba, //0x00009aa8 .quad -4994806998408183946 + 0xdc, 0x73, 0x79, 0x10, 0x2c, 0x2c, 0xd8, 0xf4, //0x00009ab0 .quad -803843965719055396 + 0x53, 0x6f, 0xce, 0x8a, 0xdf, 0x99, 0x5a, 0xe9, //0x00009ab8 .quad -1631822729582842029 + 0x69, 0xe8, 0x4b, 0x8a, 0x9b, 0x1b, 0x07, 0x79, //0x00009ac0 .quad 8720969558280366185 + 0x94, 0x05, 0xc1, 0xb6, 0x2b, 0xa0, 0xd8, 0x91, //0x00009ac8 .quad -7937418233630358124 + 0x84, 0xe2, 0xde, 0x6c, 0x82, 0xe2, 0x48, 0x97, //0x00009ad0 .quad -7545532125859093884 + 0xf9, 0x46, 0x71, 0xa4, 0x36, 0xc8, 0x4e, 0xb6, //0x00009ad8 .quad -5310086773610559751 + 0x25, 0x9b, 0x16, 0x08, 0x23, 0x1b, 0x1b, 0xfd, //0x00009ae0 .quad -208543120469091547 + 0xb7, 0x98, 0x8d, 0x4d, 0x44, 0x7a, 0xe2, 0xe3, //0x00009ae8 .quad -2025922448585811785 + 0xf7, 0x20, 0x0e, 0xe5, 0xf5, 0xf0, 0x30, 0xfe, //0x00009af0 .quad -130339450293182217 + 0x72, 0x7f, 0x78, 0xb0, 0x6a, 0x8c, 0x6d, 0x8e, //0x00009af8 .quad -8183730558007214222 + 0x35, 0xa9, 0x51, 0x5e, 0x33, 0x2d, 0xbd, 0xbd, //0x00009b00 .quad -4774610331293865675 + 0x4f, 0x9f, 0x96, 0x5c, 0x85, 0xef, 0x08, 0xb2, //0x00009b08 .quad -5617977179081629873 + 0x82, 0x13, 0xe6, 0x35, 0x80, 0x78, 0x2c, 0xad, //0x00009b10 .quad -5968262914117332094 + 0x23, 0x47, 0xbc, 0xb3, 0x66, 0x2b, 0x8b, 0xde, //0x00009b18 .quad -2410785455424649437 + 0x31, 0xcc, 0xaf, 0x21, 0x50, 0xcb, 0x3b, 0x4c, //0x00009b20 .quad 5493207715531443249 + 0x76, 0xac, 0x55, 0x30, 0x20, 0xfb, 0x16, 0x8b, //0x00009b28 .quad -8424269937281487754 + 0x3d, 0xbf, 0x1b, 0x2a, 0x24, 0xbe, 0x4a, 0xdf, //0x00009b30 .quad -2356862392440471747 + 0x93, 0x17, 0x6b, 0x3c, 0xe8, 0xb9, 0xdc, 0xad, //0x00009b38 .quad -5918651403174471789 + 0x0d, 0xaf, 0xa2, 0x34, 0xad, 0x6d, 0x1d, 0xd7, //0x00009b40 .quad -2946077990550589683 + 0x78, 0xdd, 0x85, 0x4b, 0x62, 0xe8, 0x53, 0xd9, //0x00009b48 .quad -2786628235540701832 + 0x68, 0xad, 0xe5, 0x40, 0x8c, 0x64, 0x72, 0x86, //0x00009b50 .quad -8758827771735200408 + 0x6b, 0xaa, 0x33, 0x6f, 0x3d, 0x71, 0xd4, 0x87, //0x00009b58 .quad -8659171674854020501 + 0xc2, 0x18, 0x1f, 0x51, 0xaf, 0xfd, 0x0e, 0x68, //0x00009b60 .quad 7498209359040551106 + 0x06, 0x95, 0x00, 0xcb, 0x8c, 0x8d, 0xc9, 0xa9, //0x00009b68 .quad -6212278575140137722 + 0xf2, 0xde, 0x66, 0x25, 0x1b, 0xbd, 0x12, 0x02, //0x00009b70 .quad 149389661945913074 + 0x48, 0xba, 0xc0, 0xfd, 0xef, 0xf0, 0x3b, 0xd4, //0x00009b78 .quad -3153662200497784248 + 0x57, 0x4b, 0x60, 0xf7, 0x30, 0xb6, 0x4b, 0x01, //0x00009b80 .quad 93368538716195671 + 0x6d, 0x74, 0x98, 0xfe, 0x95, 0x76, 0xa5, 0x84, //0x00009b88 .quad -8888567902952197011 + 0x2d, 0x5e, 0x38, 0x35, 0xbd, 0xa3, 0x9e, 0x41, //0x00009b90 .quad 4728396691822632493 + 0x88, 0x91, 0x3e, 0x7e, 0x3b, 0xd4, 0xce, 0xa5, //0x00009b98 .quad -6499023860262858360 + 0xb9, 0x75, 0x86, 0x82, 0xac, 0x4c, 0x06, 0x52, //0x00009ba0 .quad 5910495864778290617 + 0xea, 0x35, 0xce, 0x5d, 0x4a, 0x89, 0x42, 0xcf, //0x00009ba8 .quad -3512093806901185046 + 0x93, 0x09, 0x94, 0xd1, 0xeb, 0xef, 0x43, 0x73, //0x00009bb0 .quad 8305745933913819539 + 0xb2, 0xe1, 0xa0, 0x7a, 0xce, 0x95, 0x89, 0x81, //0x00009bb8 .quad -9112587656954322510 + 0xf8, 0x0b, 0xf9, 0xc5, 0xe6, 0xeb, 0x14, 0x10, //0x00009bc0 .quad 1158810380537498616 + 0x1f, 0x1a, 0x49, 0x19, 0x42, 0xfb, 0xeb, 0xa1, //0x00009bc8 .quad -6779048552765515233 + 0xf6, 0x4e, 0x77, 0x77, 0xe0, 0x26, 0x1a, 0xd4, //0x00009bd0 .quad -3163173042755514634 + 0xa6, 0x60, 0x9b, 0x9f, 0x12, 0xfa, 0x66, 0xca, //0x00009bd8 .quad -3862124672529506138 + 0xb4, 0x22, 0x55, 0x95, 0x98, 0xb0, 0x20, 0x89, //0x00009be0 .quad -8565652321871781196 + 0xd0, 0x38, 0x82, 0x47, 0x97, 0xb8, 0x00, 0xfd, //0x00009be8 .quad -215969822234494768 + 0xb0, 0x35, 0x55, 0x5d, 0x5f, 0x6e, 0xb4, 0x55, //0x00009bf0 .quad 6175682344898606512 + 0x82, 0x63, 0xb1, 0x8c, 0x5e, 0x73, 0x20, 0x9e, //0x00009bf8 .quad -7052510166537641086 + 0x1d, 0x83, 0xaa, 0x34, 0xf7, 0x89, 0x21, 0xeb, //0x00009c00 .quad -1503769105731517667 + 0x62, 0xbc, 0xdd, 0x2f, 0x36, 0x90, 0xa8, 0xc5, //0x00009c08 .quad -4203951689744663454 + 0xe4, 0x23, 0xd5, 0x01, 0x75, 0xec, 0xe9, 0xa5, //0x00009c10 .quad -6491397400591784988 + 0x7b, 0x2b, 0xd5, 0xbb, 0x43, 0xb4, 0x12, 0xf7, //0x00009c18 .quad -643253593753441413 + 0x6e, 0x36, 0x25, 0x21, 0xc9, 0x33, 0xb2, 0x47, //0x00009c20 .quad 5166248661484910190 + 0x2d, 0x3b, 0x65, 0x55, 0xaa, 0xb0, 0x6b, 0x9a, //0x00009c28 .quad -7319562523736982739 + 0x0a, 0x84, 0x6e, 0x69, 0xbb, 0xc0, 0x9e, 0x99, //0x00009c30 .quad -7377247228426025974 + 0xf8, 0x89, 0xbe, 0xea, 0xd4, 0x9c, 0x06, 0xc1, //0x00009c38 .quad -4537767136243840520 + 0x0d, 0x25, 0xca, 0x43, 0xea, 0x70, 0x06, 0xc0, //0x00009c40 .quad -4609873017105144563 + 0x76, 0x2c, 0x6e, 0x25, 0x0a, 0x44, 0x48, 0xf1, //0x00009c48 .quad -1060522901877412746 + 0x28, 0x57, 0x5e, 0x6a, 0x92, 0x06, 0x04, 0x38, //0x00009c50 .quad 4036358391950366504 + 0xca, 0xdb, 0x64, 0x57, 0x86, 0x2a, 0xcd, 0x96, //0x00009c58 .quad -7580355841314464822 + 0xf2, 0xec, 0xf5, 0x04, 0x37, 0x08, 0x05, 0xc6, //0x00009c60 .quad -4177924046916817678 + 0xbc, 0x12, 0x3e, 0xed, 0x27, 0x75, 0x80, 0xbc, //0x00009c68 .quad -4863758783215693124 + 0x2e, 0x68, 0x33, 0xc6, 0x44, 0x4a, 0x86, 0xf7, //0x00009c70 .quad -610719040218634194 + 0x6b, 0x97, 0x8d, 0xe8, 0x71, 0x92, 0xa0, 0xeb, //0x00009c78 .quad -1468012460592228501 + 0x1d, 0x21, 0xe0, 0xfb, 0x6a, 0xee, 0xb3, 0x7a, //0x00009c80 .quad 8841672636718129437 + 0xa3, 0x7e, 0x58, 0x31, 0x87, 0x5b, 0x44, 0x93, //0x00009c88 .quad -7835036815511224669 + 0x64, 0x29, 0xd8, 0xba, 0x05, 0xea, 0x60, 0x59, //0x00009c90 .quad 6440404777470273892 + 0x4c, 0x9e, 0xae, 0xfd, 0x68, 0x72, 0x15, 0xb8, //0x00009c98 .quad -5182110000961642932 + 0xbd, 0x33, 0x8e, 0x29, 0x87, 0x24, 0xb9, 0x6f, //0x00009ca0 .quad 8050505971837842365 + 0xdf, 0x45, 0x1a, 0x3d, 0x03, 0xcf, 0x1a, 0xe6, //0x00009ca8 .quad -1865951482774665761 + 0x56, 0xe0, 0xf8, 0x79, 0xd4, 0xb6, 0xd3, 0xa5, //0x00009cb0 .quad -6497648813669818282 + 0xab, 0x6b, 0x30, 0x06, 0x62, 0xc1, 0xd0, 0x8f, //0x00009cb8 .quad -8083748704375247957 + 0x6c, 0x18, 0x77, 0x98, 0x89, 0xa4, 0x48, 0x8f, //0x00009cc0 .quad -8122061017087272852 + 0x96, 0x86, 0xbc, 0x87, 0xba, 0xf1, 0xc4, 0xb3, //0x00009cc8 .quad -5492999862041672042 + 0x87, 0xde, 0x94, 0xfe, 0xab, 0xcd, 0x1a, 0x33, //0x00009cd0 .quad 3682481783923072647 + 0x3c, 0xa8, 0xab, 0x29, 0x29, 0x2e, 0xb6, 0xe0, //0x00009cd8 .quad -2254563809124702148 + 0x14, 0x0b, 0x1d, 0x7f, 0x8b, 0xc0, 0xf0, 0x9f, //0x00009ce0 .quad -6921820921902855404 + 0x25, 0x49, 0x0b, 0xba, 0xd9, 0xdc, 0x71, 0x8c, //0x00009ce8 .quad -8326631408344020699 + 0xd9, 0x4d, 0xe4, 0x5e, 0xae, 0xf0, 0xec, 0x07, //0x00009cf0 .quad 571095884476206553 + 0x6f, 0x1b, 0x8e, 0x28, 0x10, 0x54, 0x8e, 0xaf, //0x00009cf8 .quad -5796603242002637969 + 0x50, 0x61, 0x9d, 0xf6, 0xd9, 0x2c, 0xe8, 0xc9, //0x00009d00 .quad -3897816162832129712 + 0x4a, 0xa2, 0xb1, 0x32, 0x14, 0xe9, 0x71, 0xdb, //0x00009d08 .quad -2634068034075909558 + 0xd2, 0x5c, 0x22, 0x3a, 0x08, 0x1c, 0x31, 0xbe, //0x00009d10 .quad -4741978110983775022 + 0x6e, 0x05, 0xaf, 0x9f, 0xac, 0x31, 0x27, 0x89, //0x00009d18 .quad -8563821548938525330 + 0x06, 0xf4, 0xaa, 0x48, 0x0a, 0x63, 0xbd, 0x6d, //0x00009d20 .quad 7907585416552444934 + 0xca, 0xc6, 0x9a, 0xc7, 0x17, 0xfe, 0x70, 0xab, //0x00009d28 .quad -6093090917745768758 + 0x08, 0xb1, 0xd5, 0xda, 0xcc, 0xbb, 0x2c, 0x09, //0x00009d30 .quad 661109733835780360 + 0x7d, 0x78, 0x81, 0xb9, 0x9d, 0x3d, 0x4d, 0xd6, //0x00009d38 .quad -3004677628754823043 + 0xa5, 0x8e, 0xc5, 0x08, 0x60, 0xf5, 0xbb, 0x25, //0x00009d40 .quad 2719036592861056677 + 0x4e, 0xeb, 0xf0, 0x93, 0x82, 0x46, 0xf0, 0x85, //0x00009d48 .quad -8795452545612846258 + 0x4e, 0xf2, 0xf6, 0x0a, 0xb8, 0xf2, 0x2a, 0xaf, //0x00009d50 .quad -5824576295778454962 + 0x21, 0x26, 0xed, 0x38, 0x23, 0x58, 0x6c, 0xa7, //0x00009d58 .quad -6382629663588669919 + 0xe1, 0xae, 0xb4, 0x0d, 0x66, 0xaf, 0xf5, 0x1a, //0x00009d60 .quad 1942651667131707105 + 0xaa, 0x6f, 0x28, 0x07, 0x2c, 0x6e, 0x47, 0xd1, //0x00009d68 .quad -3366601061058449494 + 0x4d, 0xed, 0x90, 0xc8, 0x9f, 0x8d, 0xd9, 0x50, //0x00009d70 .quad 5825843310384704845 + 0xca, 0x45, 0x79, 0x84, 0xdb, 0xa4, 0xcc, 0x82, //0x00009d78 .quad -9021654690802612790 + 0xa0, 0x28, 0xb5, 0xba, 0x07, 0xf1, 0x0f, 0xe5, //0x00009d80 .quad -1941067898873894752 + 0x3c, 0x97, 0x97, 0x65, 0x12, 0xce, 0x7f, 0xa3, //0x00009d88 .quad -6665382345075878084 + 0xc8, 0x72, 0x62, 0xa9, 0x49, 0xed, 0x53, 0x1e, //0x00009d90 .quad 2185351144835019464 + 0x0c, 0x7d, 0xfd, 0xfe, 0x96, 0xc1, 0x5f, 0xcc, //0x00009d98 .quad -3720041912917459700 + 0x7a, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x00009da0 .quad 2731688931043774330 + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x00009da8 .quad -38366372719436721 + 0xac, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x00009db0 .quad 8624834609543440812 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x00009db8 .quad -6941508010590729807 + 0x17, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x00009dc0 .quad -3054014793352862697 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x00009dc8 .quad -4065198994811024355 + 0x1d, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x00009dd0 .quad 5405853545163697437 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x00009dd8 .quad -469812725086392539 + 0x32, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x00009de0 .quad 5684501474941004850 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x00009de8 .quad -7211161980820077193 + 0x3f, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x00009df0 .quad 2493940825248868159 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x00009df8 .quad -4402266457597708587 + 0x0f, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x00009e00 .quad 7729112049988473103 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x00009e08 .quad -891147053569747830 + 0xa9, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x00009e10 .quad -9004363024039368023 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x00009e18 .quad -7474495936122174250 + 0x53, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x00009e20 .quad 2579604275232953683 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x00009e28 .quad -4731433901725329908 + 0xa8, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x00009e30 .quad 3224505344041192104 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x00009e38 .quad -1302606358729274481 + 0xa9, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x00009e40 .quad 8932844867666826921 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x00009e48 .quad -7731658001846878407 + 0x53, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x00009e50 .quad -2669001970698630061 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x00009e58 .quad -5052886483881210105 + 0x68, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x00009e60 .quad -3336252463373287576 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x00009e68 .quad -1704422086424124727 + 0xa1, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x00009e70 .quad 2526528228819083169 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x00009e78 .quad -7982792831656159810 + 0x8a, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x00009e80 .quad -6065211750830921846 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x00009e88 .quad -5366805021142811859 + 0x6c, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x00009e90 .quad 1641857348316123500 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x00009e98 .quad -2096820258001126919 + 0xe3, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x00009ea0 .quad -5891368184943504669 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x00009ea8 .quad -8228041688891786181 + 0x9c, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x00009eb0 .quad -7364210231179380836 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x00009eb8 .quad -5673366092687344822 + 0x83, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x00009ec0 .quad 4629795266307937667 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x00009ec8 .quad -2480021597431793123 + 0x72, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x00009ed0 .quad 5199465050656154994 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x00009ed8 .quad -8467542526035952558 + 0xcf, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x00009ee0 .quad -2724040723534582065 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x00009ee8 .quad -5972742139117552794 + 0x82, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x00009ef0 .quad -8016736922845615486 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x00009ef8 .quad -2854241655469553088 + 0x91, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x00009f00 .quad 6518754469289960081 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x00009f08 .quad -8701430062309552536 + 0x36, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x00009f10 .quad 8148443086612450102 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x00009f18 .quad -6265101559459552766 + 0x03, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x00009f20 .quad 962181821410786819 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x00009f28 .quad -3219690930897053053 + 0xc2, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x00009f30 .quad -1704479370831952190 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x00009f38 .quad -8929835859451740015 + 0x72, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x00009f40 .quad 7092772823314835570 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x00009f48 .quad -6550608805887287114 + 0x8f, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x00009f50 .quad -357406007711231345 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x00009f58 .quad -3576574988931720989 + 0x99, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x00009f60 .quad 8999993282035256217 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x00009f68 .quad -9152888395723407474 + 0x80, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x00009f70 .quad 2026619565689294464 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x00009f78 .quad -6829424476226871438 + 0x20, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x00009f80 .quad -6690097579743157728 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x00009f88 .quad -3925094576856201394 + 0xa8, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x00009f90 .quad 5472436080603216552 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x00009f98 .quad -294682202642863838 + 0xa9, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x00009fa0 .quad 8031958568804398249 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x00009fa8 .quad -7101705404292871755 + 0xd3, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x00009fb0 .quad -3795109844276665901 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x00009fb8 .quad -4265445736938701790 + 0x48, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x00009fc0 .quad 9091170749936331336 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x00009fc8 .quad -720121152745989333 + 0x6d, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x00009fd0 .quad 3376138709496513133 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x00009fd8 .quad -7367604748107325189 + 0x08, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x00009fe0 .quad -391512631556746488 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x00009fe8 .quad -4597819916706768583 + 0xca, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x00009ff0 .quad 8733981247408842698 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x00009ff8 .quad -1135588877456072824 + 0xde, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000a000 .quad 5458738279630526686 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000a008 .quad -7627272076051127371 + 0x16, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000a010 .quad -7011635205744005354 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000a018 .quad -4922404076636521310 + 0xdc, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000a020 .quad 5070514048102157020 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000a028 .quad -1541319077368263733 + 0xc9, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000a030 .quad 863228270850154185 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000a038 .quad -7880853450996246689 + 0x7b, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000a040 .quad -3532650679864695173 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000a048 .quad -5239380795317920458 + 0x1a, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000a050 .quad -9027499368258256870 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000a058 .quad -1937539975720012668 + 0x10, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000a060 .quad -3336344095947716592 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000a068 .quad -8128491512466089774 + 0x15, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000a070 .quad -8782116138362033643 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000a078 .quad -5548928372155224313 + 0x9a, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000a080 .quad 7469098900757009562 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000a088 .quad -2324474446766642487 + 0xe0, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000a090 .quad -2249342214667950880 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000a098 .quad -8370325556870233411 + 0x18, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000a0a0 .quad 6411694268519837208 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000a0a8 .quad -5851220927660403859 + 0x9e, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000a0b0 .quad -5820440219632367202 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000a0b8 .quad -2702340141148116920 + 0x03, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000a0c0 .quad 7891439908798240259 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000a0c8 .quad -8606491615858654931 + 0x83, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000a0d0 .quad -3970758169284363389 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000a0d8 .quad -6146428501395930760 + 0x64, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000a0e0 .quad -351761693178066332 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000a0e8 .quad -3071349608317525546 + 0x7f, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000a0f0 .quad 6697677969404790399 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000a0f8 .quad -8837122532839535322 + 0x1e, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000a100 .quad -851274575098787810 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000a108 .quad -6434717147622031249 + 0x26, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000a110 .quad -1064093218873484762 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000a118 .quad -3431710416100151157 + 0x58, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000a120 .quad 8558313775058847832 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000a128 .quad -9062348037703676329 + 0x6e, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000a130 .quad 6086206200396171886 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000a138 .quad -6716249028702207507 + 0x09, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000a140 .quad -6227300304786948855 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000a148 .quad -3783625267450371480 + 0x4c, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000a150 .quad -3172439362556298164 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000a158 .quad -117845565885576446 + 0xaf, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000a160 .quad -4288617610811380305 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000a168 .quad -6991182506319567135 + 0x1b, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000a170 .quad 3862600023340550427 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000a178 .quad -4127292114472071014 + 0x62, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000a180 .quad -4395122007679087774 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000a188 .quad -547429124662700864 + 0x1d, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000a190 .quad 8782263791269039901 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000a198 .quad -7259672230555269896 + 0xe4, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000a1a0 .quad -7468914334623251740 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000a1a8 .quad -4462904269766699466 + 0x9d, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000a1b0 .quad 4498915137003099037 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000a1b8 .quad -966944318780986428 + 0x42, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000a1c0 .quad -6411550076227838910 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000a1c8 .quad -7521869226879198374 + 0x53, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000a1d0 .quad 5820620459997365075 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000a1d8 .quad -4790650515171610063 + 0x28, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000a1e0 .quad -6559282480285457368 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000a1e8 .quad -1376627125537124675 + 0x99, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000a1f0 .quad -8711237568605798759 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000a1f8 .quad -7777920981101784778 + 0x3f, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000a200 .quad 2946011094524915263 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000a208 .quad -5110715207949843068 + 0xcf, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000a210 .quad 3682513868156144079 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000a218 .quad -1776707991509915931 + 0x21, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000a220 .quad 4607414176811284001 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000a228 .quad -8027971522334779313 + 0xa9, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000a230 .quad 1147581702586717097 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000a238 .quad -5423278384491086237 + 0x94, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000a240 .quad -3177208890193991532 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000a248 .quad -2167411962186469893 + 0x5c, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000a250 .quad 7237616480483531100 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000a258 .quad -8272161504007625539 + 0xb3, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000a260 .quad -4788037454677749837 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000a268 .quad -5728515861582144020 + 0xa0, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000a270 .quad -1373360799919799392 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000a278 .quad -2548958808550292121 + 0x44, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000a280 .quad -858350499949874620 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000a288 .quad -8510628282985014432 + 0xd5, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000a290 .quad 3538747893490044629 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000a298 .quad -6026599335303880135 + 0x8b, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000a2a0 .quad 9035120885289943691 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000a2a8 .quad -2921563150702462265 + 0x97, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000a2b0 .quad -5882264492762254953 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000a2b8 .quad -8743505996830120772 + 0xfc, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000a2c0 .quad -2741144597525430788 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000a2c8 .quad -6317696477610263061 + 0x7b, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000a2d0 .quad -3426430746906788485 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000a2d8 .quad -3285434578585440922 + 0x6d, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000a2e0 .quad 4776009810824339053 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000a2e8 .quad -8970925639256982432 + 0x08, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000a2f0 .quad 5970012263530423816 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000a2f8 .quad -6601971030643840136 + 0x8b, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000a300 .quad 7462515329413029771 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000a308 .quad -3640777769877412266 + 0xb6, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000a310 .quad 52386062455755702 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000a318 .quad -9193015133814464522 + 0xa4, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000a320 .quad -9157889458785081180 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000a328 .quad -6879582898840692749 + 0xcd, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000a330 .quad 6999382250228200141 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000a338 .quad -3987792605123478032 + 0x81, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000a340 .quad 8749227812785250177 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000a348 .quad -373054737976959636 + 0xb0, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000a350 .quad -3755104653863994448 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000a358 .quad -7150688238876681629 + 0x9c, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000a360 .quad -4693880817329993060 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000a368 .quad -4326674280168464132 + 0x44, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000a370 .quad -1255665003235103420 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000a378 .quad -796656831783192261 + 0x4a, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000a380 .quad 8438581409832836170 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000a388 .quad -7415439547505577019 + 0x5d, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000a390 .quad -3286831292991118499 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000a398 .quad -4657613415954583370 + 0x34, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000a3a0 .quad -8720225134666286028 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000a3a8 .quad -1210330751515841308 + 0xa0, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000a3b0 .quad -3144297699952734816 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000a3b8 .quad -7673985747338482674 + 0x09, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000a3c0 .quad -8542058143368306423 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000a3c8 .quad -4980796165745715438 + 0x4b, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000a3d0 .quad 3157485376071780683 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000a3d8 .quad -1614309188754756393 + 0xcf, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000a3e0 .quad 8890957387685944783 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000a3e8 .quad -7926472270612804602 + 0x42, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000a3f0 .quad 1890324697752655170 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000a3f8 .quad -5296404319838617848 + 0x93, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000a400 .quad 2362905872190818963 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000a408 .quad -2008819381370884406 + 0x9c, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000a410 .quad 6088502188546649756 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000a418 .quad -8173041140997884610 + 0x43, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000a420 .quad -1612744301171463613 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000a428 .quad -5604615407819967859 + 0xd4, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000a430 .quad 7207441660390446292 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000a438 .quad -2394083241347571919 + 0x04, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000a440 .quad -2412877989897052924 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000a448 .quad -8413831053483314306 + 0x45, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000a450 .quad -7627783505798704059 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000a458 .quad -5905602798426754978 + 0x57, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000a460 .quad 4300328673033783639 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000a468 .quad -2770317479606055818 + 0xd6, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000a470 .quad -1923980597781273130 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000a478 .quad -8648977452394866743 + 0x4c, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000a480 .quad 6818396289628184396 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000a488 .quad -6199535797066195524 + 0x1f, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000a490 .quad 8522995362035230495 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000a498 .quad -3137733727905356501 + 0x73, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000a4a0 .quad 3021029092058325107 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000a4a8 .quad -8878612607581929669 + 0x90, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000a4b0 .quad -835399653354481520 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000a4b8 .quad -6486579741050024183 + 0xb4, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000a4c0 .quad 8179122470161673908 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000a4c8 .quad -3496538657885142324 + 0x30, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000a4d0 .quad -4111420493003729616 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000a4d8 .quad -9102865688819295809 + 0x7c, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000a4e0 .quad -5139275616254662020 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000a4e8 .quad -6766896092596731857 + 0x1c, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000a4f0 .quad -6424094520318327524 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000a4f8 .quad -3846934097318526917 + 0x63, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000a500 .quad -8030118150397909405 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000a508 .quad -196981603220770742 + 0xfe, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000a510 .quad -7324666853212387330 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000a518 .quad -7040642529654063570 + 0xfd, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000a520 .quad 4679224488766679549 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000a528 .quad -4189117143640191558 + 0x7c, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000a530 .quad -3374341425896426372 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000a538 .quad -624710411122851544 + 0xce, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000a540 .quad -9026492418826348338 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000a548 .quad -7307973034592864071 + 0x01, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000a550 .quad -2059743486678159615 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000a558 .quad -4523280274813692185 + 0xc1, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000a560 .quad -2574679358347699519 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000a568 .quad -1042414325089727327 + 0xb9, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000a570 .quad 3002511419460075705 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000a578 .quad -7569037980822161435 + 0xe7, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000a580 .quad 8364825292752482535 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000a588 .quad -4849611457600313890 + 0x21, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000a590 .quad 1232659579085827361 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000a598 .quad -1450328303573004458 + 0x34, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000a5a0 .quad -3841273781498745804 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000a5a8 .quad -7823984217374209643 + 0x42, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000a5b0 .quad 4421779809981343554 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000a5b8 .quad -5168294253290374149 + 0x12, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000a5c0 .quad 915538744049291538 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000a5c8 .quad -1848681798185579782 + 0xab, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000a5d0 .quad 5183897733458195115 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000a5d8 .quad -8072955151507069220 + 0x56, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000a5e0 .quad 6479872166822743894 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000a5e8 .quad -5479507920956448621 + 0x2c, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000a5f0 .quad 3488154190101041964 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000a5f8 .quad -2237698882768172872 + 0xfb, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000a600 .quad 2180096368813151227 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000a608 .quad -8316090829371189901 + 0xfa, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000a610 .quad -1886565557410948870 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000a618 .quad -5783427518286599473 + 0x39, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000a620 .quad -2358206946763686087 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000a628 .quad -2617598379430861437 + 0x83, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000a630 .quad 7749492695127472003 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000a638 .quad -8553528014785370254 + 0x64, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000a640 .quad 463493832054564196 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000a648 .quad -6080224000054324913 + 0xbd, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000a650 .quad -4032318728359182659 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000a658 .quad -2988593981640518238 + 0x36, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000a660 .quad -4826042214438183114 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000a668 .quad -8785400266166405755 + 0x04, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000a670 .quad 3190819268807046916 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000a678 .quad -6370064314280619289 + 0xc5, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000a680 .quad -623161932418579259 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000a688 .quad -3350894374423386208 + 0xfb, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000a690 .quad -7307005235402693893 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000a698 .quad -9011838011655698236 + 0xba, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000a6a0 .quad -4522070525825979462 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000a6a8 .quad -6653111496142234891 + 0xa8, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000a6b0 .quad 3570783879572301480 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000a6b8 .quad -3704703351750405709 + 0x52, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000a6c0 .quad -148206168962011054 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000a6c8 .quad -19193171260619233 + 0x33, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000a6d0 .quad -92628855601256909 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000a6d8 .quad -6929524759678968877 + 0xc0, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000a6e0 .quad -115786069501571136 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000a6e8 .quad -4050219931171323192 + 0xb0, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000a6f0 .quad 4466953431550423984 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000a6f8 .quad -451088895536766085 + 0x4e, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000a700 .quad 486002885505321038 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000a708 .quad -7199459587351560659 + 0x62, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000a710 .quad 5219189625309039202 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000a718 .quad -4387638465762062920 + 0xfa, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000a720 .quad 6523987031636299002 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000a728 .quad -872862063775190746 + 0x1c, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000a730 .quad -534194123654701028 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000a738 .quad -7463067817500576073 + 0x23, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000a740 .quad -667742654568376285 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000a748 .quad -4717148753448332187 + 0x2c, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000a750 .quad 8388693718644305452 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000a758 .quad -1284749923383027329 + 0xdc, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000a760 .quad -6286281471915778852 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000a768 .quad -7720497729755473937 + 0x13, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000a770 .quad -7857851839894723565 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000a778 .quad -5038936143766954517 + 0x17, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000a780 .quad 8624429273841147159 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000a788 .quad -1686984161281305242 + 0x2e, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000a790 .quad 778582277723329070 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000a798 .quad -7971894128441897632 + 0xba, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000a7a0 .quad 973227847154161338 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000a7a8 .quad -5353181642124984136 + 0x69, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000a7b0 .quad 1216534808942701673 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000a7b8 .quad -2079791034228842266 + 0xc1, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000a7c0 .quad -3851351762838199359 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000a7c8 .quad -8217398424034108273 + 0xb2, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000a7d0 .quad -4814189703547749198 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000a7d8 .quad -5660062011615247437 + 0xde, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000a7e0 .quad -6017737129434686498 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000a7e8 .quad -2463391496091671392 + 0x6b, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000a7f0 .quad 7768129340171790699 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000a7f8 .quad -8457148712698376476 + 0xc6, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000a800 .quad -8736582398494813242 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000a808 .quad -5959749872445582691 + 0xb7, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000a810 .quad -1697355961263740745 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000a818 .quad -2838001322129590460 + 0x72, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000a820 .quad 1244995533423855986 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000a828 .quad -8691279853972075893 + 0xcf, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000a830 .quad -3055441601647567921 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000a838 .quad -6252413799037706963 + 0xc3, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000a840 .quad 5404070034795315907 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000a848 .quad -3203831230369745799 + 0xba, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000a850 .quad -3539985255894009414 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000a858 .quad -8919923546622172981 + 0x28, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000a860 .quad -4424981569867511768 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000a868 .quad -6538218414850328322 + 0x32, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000a870 .quad 8303831092947774002 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000a878 .quad -3561087000135522498 + 0x5f, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000a880 .quad 578208414664970847 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000a888 .quad -9143208402725783417 + 0xf7, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000a890 .quad -3888925500096174345 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000a898 .quad -6817324484979841368 + 0xb5, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000a8a0 .quad -249470856692830027 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000a8a8 .quad -3909969587797413806 + 0xe2, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000a8b0 .quad -4923524589293425438 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000a8b8 .quad -275775966319379353 + 0x0d, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000a8c0 .quad -3077202868308390899 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000a8c8 .quad -7089889006590693952 + 0x11, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000a8d0 .quad 765182433041899281 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000a8d8 .quad -4250675239810979535 + 0xd5, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000a8e0 .quad 5568164059729762005 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000a8e8 .quad -701658031336336515 + 0x45, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000a8f0 .quad 5785945546544795205 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000a8f8 .quad -7356065297226292178 + 0xd6, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000a900 .quad -1990940103673781802 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000a908 .quad -4583395603105477319 + 0x4c, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000a910 .quad 6734696907262548556 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000a918 .quad -1117558485454458744 + 0x6f, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000a920 .quad 4209185567039092847 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000a928 .quad -7616003081050118571 + 0x8b, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000a930 .quad -8573576096483297653 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000a938 .quad -4908317832885260310 + 0x2e, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000a940 .quad 3118087934678041646 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000a948 .quad -1523711272679187483 + 0x9d, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000a950 .quad 4254647968387469981 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000a958 .quad -7869848573065574033 + 0x44, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000a960 .quad 706623942056949572 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000a968 .quad -5225624697904579637 + 0x15, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000a970 .quad -3728406090856200939 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000a978 .quad -1920344853953336643 + 0x2d, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000a980 .quad -6941939825212513491 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000a988 .quad -8117744561361917258 + 0xf9, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000a990 .quad 5157633273766521849 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000a998 .quad -5535494683275008668 + 0xf7, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000a9a0 .quad 6447041592208152311 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000a9a8 .quad -2307682335666372931 + 0x5a, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000a9b0 .quad 6335244004343789146 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000a9b8 .quad -8359830487432564938 + 0xf1, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000a9c0 .quad -1304317031425039375 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000a9c8 .quad -5838102090863318269 + 0xed, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000a9d0 .quad -1630396289281299219 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000a9d8 .quad -2685941595151759932 + 0x14, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000a9e0 .quad 1286845328412881940 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000a9e8 .quad -8596242524610931813 + 0x19, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000a9f0 .quad -3003129357911285479 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000a9f8 .quad -6133617137336276863 + 0x5f, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000aa00 .quad 5469460339465668959 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000aa08 .quad -3055335403242958174 + 0xdb, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000aa10 .quad 8030098730593431003 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000aa18 .quad -8827113654667930715 + 0x52, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000aa20 .quad -3797434642040374958 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000aa28 .quad -6422206049907525490 + 0xa7, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000aa30 .quad 9088264752731695015 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000aa38 .quad -3416071543957018958 + 0xc8, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000aa40 .quad -8154892584824854328 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000aa48 .quad -9052573742614218705 + 0xfa, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000aa50 .quad 8253128342678483706 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000aa58 .quad -6704031159840385477 + 0xb9, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000aa60 .quad 5704724409920716729 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000aa68 .quad -3768352931373093942 + 0xa8, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000aa70 .quad -2092466524453879896 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000aa78 .quad -98755145788979524 + 0xc9, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000aa80 .quad 998051431430019017 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000aa88 .quad -6979250993759194058 + 0xbb, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000aa90 .quad -7975807747567252037 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000aa98 .quad -4112377723771604669 + 0x2a, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000aaa0 .quad 8476984389250486570 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000aaa8 .quad -528786136287117932 + 0xba, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000aab0 .quad -3925256793573221702 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000aab8 .quad -7248020362820530564 + 0x68, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000aac0 .quad -294884973539139224 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000aac8 .quad -4448339435098275301 + 0xc3, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000aad0 .quad -368606216923924029 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000aad8 .quad -948738275445456222 + 0x1a, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000aae0 .quad -2536221894791146470 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000aae8 .quad -7510490449794491995 + 0x20, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000aaf0 .quad 6053094668365842720 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000aaf8 .quad -4776427043815727089 + 0x68, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000ab00 .quad 2954682317029915496 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000ab08 .quad -1358847786342270957 + 0x21, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000ab10 .quad -459166561069996767 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000ab18 .quad -7766808894105001205 + 0x69, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000ab20 .quad -573958201337495959 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000ab28 .quad -5096825099203863602 + 0x04, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000ab30 .quad -5329133770099257852 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000ab38 .quad -1759345355577441598 + 0xc2, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000ab40 .quad -5636551615525730110 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000ab48 .quad -8017119874876982855 + 0xf3, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000ab50 .quad 2177682517447613171 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000ab58 .quad -5409713825168840664 + 0xb0, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000ab60 .quad 2722103146809516464 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000ab68 .quad -2150456263033662926 + 0x0e, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000ab70 .quad 6313000485183335694 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000ab78 .quad -8261564192037121185 + 0x51, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000ab80 .quad 3279564588051781713 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000ab88 .quad -5715269221619013577 + 0x65, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000ab90 .quad -512230283362660763 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000ab98 .quad -2532400508596379068 + 0xff, 0x58, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000aba0 .quad 1985699082112030975 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000aba8 .quad -8500279345513818773 + 0x3f, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000abb0 .quad -2129562165787349185 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000abb8 .quad -6013663163464885563 + 0x0f, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000abc0 .quad 6561419329620589327 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000abc8 .quad -2905392935903719049 + 0xe9, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000abd0 .quad -7428327965055601431 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000abd8 .quad -8733399612580906262 + 0x24, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000abe0 .quad 4549648098962661924 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000abe8 .quad -6305063497298744923 + 0xad, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000abf0 .quad -8147997931578836307 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000abf8 .quad -3269643353196043250 + 0xac, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000ac00 .quad 1825030320404309164 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000ac08 .quad -8961056123388608887 + 0xd7, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000ac10 .quad 6892973918932774359 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000ac18 .quad -6589634135808373205 + 0x4d, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000ac20 .quad 4004531380238580045 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000ac28 .quad -3625356651333078602 + 0xd0, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000ac30 .quad -2108853905778275376 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000ac38 .quad -9183376934724255983 + 0xc4, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000ac40 .quad 6587304654631931588 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000ac48 .quad -6867535149977932074 + 0x75, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000ac50 .quad -989241218564861323 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000ac58 .quad -3972732919045027189 + 0x12, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000ac60 .quad -1236551523206076654 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000ac68 .quad -354230130378896082 + 0x6b, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000ac70 .quad 6144684325637283947 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000ac78 .quad -7138922859127891907 + 0x86, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000ac80 .quad -6154202648235558778 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000ac88 .quad -4311967555482476980 + 0xa8, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000ac90 .quad -3081067291867060568 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000ac98 .quad -778273425925708321 + 0x29, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000aca0 .quad -1925667057416912855 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000aca8 .quad -7403949918844649557 + 0x33, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000acb0 .quad -2407083821771141069 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000acb8 .quad -4643251380128424042 + 0x40, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000acc0 .quad -7620540795641314240 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000acc8 .quad -1192378206733142148 + 0xa8, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000acd0 .quad -2456994988062127448 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000acd8 .quad -7662765406849295699 + 0x52, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000ace0 .quad 6152128301777116498 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000ace8 .quad -4966770740134231719 + 0xa6, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000acf0 .quad -6144897678060768090 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000acf8 .quad -1596777406740401745 + 0xe8, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000ad00 .quad -3840561048787980056 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000ad08 .quad -7915514906853832947 + 0x22, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000ad10 .quad 4422670725869800738 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000ad18 .quad -5282707615139903279 + 0x6a, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000ad20 .quad -8306719647944912790 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000ad28 .quad -1991698500497491195 + 0x42, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000ad30 .quad 8643358275316593218 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000ad38 .quad -8162340590452013853 + 0xd3, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000ad40 .quad 6192511825718353619 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000ad48 .quad -5591239719637629412 + 0x88, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000ad50 .quad 7740639782147942024 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000ad58 .quad -2377363631119648861 + 0x15, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000ad60 .quad 2532056854628769813 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000ad68 .quad -8403381297090862394 + 0x1a, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000ad70 .quad -6058300968568813542 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000ad78 .quad -5892540602936190089 + 0x21, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000ad80 .quad -7572876210711016927 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000ad88 .quad -2753989735242849707 + 0x54, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000ad90 .quad 9102010423587778132 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000ad98 .quad -8638772612167862923 + 0xe9, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000ada0 .quad -2457545025797441047 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000ada8 .quad -6186779746782440750 + 0x64, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000adb0 .quad -7683617300674189212 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000adb8 .quad -3121788665050663033 + 0x3e, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000adc0 .quad -4802260812921368258 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000adc8 .quad -8868646943297746252 + 0x8e, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000add0 .quad -1391139997724322418 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000add8 .quad -6474122660694794911 + 0xf2, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000ade0 .quad 7484447039699372786 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000ade8 .quad -3480967307441105734 + 0xd7, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000adf0 .quad -9157278655470055721 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000adf8 .quad -9093133594791772940 + 0x8d, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000ae00 .quad -6834912300910181747 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000ae08 .quad -6754730975062328271 + 0x30, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000ae10 .quad 679731660717048624 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000ae18 .quad -3831727700400522434 + 0xfc, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000ae20 .quad -8373707460958465028 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000ae28 .quad -177973607073265139 + 0x7d, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000ae30 .quad 8601490892183123069 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000ae38 .quad -7028762532061872568 + 0x9d, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000ae40 .quad -7694880458480647779 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000ae48 .quad -4174267146649952806 + 0x04, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000ae50 .quad 4216457482181353988 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000ae58 .quad -606147914885053103 + 0x42, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000ae60 .quad -4282243101277735614 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000ae68 .quad -7296371474444240046 + 0x93, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000ae70 .quad 8482254178684994195 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000ae78 .quad -4508778324627912153 + 0x38, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000ae80 .quad 5991131704928854840 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000ae88 .quad -1024286887357502287 + 0x03, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000ae90 .quad -3173071712060547581 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000ae98 .quad -7557708332239520786 + 0x84, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000aea0 .quad -8578025658503072380 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000aea8 .quad -4835449396872013078 + 0xe5, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000aeb0 .quad 3112525982153323237 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000aeb8 .quad -1432625727662628443 + 0xcf, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000aec0 .quad 4251171748059520975 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000aec8 .quad -7812920107430224633 + 0xc2, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000aed0 .quad 702278666647013314 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000aed8 .quad -5154464115860392887 + 0xb3, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000aee0 .quad 5489534351736154547 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000aee8 .quad -1831394126398103205 + 0x10, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000aef0 .quad 1125115960621402640 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000aef8 .quad -8062150356639896359 + 0x94, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000af00 .quad 6018080969204141204 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000af08 .quad -5466001927372482545 + 0xb9, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000af10 .quad 2910915193077788601 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000af18 .quad -2220816390788215277 + 0xd3, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000af20 .quad -486521013540076077 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000af28 .quad -8305539271883716405 + 0x48, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000af30 .quad -608151266925095096 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000af38 .quad -5770238071427257602 + 0x1b, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000af40 .quad -5371875102083756773 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000af48 .quad -2601111570856684098 + 0x30, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000af50 .quad 3560107088838733872 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000af58 .quad -8543223759426509417 + 0x3d, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000af60 .quad -161552157378970563 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000af68 .quad -6067343680855748868 + 0x4c, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000af70 .quad 4409745821703674700 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000af78 .quad -2972493582642298180 + 0x0f, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000af80 .quad -6467280898289979121 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000af88 .quad -8775337516792518219 + 0x53, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000af90 .quad 1139270913992301907 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000af98 .quad -6357485877563259869 + 0xa8, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000afa0 .quad -3187597375937010520 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000afa8 .quad -3335171328526686933 + 0xe9, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000afb0 .quad 7231123676894144233 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000afb8 .quad -9002011107970261189 + 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000afc0 .quad 4427218577690292387 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000afc8 .quad -6640827866535438582 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000afd0 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, //0x0000afe0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000afe8 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000aff0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000aff8 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b000 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000b008 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b010 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000b018 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b020 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000b028 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b030 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000b038 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b040 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000b048 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b050 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000b058 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b060 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000b068 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b070 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000b078 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b080 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000b088 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b090 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000b098 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0a0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000b0a8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0b0 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000b0b8 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0c0 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000b0c8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0d0 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000b0d8 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0e0 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000b0e8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b0f0 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000b0f8 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b100 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000b108 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b110 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000b118 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b120 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000b128 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b130 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000b138 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b140 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000b148 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b150 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000b158 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b160 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000b168 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b170 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000b178 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b180 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000b188 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000b190 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000b198 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000b1a0 .quad 4611686018427387904 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000b1a8 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000b1b0 .quad 5764607523034234880 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000b1b8 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000b1c0 .quad -6629298651489370112 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000b1c8 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000b1d0 .quad 5548434740920451072 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000b1d8 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000b1e0 .quad -1143914305352105984 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000b1e8 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000b1f0 .quad 7793479155164643328 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000b1f8 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000b200 .quad -4093209111326359552 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000b208 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000b210 .quad 4359273333062107136 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000b218 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000b220 .quad 5449091666327633920 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000b228 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000b230 .quad 2199678564482154496 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000b238 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000b240 .quad 1374799102801346560 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000b248 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000b250 .quad 1718498878501683200 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000b258 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000b260 .quad 6759809616554491904 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000b268 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000b270 .quad 6530724019560251392 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000b278 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000b280 .quad -1059967012404461568 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000b288 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000b290 .quad 7898413271349198848 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000b298 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000b2a0 .quad -1981020733047832576 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000b2a8 .quad -8106986416796705681 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000b2b0 .quad -2476275916309790720 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000b2b8 .quad -5522047002568494197 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000b2c0 .quad -3095344895387238400 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000b2c8 .quad -2290872734783229842 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000b2d0 .quad 4982938468024057856 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000b2d8 .quad -8349324486880600507 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000b2e0 .quad -7606384970252091392 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000b2e8 .quad -5824969590173362730 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000b2f0 .quad 4327076842467049472 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000b2f8 .quad -2669525969289315508 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000b300 .quad -6518949010312869888 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000b308 .quad -8585982758446904049 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000b310 .quad -8148686262891087360 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000b318 .quad -6120792429631242157 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000b320 .quad 8260886245095692416 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000b328 .quad -3039304518611664792 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000b330 .quad 5163053903184807760 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000b338 .quad -8817094351773372351 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000b340 .quad -7381240676301154012 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000b348 .quad -6409681921289327535 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000b350 .quad -3178808521666707 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000b358 .quad -3400416383184271515 + 0xa4, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000b360 .quad -4613672773753429596 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000b368 .quad -9042789267131251553 + 0x0d, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000b370 .quad -5767090967191786995 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000b378 .quad -6691800565486676537 + 0x90, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000b380 .quad -7208863708989733744 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000b388 .quad -3753064688430957767 + 0xb4, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000b390 .quad 212292400617608628 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000b398 .quad -79644842111309304 + 0x90, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000b3a0 .quad 132682750386005392 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000b3a8 .quad -6967307053960650171 + 0xf5, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000b3b0 .quad 4777539456409894645 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000b3b8 .quad -4097447799023424810 + 0xb2, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000b3c0 .quad -3251447716342407502 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000b3c8 .quad -510123730351893109 + 0x2f, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000b3d0 .quad 7191217214140771119 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000b3d8 .quad -7236356359111015049 + 0xfb, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000b3e0 .quad 4377335499248575995 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000b3e8 .quad -4433759430461380907 + 0x7a, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000b3f0 .quad -8363388681221443718 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000b3f8 .quad -930513269649338230 + 0xac, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000b400 .quad -7532960934977096276 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000b408 .quad -7499099821171918250 + 0x17, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000b410 .quad 4418856886560793367 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000b418 .quad -4762188758037509908 + 0xdd, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000b420 .quad 5523571108200991709 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000b428 .quad -1341049929119499481 + 0x6a, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000b430 .quad -8076983103442849942 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000b438 .quad -7755685233340769032 + 0x44, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000b440 .quad -5484542860876174524 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000b448 .quad -5082920523248573386 + 0x16, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000b450 .quad 6979379479186945558 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000b458 .quad -1741964635633328828 + 0xcd, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000b460 .quad -4861259862362934835 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000b468 .quad -8006256924911912374 + 0x41, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000b470 .quad 7758483227328495169 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000b478 .quad -5396135137712502563 + 0xd1, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000b480 .quad -4136954021121544751 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000b488 .quad -2133482903713240300 + 0xa2, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000b490 .quad -279753253987271518 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000b498 .quad -8250955842461857044 + 0xcb, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000b4a0 .quad 4261994450943298507 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000b4a8 .quad -5702008784649933400 + 0xbe, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000b4b0 .quad 5327493063679123134 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000b4b8 .quad -2515824962385028846 + 0x37, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000b4c0 .quad 7941369183226839863 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000b4c8 .quad -8489919629131724885 + 0x04, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000b4d0 .quad 5315025460606161924 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000b4d8 .quad -6000713517987268202 + 0x06, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000b4e0 .quad -2579590211097073402 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000b4e8 .quad -2889205879056697349 + 0xa3, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000b4f0 .quad 7611128154919104931 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000b4f8 .quad -8723282702051517699 + 0x0c, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000b500 .quad -4321147861633282548 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000b508 .quad -6292417359137009220 + 0x90, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000b510 .quad -789748808614215280 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000b518 .quad -3253835680493873621 + 0xfa, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000b520 .quad 8729779031470891258 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000b528 .quad -8951176327949752869 + 0x38, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000b530 .quad 6300537770911226168 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000b538 .quad -6577284391509803182 + 0x86, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000b540 .quad -1347699823215743098 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000b548 .quad -3609919470959866074 + 0xb4, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000b550 .quad 6075216638131242420 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000b558 .quad -9173728696990998152 + 0x21, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000b560 .quad 7594020797664053025 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000b568 .quad -6855474852811359786 + 0xe9, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000b570 .quad 269153960225290473 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000b578 .quad -3957657547586811828 + 0x23, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000b580 .quad 336442450281613091 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000b588 .quad -335385916056126881 + 0x76, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000b590 .quad 7127805559067090038 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000b598 .quad -7127145225176161157 + 0x94, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000b5a0 .quad 4298070930406474644 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000b5a8 .quad -4297245513042813542 + 0x79, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000b5b0 .quad -3850783373846682503 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000b5b8 .quad -759870872876129024 + 0xcb, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000b5c0 .quad 9122475437414293195 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000b5c8 .quad -7392448323188662496 + 0x7e, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000b5d0 .quad -7043649776941685122 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000b5d8 .quad -4628874385558440216 + 0x1e, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000b5e0 .quad -4192876202749718498 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000b5e8 .quad -1174406963520662366 + 0x12, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000b5f0 .quad -4926390635932268014 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000b5f8 .quad -7651533379841495835 + 0x97, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000b600 .quad 3065383741939440791 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000b608 .quad -4952730706374481889 + 0xbd, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000b610 .quad -779956341003086915 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000b618 .quad -1579227364540714458 + 0x56, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000b620 .quad 6430056314514152534 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000b628 .quad -7904546130479028392 + 0x6c, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000b630 .quad 8037570393142690668 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000b638 .quad -5268996644671397586 + 0x47, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000b640 .quad 823590954573587527 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000b648 .quad -1974559787411859078 + 0xac, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000b650 .quad 5126430365035880108 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000b658 .quad -8151628894773493780 + 0x57, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000b660 .quad 6408037956294850135 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000b668 .quad -5577850100039479321 + 0xed, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000b670 .quad 3398361426941174765 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000b678 .quad -2360626606621961247 + 0x74, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000b680 .quad -4793553135802847628 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000b688 .quad -8392920656779807636 + 0x11, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000b690 .quad -1380255401326171631 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000b698 .quad -5879464802547371641 + 0x95, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000b6a0 .quad -1725319251657714539 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000b6a8 .quad -2737644984756826647 + 0xdd, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000b6b0 .quad 3533361486141316317 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000b6b8 .quad -8628557143114098510 + 0x15, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000b6c0 .quad -4806670179178130411 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000b6c8 .quad -6174010410465235234 + 0x1a, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000b6d0 .quad 7826720331309500698 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000b6d8 .quad -3105826994654156138 + 0xb0, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000b6e0 .quad 280014188641050032 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000b6e8 .quad -8858670899299929442 + 0x1c, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000b6f0 .quad -8873354301053463268 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000b6f8 .quad -6461652605697523899 + 0x63, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000b700 .quad -1868320839462053277 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000b708 .quad -3465379738694516970 + 0x7e, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000b710 .quad 5749828502977298558 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000b718 .quad -9083391364325154962 + 0x9d, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000b720 .quad -2036086408133152611 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000b728 .quad -6742553186979055799 + 0xc5, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000b730 .quad 6678264026688335045 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000b738 .quad -3816505465296431844 + 0xf6, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000b740 .quad 8347830033360418806 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000b748 .quad -158945813193151901 + 0xfa, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000b750 .quad 2911550761636567802 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000b758 .quad -7016870160886801794 + 0xb8, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000b760 .quad -5583933584809066056 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000b768 .quad -4159401682681114339 + 0x26, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000b770 .quad 2243455055843443238 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000b778 .quad -587566084924005019 + 0x58, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000b780 .quad 3708002419115845976 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000b788 .quad -7284757830718584993 + 0xae, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000b790 .quad 23317005467419566 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000b798 .quad -4494261269970843337 + 0x9a, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000b7a0 .quad -4582539761593113446 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000b7a8 .quad -1006140569036166268 + 0xe0, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000b7b0 .quad -558244341782001952 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000b7b8 .quad -7546366883288685774 + 0x98, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000b7c0 .quad -5309491445654890344 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000b7c8 .quad -4821272585683469313 + 0xbe, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000b7d0 .quad -6636864307068612930 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000b7d8 .quad -1414904713676948737 + 0x37, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000b7e0 .quad -4148040191917883081 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000b7e8 .quad -7801844473689174817 + 0x84, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000b7f0 .quad -5185050239897353852 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000b7f8 .quad -5140619573684080617 + 0xe5, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000b800 .quad -6481312799871692315 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000b808 .quad -1814088448677712867 + 0x2f, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000b810 .quad -8662506518347195601 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000b818 .quad -8051334308064652398 + 0xfb, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000b820 .quad 3006924907348169211 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000b828 .quad -5452481866653427593 + 0x7a, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000b830 .quad -853029884242176390 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000b838 .quad -2203916314889396588 + 0x0c, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000b840 .quad 1772699331562333708 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000b848 .quad -8294976724446954723 + 0x8f, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000b850 .quad 6827560182880305039 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000b858 .quad -5757034887131305500 + 0x73, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000b860 .quad 8534450228600381299 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000b868 .quad -2584607590486743971 + 0xa8, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000b870 .quad 7639874402088932264 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000b878 .quad -8532908771695296838 + 0x92, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000b880 .quad 326470965756389522 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000b888 .quad -6054449946191733143 + 0xb6, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000b890 .quad 5019774725622874806 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000b898 .quad -2956376414312278525 + 0xb2, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000b8a0 .quad 831516194300602802 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000b8a8 .quad -8765264286586255934 + 0x1e, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000b8b0 .quad -8183976793979022306 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000b8b8 .quad -6344894339805432014 + 0x26, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000b8c0 .quad 3605087062808385830 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000b8c8 .quad -3319431906329402113 + 0xb8, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000b8d0 .quad 9170708441896323000 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000b8d8 .quad -8992173969096958177 + 0xa6, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000b8e0 .quad 6851699533943015846 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000b8e8 .quad -6628531442943809817 + 0x0f, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000b8f0 .quad 3952938399001381903 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000b8f8 .quad -3673978285252374367 + 0x89, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000b900 .quad -4446942528265218167 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000b908 .quad -9213765455923815836 + 0x6c, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000b910 .quad -946992141904134804 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000b918 .quad -6905520801477381891 + 0xc7, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000b920 .quad 8039631859474607303 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000b928 .quad -4020214983419339459 + 0xf9, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000b930 .quad -3785518230938904583 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000b938 .quad -413582710846786420 + 0xfb, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000b940 .quad -60105885123121413 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000b948 .quad -7176018221920323369 + 0xba, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000b950 .quad -75132356403901766 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000b958 .quad -4358336758973016307 + 0x69, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000b960 .quad 9129456591349898601 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000b968 .quad -836234930288882479 + 0x61, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000b970 .quad -1211618658047395231 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000b978 .quad -7440175859071633406 + 0xfa, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000b980 .quad -6126209340986631942 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000b988 .quad -4688533805412153853 + 0x38, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000b990 .quad -7657761676233289928 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000b998 .quad -1248981238337804412 + 0x83, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000b9a0 .quad -2480258038432112253 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000b9a8 .quad -7698142301602209614 + 0xe4, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000b9b0 .quad -7712008566467528220 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000b9b8 .quad -5010991858575374113 + 0x5d, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000b9c0 .quad 8806733365625141341 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000b9c8 .quad -1652053804791829737 + 0x3a, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000b9d0 .quad -6025006692552756422 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000b9d8 .quad -7950062655635975442 + 0x09, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000b9e0 .quad 6303799689591218185 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000b9e8 .quad -5325892301117581398 + 0x0b, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000b9f0 .quad -1343622424865753077 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000b9f8 .quad -2045679357969588844 + 0x07, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000ba00 .quad 1466078993672598279 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000ba08 .quad -8196078626372074883 + 0xc8, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000ba10 .quad 6444284760518135752 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000ba18 .quad -5633412264537705700 + 0xbb, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000ba20 .quad 8055355950647669691 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000ba28 .quad -2430079312244744221 + 0x54, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000ba30 .quad 2728754459941099604 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000ba38 .quad -8436328597794046994 + 0x6a, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000ba40 .quad -5812428961928401302 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000ba48 .quad -5933724728815170839 + 0x04, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000ba50 .quad 1957835834444274180 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000ba58 .quad -2805469892591575644 + 0x42, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000ba60 .quad -7999724640327104446 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000ba68 .quad -8670947710510816634 + 0x53, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000ba70 .quad 3835402254873283155 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000ba78 .quad -6226998619711132888 + 0xe8, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000ba80 .quad 4794252818591603944 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000ba88 .quad -3172062256211528206 + 0x11, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000ba90 .quad 7608094030047140369 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000ba98 .quad -8900067937773286985 + 0x95, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000baa0 .quad 4898431519131537557 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000baa8 .quad -6513398903789220827 + 0xbb, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000bab0 .quad -7712018656367741765 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000bab8 .quad -3530062611309138130 + 0xf5, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000bac0 .quad 2097517367411243253 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000bac8 .quad -9123818159709293187 + 0x32, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000bad0 .quad 7233582727691441970 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000bad8 .quad -6793086681209228580 + 0xfe, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000bae0 .quad 9041978409614302462 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000bae8 .quad -3879672333084147821 + 0x3e, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000baf0 .quad 6690786993590490174 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000baf8 .quad -237904397927796872 + 0xa7, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000bb00 .quad 4181741870994056359 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000bb08 .quad -7066219276345954901 + 0xd0, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000bb10 .quad 615491320315182544 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000bb18 .quad -4221088077005055722 + 0x45, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000bb20 .quad -8454007886460797627 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000bb28 .quad -664674077828931749 + 0x4b, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000bb30 .quad 3939617107816777291 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000bb38 .quad -7332950326284164199 + 0xdd, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000bb40 .quad -8910536670511192099 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000bb48 .quad -4554501889427817345 + 0xd5, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000bb50 .quad 7308573235570561493 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000bb58 .quad -1081441343357383777 + 0x25, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000bb60 .quad -6961356773836868827 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000bb68 .quad -7593429867239446717 + 0xee, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000bb70 .quad -8701695967296086034 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000bb78 .quad -4880101315621920492 + 0xea, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000bb80 .quad -6265433940692719638 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000bb88 .quad -1488440626100012711 + 0xf2, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000bb90 .quad 695789805494438130 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000bb98 .quad -7847804418953589800 + 0x2f, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000bba0 .quad 869737256868047663 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000bba8 .quad -5198069505264599346 + 0xfa, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000bbb0 .quad -8136200465769716230 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000bbb8 .quad -1885900863153361279 + 0xbc, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000bbc0 .quad -473439272678684740 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000bbc8 .quad -8096217067111932656 + 0xac, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000bbd0 .quad 4019886927579031980 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000bbd8 .quad -5508585315462527915 + 0x17, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000bbe0 .quad -8810199395808373737 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000bbe8 .quad -2274045625900771990 + 0x8e, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000bbf0 .quad -7812217631593927538 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000bbf8 .quad -8338807543829064350 + 0xb2, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000bc00 .quad 4069786015789754290 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000bc08 .quad -5811823411358942533 + 0x9e, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000bc10 .quad 475546501309804958 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000bc18 .quad -2653093245771290262 + 0x03, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000bc20 .quad 4908902581746016003 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000bc28 .quad -8575712306248138270 + 0xc3, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000bc30 .quad -3087243809672255805 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000bc38 .quad -6107954364382784934 + 0x74, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000bc40 .quad -8470740780517707660 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000bc48 .quad -3023256937051093263 + 0x49, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000bc50 .quad -682526969396179383 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000bc58 .quad -8807064613298015146 + 0xdb, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000bc60 .quad -5464844730172612133 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000bc68 .quad -6397144748195131028 + 0x52, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000bc70 .quad -2219369894288377262 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000bc78 .quad -3384744916816525881 + 0x73, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000bc80 .quad -1387106183930235789 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000bc88 .quad -9032994600651410532 + 0x90, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000bc90 .quad 2877803288514593168 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000bc98 .quad -6679557232386875260 + 0xf4, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000bca0 .quad 3597254110643241460 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000bca8 .quad -3737760522056206171 + 0x71, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000bcb0 .quad 9108253656731439729 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000bcb8 .quad -60514634142869810 + 0x86, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000bcc0 .quad 1080972517029761926 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000bcc8 .quad -6955350673980375487 + 0x68, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000bcd0 .quad 5962901664714590312 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000bcd8 .quad -4082502324048081455 + 0x82, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000bce0 .quad -6381430974388925822 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000bce8 .quad -491441886632713915 + 0x91, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000bcf0 .quad -8600080377420466543 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000bcf8 .quad -7224680206786528053 + 0x35, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000bd00 .quad 7696643601933968437 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000bd08 .quad -4419164240055772162 + 0x43, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000bd10 .quad 397432465562684739 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000bd18 .quad -912269281642327298 + 0x4a, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000bd20 .quad -4363290727450709942 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000bd28 .quad -7487697328667536418 + 0x5c, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000bd30 .quad 8380944645968776284 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000bd38 .quad -4747935642407032618 + 0x73, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000bd40 .quad 1252808770606194547 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000bd48 .quad -1323233534581402868 + 0xa8, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000bd50 .quad -8440366555225904216 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000bd58 .quad -7744549986754458649 + 0x92, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000bd60 .quad 7896285879677171346 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000bd68 .quad -5069001465015685407 + 0x37, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000bd70 .quad -3964700705685699529 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000bd78 .quad -1724565812842218855 + 0xa2, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000bd80 .quad 2133748077373825698 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000bd88 .quad -7995382660667468640 + 0x4b, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000bd90 .quad 2667185096717282123 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000bd98 .quad -5382542307406947896 + 0x1d, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000bda0 .quad 3333981370896602653 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000bda8 .quad -2116491865831296966 + 0xd2, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000bdb0 .quad 6695424375237764562 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000bdb8 .quad -8240336443785642460 + 0x47, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000bdc0 .quad 8369280469047205703 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000bdc8 .quad -5688734536304665171 + 0x19, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000bdd0 .quad -3373457468973156583 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000bdd8 .quad -2499232151953443560 + 0x6f, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000bde0 .quad -9025939945749304721 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000bde8 .quad -8479549122611984081 + 0x0b, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000bdf0 .quad 7164319141522920715 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000bdf8 .quad -5987750384837592197 + 0x4e, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000be00 .quad 4343712908476262990 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000be08 .quad -2873001962619602342 + 0x71, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000be10 .quad 7326506586225052273 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000be18 .quad -8713155254278333320 + 0x0d, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000be20 .quad 9158133232781315341 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000be28 .quad -6279758049420528746 + 0x50, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000be30 .quad 2224294504121868368 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000be38 .quad -3238011543348273028 + 0x32, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000be40 .quad -7833187971778608078 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000be48 .quad -8941286242233752499 + 0x3f, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000be50 .quad -568112927868484289 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000be58 .quad -6564921784364802720 + 0x8e, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000be60 .quad 3901544858591782542 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000be68 .quad -3594466212028615495 + 0x19, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000be70 .quad -4479063491021217767 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000be78 .quad -9164070410158966541 + 0x1f, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000be80 .quad -5598829363776522209 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000be88 .quad -6843401994271320272 + 0x27, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000be90 .quad -2386850686293264857 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000be98 .quad -3942566474411762436 + 0xb1, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000bea0 .quad 1628122660560806833 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000bea8 .quad -316522074587315140 + 0x4e, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000beb0 .quad -8205795374004271538 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000beb8 .quad -7115355324258153819 + 0xe2, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000bec0 .quad -1033872180650563614 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000bec8 .quad -4282508136895304370 + 0xdb, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000bed0 .quad -5904026244240592421 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000bed8 .quad -741449152691742558 + 0x29, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000bee0 .quad -5995859411864064215 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000bee8 .quad -7380934748073420955 + 0xf3, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000bef0 .quad 1728547772024695539 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000bef8 .quad -4614482416664388289 + 0xb0, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000bf00 .quad -2451001303396518480 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000bf08 .quad -1156417002403097458 + 0x8e, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000bf10 .quad 5385653213018257806 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000bf18 .quad -7640289654143017767 + 0xf1, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000bf20 .quad -7102991539009341455 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000bf28 .quad -4938676049251384305 + 0xed, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000bf30 .quad -8878739423761676819 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000bf38 .quad -1561659043136842477 + 0xb4, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000bf40 .quad 3674159897003727796 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000bf48 .quad -7893565929601608404 + 0xa1, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000bf50 .quad 4592699871254659745 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000bf58 .quad -5255271393574622601 + 0x4a, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000bf60 .quad 1129188820640936778 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000bf68 .quad -1957403223540890347 + 0x0e, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000bf70 .quad 3011586022114279438 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000bf78 .quad -8140906042354138323 + 0x12, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000bf80 .quad 8376168546070237202 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000bf88 .quad -5564446534515285000 + 0x16, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000bf90 .quad -7976533391121755114 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000bf98 .quad -2343872149716718346 + 0x8e, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000bfa0 .quad 1932195658189984910 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000bfa8 .quad -8382449121214030822 + 0xb1, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000bfb0 .quad -6808127464117294671 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000bfb8 .quad -5866375383090150624 + 0x1e, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000bfc0 .quad -3898473311719230434 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000bfc8 .quad -2721283210435300376 + 0x92, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000bfd0 .quad 9092669226243950738 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000bfd8 .quad -8618331034163144591 + 0xb7, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000bfe0 .quad -2469221522477225289 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000bfe8 .quad -6161227774276542835 + 0x65, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000bff0 .quad 6136845133758244197 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000bff8 .quad -3089848699418290639 + 0x5f, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000c000 .quad -3082000819042179233 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000c008 .quad -8848684464777513506 + 0x37, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000c010 .quad -8464187042230111945 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000c018 .quad -6449169562544503978 + 0x85, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000c020 .quad 3254824252494523781 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000c028 .quad -3449775934753242068 + 0x73, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000c030 .quad -7189106879045698445 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000c038 .quad -9073638986861858149 + 0x8f, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000c040 .quad -8986383598807123057 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000c048 .quad -6730362715149934782 + 0x73, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000c050 .quad 2602078556773259891 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000c058 .quad -3801267375510030573 + 0x10, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000c060 .quad -1359087822460813040 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000c068 .quad -139898200960150313 + 0xaa, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000c070 .quad -849429889038008150 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000c078 .quad -7004965403241175802 + 0xd5, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000c080 .quad -5673473379724898091 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000c088 .quad -4144520735624081848 + 0x0a, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000c090 .quad -2480155706228734710 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000c098 .quad -568964901102714406 + 0x26, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000c0a0 .quad -3855940325606653146 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000c0a8 .quad -7273132090830278360 + 0xf0, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000c0b0 .quad -208239388580928528 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000c0b8 .quad -4479729095110460046 + 0xec, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000c0c0 .quad -4871985254153548564 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000c0c8 .quad -987975350460687153 + 0x13, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000c0d0 .quad -3044990783845967853 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000c0d8 .quad -7535013621679011327 + 0x18, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000c0e0 .quad 5417133557047315992 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000c0e8 .quad -4807081008671376254 + 0x9e, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000c0f0 .quad -2451955090545630818 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000c0f8 .quad -1397165242411832414 + 0x03, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000c100 .quad -3838314940804713213 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000c108 .quad -7790757304148477115 + 0x43, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000c110 .quad 4425478360848884291 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000c118 .quad -5126760611758208489 + 0xd4, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000c120 .quad 920161932633717460 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000c128 .quad -1796764746270372707 + 0xc5, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000c130 .quad 2880944217109767365 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000c138 .quad -8040506994060064798 + 0xf6, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000c140 .quad -5622191765467566602 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000c148 .quad -5438947724147693094 + 0x73, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000c150 .quad 6807318348447705459 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000c158 .quad -2186998636757228463 + 0xe8, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000c160 .quad -2662955059861265944 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000c168 .quad -8284403175614349646 + 0x62, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000c170 .quad -7940379843253970334 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000c178 .quad -5743817951090549153 + 0xfb, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000c180 .quad 8521269269642088699 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000c188 .quad -2568086420435798537 + 0x9d, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000c190 .quad -6203421752542164323 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000c198 .quad -8522583040413455942 + 0x44, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000c1a0 .quad 6080780864604458308 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000c1a8 .quad -6041542782089432023 + 0x95, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000c1b0 .quad -6234081974526590827 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000c1b8 .quad -2940242459184402125 + 0x5d, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000c1c0 .quad 5327070802775656541 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000c1c8 .quad -8755180564631333184 + 0x74, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000c1d0 .quad 6658838503469570676 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000c1d8 .quad -6332289687361778576 + 0x11, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000c1e0 .quad 8323548129336963345 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000c1e8 .quad -3303676090774835316 + 0xab, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000c1f0 .quad -4021154456019173717 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000c1f8 .quad -8982326584375353929 + 0x55, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000c200 .quad -5026443070023967147 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000c208 .quad -6616222212041804507 + 0xeb, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000c210 .quad 2940318199324816875 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000c218 .quad -3658591746624867729 + 0xb3, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000c220 .quad 8755227902219092403 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000c228 .quad -9204148869281624187 + 0x1f, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000c230 .quad -2891023177508298209 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000c238 .quad -6893500068174642330 + 0xa7, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000c240 .quad -8225464990312760665 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000c248 .quad -4005189066790915008 + 0x51, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000c250 .quad -5670145219463562927 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000c258 .quad -394800315061255856 + 0xd3, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000c260 .quad 7985374283903742931 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000c268 .quad -7164279224554366766 + 0xc8, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000c270 .quad 758345818024902856 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000c278 .quad -4343663012265570553 + 0xfa, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000c280 .quad -3663753745896259334 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000c288 .quad -817892746904575288 + 0x9c, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000c290 .quad -9207375118826243940 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000c298 .quad -7428711994456441411 + 0xc3, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000c2a0 .quad -2285846861678029117 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000c2a8 .quad -4674203974643163860 + 0x74, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000c2b0 .quad 1754377441329851508 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000c2b8 .quad -1231068949876566920 + 0xc8, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000c2c0 .quad 1096485900831157192 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000c2c8 .quad -7686947121313936181 + 0xba, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000c2d0 .quad -3241078642388441414 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000c2d8 .quad -4996997883215032323 + 0x69, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000c2e0 .quad 5172023733869224041 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000c2e8 .quad -1634561335591402499 + 0x41, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000c2f0 .quad 5538357842881958977 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000c2f8 .quad -7939129862385708418 + 0x52, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000c300 .quad -2300424733252327086 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000c308 .quad -5312226309554747619 + 0xa6, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000c310 .quad 6347841120289366950 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000c318 .quad -2028596868516046619 + 0x48, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000c320 .quad 6273243709394548296 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000c328 .quad -8185402070463610993 + 0xda, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000c330 .quad 3229868618315797466 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000c338 .quad -5620066569652125837 + 0xd1, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000c340 .quad -574350245532641071 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000c348 .quad -2413397193637769393 + 0x82, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000c350 .quad -358968903457900670 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000c358 .quad -8425902273664687727 + 0x63, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000c360 .quad 8774660907532399971 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000c368 .quad -5920691823653471754 + 0xbc, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000c370 .quad 1744954097560724156 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000c378 .quad -2789178761139451788 + 0xb5, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000c380 .quad -8132775725879323211 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000c388 .quad -8660765753353239224 + 0x22, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000c390 .quad -5554283638921766110 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000c398 .quad -6214271173264161126 + 0xeb, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000c3a0 .quad 6892203506629956075 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000c3a8 .quad -3156152948152813503 + 0x33, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000c3b0 .quad -2609901835997359309 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000c3b8 .quad -8890124620236590296 + 0x00, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000c3c0 .quad 1349308723430688768 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000c3c8 .quad -6500969756868349965 + 0x00, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000c3d0 .quad -2925050114139026944 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000c3d8 .quad -3514526177658049553 + 0x40, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000c3e0 .quad -1828156321336891840 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000c3e8 .quad -9114107888677362827 + 0xd0, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000c3f0 .quad 6938176635183661008 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000c3f8 .quad -6780948842419315629 + 0xc4, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000c400 .quad 4061034775552188356 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000c408 .quad -3864500034596756632 + 0xb5, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000c410 .quad 5076293469440235445 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000c418 .quad -218939024818557886 + 0xd1, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000c420 .quad 7784369436827535057 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000c428 .quad -7054365918152680535 + 0x85, 0x18, 0x24, 0x05, 0x73, 0x8b, 0x09, 0xc7, //0x0000c430 .quad -4104596259247744891 + 0x93, 0xe2, 0x1b, 0x62, 0x77, 0x52, 0xa0, 0xc5, //0x0000c438 .quad -4206271379263462765 + 0xa7, 0x1e, 0x6d, 0xc6, 0x4f, 0xee, 0xcb, 0xb8, //0x0000c440 .quad -5130745324059681113 + 0x38, 0xdb, 0xa2, 0x3a, 0x15, 0x67, 0x08, 0xf7, //0x0000c448 .quad -646153205651940552 + 0x28, 0x33, 0x04, 0xdc, 0xf1, 0x74, 0x7f, 0x73, //0x0000c450 .quad 8322499218531169064 + 0x03, 0xc9, 0xa5, 0x44, 0x6d, 0x40, 0x65, 0x9a, //0x0000c458 .quad -7321374781173544701 + 0xf2, 0x3f, 0x05, 0x53, 0x2e, 0x52, 0x5f, 0x50, //0x0000c460 .quad 5791438004736573426 + 0x44, 0x3b, 0xcf, 0x95, 0x88, 0x90, 0xfe, 0xc0, //0x0000c468 .quad -4540032458039542972 + 0xef, 0x8f, 0xc6, 0xe7, 0xb9, 0x26, 0x77, 0x64, //0x0000c470 .quad 7239297505920716783 + 0x15, 0x0a, 0x43, 0xbb, 0xaa, 0x34, 0x3e, 0xf1, //0x0000c478 .quad -1063354554122040811 + 0xf5, 0x19, 0xdc, 0x30, 0x34, 0x78, 0xca, 0x5e, //0x0000c480 .quad 6830403950414141941 + 0x4d, 0xe6, 0x09, 0xb5, 0xea, 0xe0, 0xc6, 0x96, //0x0000c488 .quad -7582125623967357363 + 0x72, 0x20, 0x13, 0x3d, 0x41, 0x16, 0x7d, 0xb6, //0x0000c490 .quad -5297053117264486286 + 0xe0, 0x5f, 0x4c, 0x62, 0x25, 0x99, 0x78, 0xbc, //0x0000c498 .quad -4865971011531808800 + 0x8f, 0xe8, 0x57, 0x8c, 0xd1, 0x5b, 0x1c, 0xe4, //0x0000c4a0 .quad -2009630378153219953 + 0xd8, 0x77, 0xdf, 0xba, 0x6e, 0xbf, 0x96, 0xeb, //0x0000c4a8 .quad -1470777745987373096 + 0x59, 0xf1, 0xb6, 0xf7, 0x62, 0xb9, 0x91, 0x8e, //0x0000c4b0 .quad -8173548013986844327 + 0xe7, 0xaa, 0xcb, 0x34, 0xa5, 0x37, 0x3e, 0x93, //0x0000c4b8 .quad -7836765118883190041 + 0xb0, 0xad, 0xa4, 0xb5, 0xbb, 0x27, 0x36, 0x72, //0x0000c4c0 .quad 8229809056225996208 + 0xa1, 0x95, 0xfe, 0x81, 0x8e, 0xc5, 0x0d, 0xb8, //0x0000c4c8 .quad -5184270380176599647 + 0x1c, 0xd9, 0x0d, 0xa3, 0xaa, 0xb1, 0xc3, 0xce, //0x0000c4d0 .quad -3547796734999668452 + 0x09, 0x3b, 0x7e, 0x22, 0xf2, 0x36, 0x11, 0xe6, //0x0000c4d8 .quad -1868651956793361655 + 0xb1, 0xa7, 0xe8, 0xa5, 0x0a, 0x4f, 0x3a, 0x21, //0x0000c4e0 .quad 2394313059052595121 + 0xe6, 0xe4, 0x8e, 0x55, 0x57, 0xc2, 0xca, 0x8f, //0x0000c4e8 .quad -8085436500636932890 + 0x9d, 0xd1, 0x62, 0x4f, 0xcd, 0xe2, 0x88, 0xa9, //0x0000c4f0 .quad -6230480713039031907 + 0x1f, 0x9e, 0xf2, 0x2a, 0xed, 0x72, 0xbd, 0xb3, //0x0000c4f8 .quad -5495109607368778209 + 0x05, 0x86, 0x3b, 0xa3, 0x80, 0x1b, 0xeb, 0x93, //0x0000c500 .quad -7788100891298789883 + 0xa7, 0x45, 0xaf, 0x75, 0xa8, 0xcf, 0xac, 0xe0, //0x0000c508 .quad -2257200990783584857 + 0xc3, 0x33, 0x05, 0x66, 0x30, 0xf1, 0x72, 0xbc, //0x0000c510 .quad -4867563057061743677 + 0x88, 0x8b, 0x8d, 0x49, 0xc9, 0x01, 0x6c, 0x8c, //0x0000c518 .quad -8328279646880822392 + 0xb4, 0x80, 0x86, 0x7f, 0x7c, 0xad, 0x8f, 0xeb, //0x0000c520 .quad -1472767802899791692 + 0x6a, 0xee, 0xf0, 0x9b, 0x3b, 0x02, 0x87, 0xaf, //0x0000c528 .quad -5798663540173640086 + 0xe1, 0x20, 0x68, 0x9f, 0xdb, 0x98, 0x73, 0xa6, //0x0000c530 .quad -6452645772052127519 + 0x05, 0x2a, 0xed, 0x82, 0xca, 0xc2, 0x68, 0xdb, //0x0000c538 .quad -2636643406789662203 + 0x8c, 0x14, 0xa1, 0x43, 0x89, 0x3f, 0x08, 0x88, //0x0000c540 .quad -8644589625959967604 + 0x43, 0x3a, 0xd4, 0x91, 0xbe, 0x79, 0x21, 0x89, //0x0000c548 .quad -8565431156884620733 + 0xb0, 0x59, 0x89, 0x94, 0x6b, 0x4f, 0x0a, 0x6a, //0x0000c550 .quad 7641007041259592112 + 0xd4, 0x48, 0x49, 0x36, 0x2e, 0xd8, 0x69, 0xab, //0x0000c558 .quad -6095102927678388012 + 0x1c, 0xb0, 0xab, 0x79, 0x46, 0xe3, 0x8c, 0x84, //0x0000c560 .quad -8895485272135061476 + 0x09, 0x9b, 0xdb, 0xc3, 0x39, 0x4e, 0x44, 0xd6, //0x0000c568 .quad -3007192641170597111 + 0x11, 0x4e, 0x0b, 0x0c, 0x0c, 0x0e, 0xd8, 0xf2, //0x0000c570 .quad -947992276657025519 + 0xe5, 0x40, 0x69, 0x1a, 0xe4, 0xb0, 0xea, 0x85, //0x0000c578 .quad -8797024428372705051 + 0x95, 0x21, 0x0e, 0x0f, 0x8f, 0x11, 0x8e, 0x6f, //0x0000c580 .quad 8038381691033493909 + 0x1f, 0x91, 0x03, 0x21, 0x1d, 0x5d, 0x65, 0xa7, //0x0000c588 .quad -6384594517038493409 + 0xfb, 0xa9, 0xd1, 0xd2, 0xf2, 0x95, 0x71, 0x4b, //0x0000c590 .quad 5436291095364479483 + 0x67, 0x75, 0x44, 0x69, 0x64, 0xb4, 0x3e, 0xd1, //0x0000c598 .quad -3369057127870728857 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c5a0 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x0000c5b0 .p2align 4, 0x00 + //0x0000c5b0 _POW_TAB + 0x01, 0x00, 0x00, 0x00, //0x0000c5b0 .long 1 + 0x03, 0x00, 0x00, 0x00, //0x0000c5b4 .long 3 + 0x06, 0x00, 0x00, 0x00, //0x0000c5b8 .long 6 + 0x09, 0x00, 0x00, 0x00, //0x0000c5bc .long 9 + 0x0d, 0x00, 0x00, 0x00, //0x0000c5c0 .long 13 + 0x10, 0x00, 0x00, 0x00, //0x0000c5c4 .long 16 + 0x13, 0x00, 0x00, 0x00, //0x0000c5c8 .long 19 + 0x17, 0x00, 0x00, 0x00, //0x0000c5cc .long 23 + 0x1a, 0x00, 0x00, 0x00, //0x0000c5d0 .long 26 + //0x0000c5d4 .p2align 2, 0x00 + //0x0000c5d4 _MASK_USE_NUMBER + 0x02, 0x00, 0x00, 0x00, //0x0000c5d4 .long 2 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c5d8 .p2align 4, 0x00 + //0x0000c5e0 _Digits + 0x30, 0x30, 0x30, 0x31, 0x30, 0x32, 0x30, 0x33, 0x30, 0x34, 0x30, 0x35, 0x30, 0x36, 0x30, 0x37, //0x0000c5e0 QUAD $0x3330323031303030; QUAD $0x3730363035303430 // .ascii 16, '0001020304050607' + 0x30, 0x38, 0x30, 0x39, 0x31, 0x30, 0x31, 0x31, 0x31, 0x32, 0x31, 0x33, 0x31, 0x34, 0x31, 0x35, //0x0000c5f0 QUAD $0x3131303139303830; QUAD $0x3531343133313231 // .ascii 16, '0809101112131415' + 0x31, 0x36, 0x31, 0x37, 0x31, 0x38, 0x31, 0x39, 0x32, 0x30, 0x32, 0x31, 0x32, 0x32, 0x32, 0x33, //0x0000c600 QUAD $0x3931383137313631; QUAD $0x3332323231323032 // .ascii 16, '1617181920212223' + 0x32, 0x34, 0x32, 0x35, 0x32, 0x36, 0x32, 0x37, 0x32, 0x38, 0x32, 0x39, 0x33, 0x30, 0x33, 0x31, //0x0000c610 QUAD $0x3732363235323432; QUAD $0x3133303339323832 // .ascii 16, '2425262728293031' + 0x33, 0x32, 0x33, 0x33, 0x33, 0x34, 0x33, 0x35, 0x33, 0x36, 0x33, 0x37, 0x33, 0x38, 0x33, 0x39, //0x0000c620 QUAD $0x3533343333333233; QUAD $0x3933383337333633 // .ascii 16, '3233343536373839' + 0x34, 0x30, 0x34, 0x31, 0x34, 0x32, 0x34, 0x33, 0x34, 0x34, 0x34, 0x35, 0x34, 0x36, 0x34, 0x37, //0x0000c630 QUAD $0x3334323431343034; QUAD $0x3734363435343434 // .ascii 16, '4041424344454647' + 0x34, 0x38, 0x34, 0x39, 0x35, 0x30, 0x35, 0x31, 0x35, 0x32, 0x35, 0x33, 0x35, 0x34, 0x35, 0x35, //0x0000c640 QUAD $0x3135303539343834; QUAD $0x3535343533353235 // .ascii 16, '4849505152535455' + 0x35, 0x36, 0x35, 0x37, 0x35, 0x38, 0x35, 0x39, 0x36, 0x30, 0x36, 0x31, 0x36, 0x32, 0x36, 0x33, //0x0000c650 QUAD $0x3935383537353635; QUAD $0x3336323631363036 // .ascii 16, '5657585960616263' + 0x36, 0x34, 0x36, 0x35, 0x36, 0x36, 0x36, 0x37, 0x36, 0x38, 0x36, 0x39, 0x37, 0x30, 0x37, 0x31, //0x0000c660 QUAD $0x3736363635363436; QUAD $0x3137303739363836 // .ascii 16, '6465666768697071' + 0x37, 0x32, 0x37, 0x33, 0x37, 0x34, 0x37, 0x35, 0x37, 0x36, 0x37, 0x37, 0x37, 0x38, 0x37, 0x39, //0x0000c670 QUAD $0x3537343733373237; QUAD $0x3937383737373637 // .ascii 16, '7273747576777879' + 0x38, 0x30, 0x38, 0x31, 0x38, 0x32, 0x38, 0x33, 0x38, 0x34, 0x38, 0x35, 0x38, 0x36, 0x38, 0x37, //0x0000c680 QUAD $0x3338323831383038; QUAD $0x3738363835383438 // .ascii 16, '8081828384858687' + 0x38, 0x38, 0x38, 0x39, 0x39, 0x30, 0x39, 0x31, 0x39, 0x32, 0x39, 0x33, 0x39, 0x34, 0x39, 0x35, //0x0000c690 QUAD $0x3139303939383838; QUAD $0x3539343933393239 // .ascii 16, '8889909192939495' + 0x39, 0x36, 0x39, 0x37, 0x39, 0x38, 0x39, 0x39, //0x0000c6a0 QUAD $0x3939383937393639 // .ascii 8, '96979899' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000c6a8 .p2align 4, 0x00 + //0x0000c6b0 _pow10_ceil_sig.g + 0x4f, 0xdc, 0xbc, 0xbe, 0xfc, 0xb1, 0x77, 0xff, //0x0000c6b0 .quad -38366372719436721 + 0x7b, 0x0f, 0xbb, 0x13, 0x9c, 0xe8, 0xe8, 0x25, //0x0000c6b8 .quad 2731688931043774331 + 0xb1, 0x09, 0x36, 0xf7, 0x3d, 0xcf, 0xaa, 0x9f, //0x0000c6c0 .quad -6941508010590729807 + 0xad, 0xe9, 0x54, 0x8c, 0x61, 0x91, 0xb1, 0x77, //0x0000c6c8 .quad 8624834609543440813 + 0x1d, 0x8c, 0x03, 0x75, 0x0d, 0x83, 0x95, 0xc7, //0x0000c6d0 .quad -4065198994811024355 + 0x18, 0x24, 0x6a, 0xef, 0xb9, 0xf5, 0x9d, 0xd5, //0x0000c6d8 .quad -3054014793352862696 + 0x25, 0x6f, 0x44, 0xd2, 0xd0, 0xe3, 0x7a, 0xf9, //0x0000c6e0 .quad -469812725086392539 + 0x1e, 0xad, 0x44, 0x6b, 0x28, 0x73, 0x05, 0x4b, //0x0000c6e8 .quad 5405853545163697438 + 0x77, 0xc5, 0x6a, 0x83, 0x62, 0xce, 0xec, 0x9b, //0x0000c6f0 .quad -7211161980820077193 + 0x33, 0xec, 0x0a, 0x43, 0xf9, 0x67, 0xe3, 0x4e, //0x0000c6f8 .quad 5684501474941004851 + 0xd5, 0x76, 0x45, 0x24, 0xfb, 0x01, 0xe8, 0xc2, //0x0000c700 .quad -4402266457597708587 + 0x40, 0xa7, 0xcd, 0x93, 0xf7, 0x41, 0x9c, 0x22, //0x0000c708 .quad 2493940825248868160 + 0x8a, 0xd4, 0x56, 0xed, 0x79, 0x02, 0xa2, 0xf3, //0x0000c710 .quad -891147053569747830 + 0x10, 0x11, 0xc1, 0x78, 0x75, 0x52, 0x43, 0x6b, //0x0000c718 .quad 7729112049988473104 + 0xd6, 0x44, 0x56, 0x34, 0x8c, 0x41, 0x45, 0x98, //0x0000c720 .quad -7474495936122174250 + 0xaa, 0xaa, 0x78, 0x6b, 0x89, 0x13, 0x0a, 0x83, //0x0000c728 .quad -9004363024039368022 + 0x0c, 0xd6, 0x6b, 0x41, 0xef, 0x91, 0x56, 0xbe, //0x0000c730 .quad -4731433901725329908 + 0x54, 0xd5, 0x56, 0xc6, 0x6b, 0x98, 0xcc, 0x23, //0x0000c738 .quad 2579604275232953684 + 0x8f, 0xcb, 0xc6, 0x11, 0x6b, 0x36, 0xec, 0xed, //0x0000c740 .quad -1302606358729274481 + 0xa9, 0x8a, 0xec, 0xb7, 0x86, 0xbe, 0xbf, 0x2c, //0x0000c748 .quad 3224505344041192105 + 0x39, 0x3f, 0x1c, 0xeb, 0x02, 0xa2, 0xb3, 0x94, //0x0000c750 .quad -7731658001846878407 + 0xaa, 0xd6, 0xf3, 0x32, 0x14, 0xd7, 0xf7, 0x7b, //0x0000c758 .quad 8932844867666826922 + 0x07, 0x4f, 0xe3, 0xa5, 0x83, 0x8a, 0xe0, 0xb9, //0x0000c760 .quad -5052886483881210105 + 0x54, 0xcc, 0xb0, 0x3f, 0xd9, 0xcc, 0xf5, 0xda, //0x0000c768 .quad -2669001970698630060 + 0xc9, 0x22, 0x5c, 0x8f, 0x24, 0xad, 0x58, 0xe8, //0x0000c770 .quad -1704422086424124727 + 0x69, 0xff, 0x9c, 0x8f, 0x0f, 0x40, 0xb3, 0xd1, //0x0000c778 .quad -3336252463373287575 + 0xbe, 0x95, 0x99, 0xd9, 0x36, 0x6c, 0x37, 0x91, //0x0000c780 .quad -7982792831656159810 + 0xa2, 0x1f, 0xc2, 0xb9, 0x09, 0x08, 0x10, 0x23, //0x0000c788 .quad 2526528228819083170 + 0x2d, 0xfb, 0xff, 0x8f, 0x44, 0x47, 0x85, 0xb5, //0x0000c790 .quad -5366805021142811859 + 0x8b, 0xa7, 0x32, 0x28, 0x0c, 0x0a, 0xd4, 0xab, //0x0000c798 .quad -6065211750830921845 + 0xf9, 0xf9, 0xff, 0xb3, 0x15, 0x99, 0xe6, 0xe2, //0x0000c7a0 .quad -2096820258001126919 + 0x6d, 0x51, 0x3f, 0x32, 0x8f, 0x0c, 0xc9, 0x16, //0x0000c7a8 .quad 1641857348316123501 + 0x3b, 0xfc, 0x7f, 0x90, 0xad, 0x1f, 0xd0, 0x8d, //0x0000c7b0 .quad -8228041688891786181 + 0xe4, 0x92, 0x67, 0x7f, 0xd9, 0xa7, 0x3d, 0xae, //0x0000c7b8 .quad -5891368184943504668 + 0x4a, 0xfb, 0x9f, 0xf4, 0x98, 0x27, 0x44, 0xb1, //0x0000c7c0 .quad -5673366092687344822 + 0x9d, 0x77, 0x41, 0xdf, 0xcf, 0x11, 0xcd, 0x99, //0x0000c7c8 .quad -7364210231179380835 + 0x1d, 0xfa, 0xc7, 0x31, 0x7f, 0x31, 0x95, 0xdd, //0x0000c7d0 .quad -2480021597431793123 + 0x84, 0xd5, 0x11, 0xd7, 0x43, 0x56, 0x40, 0x40, //0x0000c7d8 .quad 4629795266307937668 + 0x52, 0xfc, 0x1c, 0x7f, 0xef, 0x3e, 0x7d, 0x8a, //0x0000c7e0 .quad -8467542526035952558 + 0x73, 0x25, 0x6b, 0x66, 0xea, 0x35, 0x28, 0x48, //0x0000c7e8 .quad 5199465050656154995 + 0x66, 0x3b, 0xe4, 0x5e, 0xab, 0x8e, 0x1c, 0xad, //0x0000c7f0 .quad -5972742139117552794 + 0xd0, 0xee, 0x05, 0x00, 0x65, 0x43, 0x32, 0xda, //0x0000c7f8 .quad -2724040723534582064 + 0x40, 0x4a, 0x9d, 0x36, 0x56, 0xb2, 0x63, 0xd8, //0x0000c800 .quad -2854241655469553088 + 0x83, 0x6a, 0x07, 0x40, 0x3e, 0xd4, 0xbe, 0x90, //0x0000c808 .quad -8016736922845615485 + 0x68, 0x4e, 0x22, 0xe2, 0x75, 0x4f, 0x3e, 0x87, //0x0000c810 .quad -8701430062309552536 + 0x92, 0xa2, 0x04, 0xe8, 0xa6, 0x44, 0x77, 0x5a, //0x0000c818 .quad 6518754469289960082 + 0x02, 0xe2, 0xaa, 0x5a, 0x53, 0xe3, 0x0d, 0xa9, //0x0000c820 .quad -6265101559459552766 + 0x37, 0xcb, 0x05, 0xa2, 0xd0, 0x15, 0x15, 0x71, //0x0000c828 .quad 8148443086612450103 + 0x83, 0x9a, 0x55, 0x31, 0x28, 0x5c, 0x51, 0xd3, //0x0000c830 .quad -3219690930897053053 + 0x04, 0x3e, 0x87, 0xca, 0x44, 0x5b, 0x5a, 0x0d, //0x0000c838 .quad 962181821410786820 + 0x91, 0x80, 0xd5, 0x1e, 0x99, 0xd9, 0x12, 0x84, //0x0000c840 .quad -8929835859451740015 + 0xc3, 0x86, 0x94, 0xfe, 0x0a, 0x79, 0x58, 0xe8, //0x0000c848 .quad -1704479370831952189 + 0xb6, 0xe0, 0x8a, 0x66, 0xff, 0x8f, 0x17, 0xa5, //0x0000c850 .quad -6550608805887287114 + 0x73, 0xa8, 0x39, 0xbe, 0x4d, 0x97, 0x6e, 0x62, //0x0000c858 .quad 7092772823314835571 + 0xe3, 0x98, 0x2d, 0x40, 0xff, 0x73, 0x5d, 0xce, //0x0000c860 .quad -3576574988931720989 + 0x90, 0x12, 0xc8, 0x2d, 0x21, 0x3d, 0x0a, 0xfb, //0x0000c868 .quad -357406007711231344 + 0x8e, 0x7f, 0x1c, 0x88, 0x7f, 0x68, 0xfa, 0x80, //0x0000c870 .quad -9152888395723407474 + 0x9a, 0x0b, 0x9d, 0xbc, 0x34, 0x66, 0xe6, 0x7c, //0x0000c878 .quad 8999993282035256218 + 0x72, 0x9f, 0x23, 0x6a, 0x9f, 0x02, 0x39, 0xa1, //0x0000c880 .quad -6829424476226871438 + 0x81, 0x4e, 0xc4, 0xeb, 0xc1, 0xff, 0x1f, 0x1c, //0x0000c888 .quad 2026619565689294465 + 0x4e, 0x87, 0xac, 0x44, 0x47, 0x43, 0x87, 0xc9, //0x0000c890 .quad -3925094576856201394 + 0x21, 0x62, 0xb5, 0x66, 0xb2, 0xff, 0x27, 0xa3, //0x0000c898 .quad -6690097579743157727 + 0x22, 0xa9, 0xd7, 0x15, 0x19, 0x14, 0xe9, 0xfb, //0x0000c8a0 .quad -294682202642863838 + 0xa9, 0xba, 0x62, 0x00, 0x9f, 0xff, 0xf1, 0x4b, //0x0000c8a8 .quad 5472436080603216553 + 0xb5, 0xc9, 0xa6, 0xad, 0x8f, 0xac, 0x71, 0x9d, //0x0000c8b0 .quad -7101705404292871755 + 0xaa, 0xb4, 0x3d, 0x60, 0xc3, 0x3f, 0x77, 0x6f, //0x0000c8b8 .quad 8031958568804398250 + 0x22, 0x7c, 0x10, 0x99, 0xb3, 0x17, 0xce, 0xc4, //0x0000c8c0 .quad -4265445736938701790 + 0xd4, 0x21, 0x4d, 0x38, 0xb4, 0x0f, 0x55, 0xcb, //0x0000c8c8 .quad -3795109844276665900 + 0x2b, 0x9b, 0x54, 0x7f, 0xa0, 0x9d, 0x01, 0xf6, //0x0000c8d0 .quad -720121152745989333 + 0x49, 0x6a, 0x60, 0x46, 0xa1, 0x53, 0x2a, 0x7e, //0x0000c8d8 .quad 9091170749936331337 + 0xfb, 0xe0, 0x94, 0x4f, 0x84, 0x02, 0xc1, 0x99, //0x0000c8e0 .quad -7367604748107325189 + 0x6e, 0x42, 0xfc, 0xcb, 0x44, 0x74, 0xda, 0x2e, //0x0000c8e8 .quad 3376138709496513134 + 0x39, 0x19, 0x7a, 0x63, 0x25, 0x43, 0x31, 0xc0, //0x0000c8f0 .quad -4597819916706768583 + 0x09, 0x53, 0xfb, 0xfe, 0x55, 0x11, 0x91, 0xfa, //0x0000c8f8 .quad -391512631556746487 + 0x88, 0x9f, 0x58, 0xbc, 0xee, 0x93, 0x3d, 0xf0, //0x0000c900 .quad -1135588877456072824 + 0xcb, 0x27, 0xba, 0x7e, 0xab, 0x55, 0x35, 0x79, //0x0000c908 .quad 8733981247408842699 + 0xb5, 0x63, 0xb7, 0x35, 0x75, 0x7c, 0x26, 0x96, //0x0000c910 .quad -7627272076051127371 + 0xdf, 0x58, 0x34, 0x2f, 0x8b, 0x55, 0xc1, 0x4b, //0x0000c918 .quad 5458738279630526687 + 0xa2, 0x3c, 0x25, 0x83, 0x92, 0x1b, 0xb0, 0xbb, //0x0000c920 .quad -4922404076636521310 + 0x17, 0x6f, 0x01, 0xfb, 0xed, 0xaa, 0xb1, 0x9e, //0x0000c928 .quad -7011635205744005353 + 0xcb, 0x8b, 0xee, 0x23, 0x77, 0x22, 0x9c, 0xea, //0x0000c930 .quad -1541319077368263733 + 0xdd, 0xca, 0xc1, 0x79, 0xa9, 0x15, 0x5e, 0x46, //0x0000c938 .quad 5070514048102157021 + 0x5f, 0x17, 0x75, 0x76, 0x8a, 0x95, 0xa1, 0x92, //0x0000c940 .quad -7880853450996246689 + 0xca, 0x1e, 0x19, 0xec, 0x89, 0xcd, 0xfa, 0x0b, //0x0000c948 .quad 863228270850154186 + 0x36, 0x5d, 0x12, 0x14, 0xed, 0xfa, 0x49, 0xb7, //0x0000c950 .quad -5239380795317920458 + 0x7c, 0x66, 0x1f, 0x67, 0xec, 0x80, 0xf9, 0xce, //0x0000c958 .quad -3532650679864695172 + 0x84, 0xf4, 0x16, 0x59, 0xa8, 0x79, 0x1c, 0xe5, //0x0000c960 .quad -1937539975720012668 + 0x1b, 0x40, 0xe7, 0x80, 0x27, 0xe1, 0xb7, 0x82, //0x0000c968 .quad -9027499368258256869 + 0xd2, 0x58, 0xae, 0x37, 0x09, 0xcc, 0x31, 0x8f, //0x0000c970 .quad -8128491512466089774 + 0x11, 0x88, 0x90, 0xb0, 0xb8, 0xec, 0xb2, 0xd1, //0x0000c978 .quad -3336344095947716591 + 0x07, 0xef, 0x99, 0x85, 0x0b, 0x3f, 0xfe, 0xb2, //0x0000c980 .quad -5548928372155224313 + 0x16, 0xaa, 0xb4, 0xdc, 0xe6, 0xa7, 0x1f, 0x86, //0x0000c988 .quad -8782116138362033642 + 0xc9, 0x6a, 0x00, 0x67, 0xce, 0xce, 0xbd, 0xdf, //0x0000c990 .quad -2324474446766642487 + 0x9b, 0xd4, 0xe1, 0x93, 0xe0, 0x91, 0xa7, 0x67, //0x0000c998 .quad 7469098900757009563 + 0xbd, 0x42, 0x60, 0x00, 0x41, 0xa1, 0xd6, 0x8b, //0x0000c9a0 .quad -8370325556870233411 + 0xe1, 0x24, 0x6d, 0x5c, 0x2c, 0xbb, 0xc8, 0xe0, //0x0000c9a8 .quad -2249342214667950879 + 0x6d, 0x53, 0x78, 0x40, 0x91, 0x49, 0xcc, 0xae, //0x0000c9b0 .quad -5851220927660403859 + 0x19, 0x6e, 0x88, 0x73, 0xf7, 0xe9, 0xfa, 0x58, //0x0000c9b8 .quad 6411694268519837209 + 0x48, 0x68, 0x96, 0x90, 0xf5, 0x5b, 0x7f, 0xda, //0x0000c9c0 .quad -2702340141148116920 + 0x9f, 0x89, 0x6a, 0x50, 0x75, 0xa4, 0x39, 0xaf, //0x0000c9c8 .quad -5820440219632367201 + 0x2d, 0x01, 0x5e, 0x7a, 0x79, 0x99, 0x8f, 0x88, //0x0000c9d0 .quad -8606491615858654931 + 0x04, 0x96, 0x42, 0x52, 0xc9, 0x06, 0x84, 0x6d, //0x0000c9d8 .quad 7891439908798240260 + 0x78, 0x81, 0xf5, 0xd8, 0xd7, 0x7f, 0xb3, 0xaa, //0x0000c9e0 .quad -6146428501395930760 + 0x84, 0x3b, 0xd3, 0xa6, 0x7b, 0x08, 0xe5, 0xc8, //0x0000c9e8 .quad -3970758169284363388 + 0xd6, 0xe1, 0x32, 0xcf, 0xcd, 0x5f, 0x60, 0xd5, //0x0000c9f0 .quad -3071349608317525546 + 0x65, 0x0a, 0x88, 0x90, 0x9a, 0x4a, 0x1e, 0xfb, //0x0000c9f8 .quad -351761693178066331 + 0x26, 0xcd, 0x7f, 0xa1, 0xe0, 0x3b, 0x5c, 0x85, //0x0000ca00 .quad -8837122532839535322 + 0x80, 0x06, 0x55, 0x9a, 0xa0, 0xee, 0xf2, 0x5c, //0x0000ca08 .quad 6697677969404790400 + 0x6f, 0xc0, 0xdf, 0xc9, 0xd8, 0x4a, 0xb3, 0xa6, //0x0000ca10 .quad -6434717147622031249 + 0x1f, 0x48, 0xea, 0xc0, 0x48, 0xaa, 0x2f, 0xf4, //0x0000ca18 .quad -851274575098787809 + 0x8b, 0xb0, 0x57, 0xfc, 0x8e, 0x1d, 0x60, 0xd0, //0x0000ca20 .quad -3431710416100151157 + 0x27, 0xda, 0x24, 0xf1, 0xda, 0x94, 0x3b, 0xf1, //0x0000ca28 .quad -1064093218873484761 + 0x57, 0xce, 0xb6, 0x5d, 0x79, 0x12, 0x3c, 0x82, //0x0000ca30 .quad -9062348037703676329 + 0x59, 0x08, 0xb7, 0xd6, 0x08, 0x3d, 0xc5, 0x76, //0x0000ca38 .quad 8558313775058847833 + 0xed, 0x81, 0x24, 0xb5, 0x17, 0x17, 0xcb, 0xa2, //0x0000ca40 .quad -6716249028702207507 + 0x6f, 0xca, 0x64, 0x0c, 0x4b, 0x8c, 0x76, 0x54, //0x0000ca48 .quad 6086206200396171887 + 0x68, 0xa2, 0x6d, 0xa2, 0xdd, 0xdc, 0x7d, 0xcb, //0x0000ca50 .quad -3783625267450371480 + 0x0a, 0xfd, 0x7d, 0xcf, 0x5d, 0x2f, 0x94, 0xa9, //0x0000ca58 .quad -6227300304786948854 + 0x02, 0x0b, 0x09, 0x0b, 0x15, 0x54, 0x5d, 0xfe, //0x0000ca60 .quad -117845565885576446 + 0x4d, 0x7c, 0x5d, 0x43, 0x35, 0x3b, 0xf9, 0xd3, //0x0000ca68 .quad -3172439362556298163 + 0xe1, 0xa6, 0xe5, 0x26, 0x8d, 0x54, 0xfa, 0x9e, //0x0000ca70 .quad -6991182506319567135 + 0xb0, 0x6d, 0x1a, 0x4a, 0x01, 0xc5, 0x7b, 0xc4, //0x0000ca78 .quad -4288617610811380304 + 0x9a, 0x10, 0x9f, 0x70, 0xb0, 0xe9, 0xb8, 0xc6, //0x0000ca80 .quad -4127292114472071014 + 0x1c, 0x09, 0xa1, 0x9c, 0x41, 0xb6, 0x9a, 0x35, //0x0000ca88 .quad 3862600023340550428 + 0xc0, 0xd4, 0xc6, 0x8c, 0x1c, 0x24, 0x67, 0xf8, //0x0000ca90 .quad -547429124662700864 + 0x63, 0x4b, 0xc9, 0x03, 0xd2, 0x63, 0x01, 0xc3, //0x0000ca98 .quad -4395122007679087773 + 0xf8, 0x44, 0xfc, 0xd7, 0x91, 0x76, 0x40, 0x9b, //0x0000caa0 .quad -7259672230555269896 + 0x1e, 0xcf, 0x5d, 0x42, 0x63, 0xde, 0xe0, 0x79, //0x0000caa8 .quad 8782263791269039902 + 0x36, 0x56, 0xfb, 0x4d, 0x36, 0x94, 0x10, 0xc2, //0x0000cab0 .quad -4462904269766699466 + 0xe5, 0x42, 0xf5, 0x12, 0xfc, 0x15, 0x59, 0x98, //0x0000cab8 .quad -7468914334623251739 + 0xc4, 0x2b, 0x7a, 0xe1, 0x43, 0xb9, 0x94, 0xf2, //0x0000cac0 .quad -966944318780986428 + 0x9e, 0x93, 0xb2, 0x17, 0x7b, 0x5b, 0x6f, 0x3e, //0x0000cac8 .quad 4498915137003099038 + 0x5a, 0x5b, 0xec, 0x6c, 0xca, 0xf3, 0x9c, 0x97, //0x0000cad0 .quad -7521869226879198374 + 0x43, 0x9c, 0xcf, 0xee, 0x2c, 0x99, 0x05, 0xa7, //0x0000cad8 .quad -6411550076227838909 + 0x31, 0x72, 0x27, 0x08, 0xbd, 0x30, 0x84, 0xbd, //0x0000cae0 .quad -4790650515171610063 + 0x54, 0x83, 0x83, 0x2a, 0x78, 0xff, 0xc6, 0x50, //0x0000cae8 .quad 5820620459997365076 + 0xbd, 0x4e, 0x31, 0x4a, 0xec, 0x3c, 0xe5, 0xec, //0x0000caf0 .quad -1376627125537124675 + 0x29, 0x64, 0x24, 0x35, 0x56, 0xbf, 0xf8, 0xa4, //0x0000caf8 .quad -6559282480285457367 + 0x36, 0xd1, 0x5e, 0xae, 0x13, 0x46, 0x0f, 0x94, //0x0000cb00 .quad -7777920981101784778 + 0x9a, 0xbe, 0x36, 0xe1, 0x95, 0x77, 0x1b, 0x87, //0x0000cb08 .quad -8711237568605798758 + 0x84, 0x85, 0xf6, 0x99, 0x98, 0x17, 0x13, 0xb9, //0x0000cb10 .quad -5110715207949843068 + 0x40, 0x6e, 0x84, 0x59, 0x7b, 0x55, 0xe2, 0x28, //0x0000cb18 .quad 2946011094524915264 + 0xe5, 0x26, 0x74, 0xc0, 0x7e, 0xdd, 0x57, 0xe7, //0x0000cb20 .quad -1776707991509915931 + 0xd0, 0x89, 0xe5, 0x2f, 0xda, 0xea, 0x1a, 0x33, //0x0000cb28 .quad 3682513868156144080 + 0x4f, 0x98, 0x48, 0x38, 0x6f, 0xea, 0x96, 0x90, //0x0000cb30 .quad -8027971522334779313 + 0x22, 0x76, 0xef, 0x5d, 0xc8, 0xd2, 0xf0, 0x3f, //0x0000cb38 .quad 4607414176811284002 + 0x63, 0xbe, 0x5a, 0x06, 0x0b, 0xa5, 0xbc, 0xb4, //0x0000cb40 .quad -5423278384491086237 + 0xaa, 0x53, 0x6b, 0x75, 0x7a, 0x07, 0xed, 0x0f, //0x0000cb48 .quad 1147581702586717098 + 0xfb, 0x6d, 0xf1, 0xc7, 0x4d, 0xce, 0xeb, 0xe1, //0x0000cb50 .quad -2167411962186469893 + 0x95, 0x28, 0xc6, 0x12, 0x59, 0x49, 0xe8, 0xd3, //0x0000cb58 .quad -3177208890193991531 + 0xbd, 0xe4, 0xf6, 0x9c, 0xf0, 0x60, 0x33, 0x8d, //0x0000cb60 .quad -8272161504007625539 + 0x5d, 0xd9, 0xbb, 0xab, 0xd7, 0x2d, 0x71, 0x64, //0x0000cb68 .quad 7237616480483531101 + 0xec, 0x9d, 0x34, 0xc4, 0x2c, 0x39, 0x80, 0xb0, //0x0000cb70 .quad -5728515861582144020 + 0xb4, 0xcf, 0xaa, 0x96, 0x4d, 0x79, 0x8d, 0xbd, //0x0000cb78 .quad -4788037454677749836 + 0x67, 0xc5, 0x41, 0xf5, 0x77, 0x47, 0xa0, 0xdc, //0x0000cb80 .quad -2548958808550292121 + 0xa1, 0x83, 0x55, 0xfc, 0xa0, 0xd7, 0xf0, 0xec, //0x0000cb88 .quad -1373360799919799391 + 0x60, 0x1b, 0x49, 0xf9, 0xaa, 0x2c, 0xe4, 0x89, //0x0000cb90 .quad -8510628282985014432 + 0x45, 0x72, 0xb5, 0x9d, 0xc4, 0x86, 0x16, 0xf4, //0x0000cb98 .quad -858350499949874619 + 0x39, 0x62, 0x9b, 0xb7, 0xd5, 0x37, 0x5d, 0xac, //0x0000cba0 .quad -6026599335303880135 + 0xd6, 0xce, 0x22, 0xc5, 0x75, 0x28, 0x1c, 0x31, //0x0000cba8 .quad 3538747893490044630 + 0xc7, 0x3a, 0x82, 0x25, 0xcb, 0x85, 0x74, 0xd7, //0x0000cbb0 .quad -2921563150702462265 + 0x8c, 0x82, 0x6b, 0x36, 0x93, 0x32, 0x63, 0x7d, //0x0000cbb8 .quad 9035120885289943692 + 0xbc, 0x64, 0x71, 0xf7, 0x9e, 0xd3, 0xa8, 0x86, //0x0000cbc0 .quad -8743505996830120772 + 0x98, 0x31, 0x03, 0x02, 0x9c, 0xff, 0x5d, 0xae, //0x0000cbc8 .quad -5882264492762254952 + 0xeb, 0xbd, 0x4d, 0xb5, 0x86, 0x08, 0x53, 0xa8, //0x0000cbd0 .quad -6317696477610263061 + 0xfd, 0xfd, 0x83, 0x02, 0x83, 0x7f, 0xf5, 0xd9, //0x0000cbd8 .quad -2741144597525430787 + 0x66, 0x2d, 0xa1, 0x62, 0xa8, 0xca, 0x67, 0xd2, //0x0000cbe0 .quad -3285434578585440922 + 0x7c, 0xfd, 0x24, 0xc3, 0x63, 0xdf, 0x72, 0xd0, //0x0000cbe8 .quad -3426430746906788484 + 0x60, 0xbc, 0xa4, 0x3d, 0xa9, 0xde, 0x80, 0x83, //0x0000cbf0 .quad -8970925639256982432 + 0x6e, 0x1e, 0xf7, 0x59, 0x9e, 0xcb, 0x47, 0x42, //0x0000cbf8 .quad 4776009810824339054 + 0x78, 0xeb, 0x0d, 0x8d, 0x53, 0x16, 0x61, 0xa4, //0x0000cc00 .quad -6601971030643840136 + 0x09, 0xe6, 0x74, 0xf0, 0x85, 0xbe, 0xd9, 0x52, //0x0000cc08 .quad 5970012263530423817 + 0x56, 0x66, 0x51, 0x70, 0xe8, 0x5b, 0x79, 0xcd, //0x0000cc10 .quad -3640777769877412266 + 0x8c, 0x1f, 0x92, 0x6c, 0x27, 0x2e, 0x90, 0x67, //0x0000cc18 .quad 7462515329413029772 + 0xf6, 0xdf, 0x32, 0x46, 0x71, 0xd9, 0x6b, 0x80, //0x0000cc20 .quad -9193015133814464522 + 0xb7, 0x53, 0xdb, 0xa3, 0xd8, 0x1c, 0xba, 0x00, //0x0000cc28 .quad 52386062455755703 + 0xf3, 0x97, 0xbf, 0x97, 0xcd, 0xcf, 0x86, 0xa0, //0x0000cc30 .quad -6879582898840692749 + 0xa5, 0x28, 0xd2, 0xcc, 0x0e, 0xa4, 0xe8, 0x80, //0x0000cc38 .quad -9157889458785081179 + 0xf0, 0x7d, 0xaf, 0xfd, 0xc0, 0x83, 0xa8, 0xc8, //0x0000cc40 .quad -3987792605123478032 + 0xce, 0xb2, 0x06, 0x80, 0x12, 0xcd, 0x22, 0x61, //0x0000cc48 .quad 6999382250228200142 + 0x6c, 0x5d, 0x1b, 0x3d, 0xb1, 0xa4, 0xd2, 0xfa, //0x0000cc50 .quad -373054737976959636 + 0x82, 0x5f, 0x08, 0x20, 0x57, 0x80, 0x6b, 0x79, //0x0000cc58 .quad 8749227812785250178 + 0x63, 0x1a, 0x31, 0xc6, 0xee, 0xa6, 0xc3, 0x9c, //0x0000cc60 .quad -7150688238876681629 + 0xb1, 0x3b, 0x05, 0x74, 0x36, 0x30, 0xe3, 0xcb, //0x0000cc68 .quad -3755104653863994447 + 0xfc, 0x60, 0xbd, 0x77, 0xaa, 0x90, 0xf4, 0xc3, //0x0000cc70 .quad -4326674280168464132 + 0x9d, 0x8a, 0x06, 0x11, 0x44, 0xfc, 0xdb, 0xbe, //0x0000cc78 .quad -4693880817329993059 + 0x3b, 0xb9, 0xac, 0x15, 0xd5, 0xb4, 0xf1, 0xf4, //0x0000cc80 .quad -796656831783192261 + 0x45, 0x2d, 0x48, 0x15, 0x55, 0xfb, 0x92, 0xee, //0x0000cc88 .quad -1255665003235103419 + 0xc5, 0xf3, 0x8b, 0x2d, 0x05, 0x11, 0x17, 0x99, //0x0000cc90 .quad -7415439547505577019 + 0x4b, 0x1c, 0x4d, 0x2d, 0x15, 0xdd, 0x1b, 0x75, //0x0000cc98 .quad 8438581409832836171 + 0xb6, 0xf0, 0xee, 0x78, 0x46, 0xd5, 0x5c, 0xbf, //0x0000cca0 .quad -4657613415954583370 + 0x5e, 0x63, 0xa0, 0x78, 0x5a, 0xd4, 0x62, 0xd2, //0x0000cca8 .quad -3286831292991118498 + 0xe4, 0xac, 0x2a, 0x17, 0x98, 0x0a, 0x34, 0xef, //0x0000ccb0 .quad -1210330751515841308 + 0x35, 0x7c, 0xc8, 0x16, 0x71, 0x89, 0xfb, 0x86, //0x0000ccb8 .quad -8720225134666286027 + 0x0e, 0xac, 0x7a, 0x0e, 0x9f, 0x86, 0x80, 0x95, //0x0000ccc0 .quad -7673985747338482674 + 0xa1, 0x4d, 0x3d, 0xae, 0xe6, 0x35, 0x5d, 0xd4, //0x0000ccc8 .quad -3144297699952734815 + 0x12, 0x57, 0x19, 0xd2, 0x46, 0xa8, 0xe0, 0xba, //0x0000ccd0 .quad -4980796165745715438 + 0x0a, 0xa1, 0xcc, 0x59, 0x60, 0x83, 0x74, 0x89, //0x0000ccd8 .quad -8542058143368306422 + 0xd7, 0xac, 0x9f, 0x86, 0x58, 0xd2, 0x98, 0xe9, //0x0000cce0 .quad -1614309188754756393 + 0x4c, 0xc9, 0x3f, 0x70, 0x38, 0xa4, 0xd1, 0x2b, //0x0000cce8 .quad 3157485376071780684 + 0x06, 0xcc, 0x23, 0x54, 0x77, 0x83, 0xff, 0x91, //0x0000ccf0 .quad -7926472270612804602 + 0xd0, 0xdd, 0x27, 0x46, 0xa3, 0x06, 0x63, 0x7b, //0x0000ccf8 .quad 8890957387685944784 + 0x08, 0xbf, 0x2c, 0x29, 0x55, 0x64, 0x7f, 0xb6, //0x0000cd00 .quad -5296404319838617848 + 0x43, 0xd5, 0xb1, 0x17, 0x4c, 0xc8, 0x3b, 0x1a, //0x0000cd08 .quad 1890324697752655171 + 0xca, 0xee, 0x77, 0x73, 0x6a, 0x3d, 0x1f, 0xe4, //0x0000cd10 .quad -2008819381370884406 + 0x94, 0x4a, 0x9e, 0x1d, 0x5f, 0xba, 0xca, 0x20, //0x0000cd18 .quad 2362905872190818964 + 0x3e, 0xf5, 0x2a, 0x88, 0x62, 0x86, 0x93, 0x8e, //0x0000cd20 .quad -8173041140997884610 + 0x9d, 0xee, 0x82, 0x72, 0x7b, 0xb4, 0x7e, 0x54, //0x0000cd28 .quad 6088502188546649757 + 0x8d, 0xb2, 0x35, 0x2a, 0xfb, 0x67, 0x38, 0xb2, //0x0000cd30 .quad -5604615407819967859 + 0x44, 0xaa, 0x23, 0x4f, 0x9a, 0x61, 0x9e, 0xe9, //0x0000cd38 .quad -1612744301171463612 + 0x31, 0x1f, 0xc3, 0xf4, 0xf9, 0x81, 0xc6, 0xde, //0x0000cd40 .quad -2394083241347571919 + 0xd5, 0x94, 0xec, 0xe2, 0x00, 0xfa, 0x05, 0x64, //0x0000cd48 .quad 7207441660390446293 + 0x7e, 0xf3, 0xf9, 0x38, 0x3c, 0x11, 0x3c, 0x8b, //0x0000cd50 .quad -8413831053483314306 + 0x05, 0xdd, 0xd3, 0x8d, 0x40, 0xbc, 0x83, 0xde, //0x0000cd58 .quad -2412877989897052923 + 0x5e, 0x70, 0x38, 0x47, 0x8b, 0x15, 0x0b, 0xae, //0x0000cd60 .quad -5905602798426754978 + 0x46, 0xd4, 0x48, 0xb1, 0x50, 0xab, 0x24, 0x96, //0x0000cd68 .quad -7627783505798704058 + 0x76, 0x8c, 0x06, 0x19, 0xee, 0xda, 0x8d, 0xd9, //0x0000cd70 .quad -2770317479606055818 + 0x58, 0x09, 0x9b, 0xdd, 0x24, 0xd6, 0xad, 0x3b, //0x0000cd78 .quad 4300328673033783640 + 0xc9, 0x17, 0xa4, 0xcf, 0xd4, 0xa8, 0xf8, 0x87, //0x0000cd80 .quad -8648977452394866743 + 0xd7, 0xe5, 0x80, 0x0a, 0xd7, 0xa5, 0x4c, 0xe5, //0x0000cd88 .quad -1923980597781273129 + 0xbc, 0x1d, 0x8d, 0x03, 0x0a, 0xd3, 0xf6, 0xa9, //0x0000cd90 .quad -6199535797066195524 + 0x4d, 0x1f, 0x21, 0xcd, 0x4c, 0xcf, 0x9f, 0x5e, //0x0000cd98 .quad 6818396289628184397 + 0x2b, 0x65, 0x70, 0x84, 0xcc, 0x87, 0x74, 0xd4, //0x0000cda0 .quad -3137733727905356501 + 0x20, 0x67, 0x69, 0x00, 0x20, 0xc3, 0x47, 0x76, //0x0000cda8 .quad 8522995362035230496 + 0x3b, 0x3f, 0xc6, 0xd2, 0xdf, 0xd4, 0xc8, 0x84, //0x0000cdb0 .quad -8878612607581929669 + 0x74, 0xe0, 0x41, 0x00, 0xf4, 0xd9, 0xec, 0x29, //0x0000cdb8 .quad 3021029092058325108 + 0x09, 0xcf, 0x77, 0xc7, 0x17, 0x0a, 0xfb, 0xa5, //0x0000cdc0 .quad -6486579741050024183 + 0x91, 0x58, 0x52, 0x00, 0x71, 0x10, 0x68, 0xf4, //0x0000cdc8 .quad -835399653354481519 + 0xcc, 0xc2, 0x55, 0xb9, 0x9d, 0xcc, 0x79, 0xcf, //0x0000cdd0 .quad -3496538657885142324 + 0xb5, 0xee, 0x66, 0x40, 0x8d, 0x14, 0x82, 0x71, //0x0000cdd8 .quad 8179122470161673909 + 0xbf, 0x99, 0xd5, 0x93, 0xe2, 0x1f, 0xac, 0x81, //0x0000cde0 .quad -9102865688819295809 + 0x31, 0x55, 0x40, 0x48, 0xd8, 0x4c, 0xf1, 0xc6, //0x0000cde8 .quad -4111420493003729615 + 0x2f, 0x00, 0xcb, 0x38, 0xdb, 0x27, 0x17, 0xa2, //0x0000cdf0 .quad -6766896092596731857 + 0x7d, 0x6a, 0x50, 0x5a, 0x0e, 0xa0, 0xad, 0xb8, //0x0000cdf8 .quad -5139275616254662019 + 0x3b, 0xc0, 0xfd, 0x06, 0xd2, 0xf1, 0x9c, 0xca, //0x0000ce00 .quad -3846934097318526917 + 0x1d, 0x85, 0xe4, 0xf0, 0x11, 0x08, 0xd9, 0xa6, //0x0000ce08 .quad -6424094520318327523 + 0x4a, 0x30, 0xbd, 0x88, 0x46, 0x2e, 0x44, 0xfd, //0x0000ce10 .quad -196981603220770742 + 0x64, 0xa6, 0x1d, 0x6d, 0x16, 0x4a, 0x8f, 0x90, //0x0000ce18 .quad -8030118150397909404 + 0x2e, 0x3e, 0x76, 0x15, 0xec, 0x9c, 0x4a, 0x9e, //0x0000ce20 .quad -7040642529654063570 + 0xff, 0x87, 0x32, 0x04, 0x4e, 0x8e, 0x59, 0x9a, //0x0000ce28 .quad -7324666853212387329 + 0xba, 0xcd, 0xd3, 0x1a, 0x27, 0x44, 0xdd, 0xc5, //0x0000ce30 .quad -4189117143640191558 + 0xfe, 0x29, 0x3f, 0x85, 0xe1, 0xf1, 0xef, 0x40, //0x0000ce38 .quad 4679224488766679550 + 0x28, 0xc1, 0x88, 0xe1, 0x30, 0x95, 0x54, 0xf7, //0x0000ce40 .quad -624710411122851544 + 0x7d, 0xf4, 0x8e, 0xe6, 0x59, 0xee, 0x2b, 0xd1, //0x0000ce48 .quad -3374341425896426371 + 0xb9, 0x78, 0xf5, 0x8c, 0x3e, 0xdd, 0x94, 0x9a, //0x0000ce50 .quad -7307973034592864071 + 0xcf, 0x58, 0x19, 0x30, 0xf8, 0x74, 0xbb, 0x82, //0x0000ce58 .quad -9026492418826348337 + 0xe7, 0xd6, 0x32, 0x30, 0x8e, 0x14, 0x3a, 0xc1, //0x0000ce60 .quad -4523280274813692185 + 0x02, 0xaf, 0x1f, 0x3c, 0x36, 0x52, 0x6a, 0xe3, //0x0000ce68 .quad -2059743486678159614 + 0xa1, 0x8c, 0x3f, 0xbc, 0xb1, 0x99, 0x88, 0xf1, //0x0000ce70 .quad -1042414325089727327 + 0xc2, 0x9a, 0x27, 0xcb, 0xc3, 0xe6, 0x44, 0xdc, //0x0000ce78 .quad -2574679358347699518 + 0xe5, 0xb7, 0xa7, 0x15, 0x0f, 0x60, 0xf5, 0x96, //0x0000ce80 .quad -7569037980822161435 + 0xba, 0xc0, 0xf8, 0x5e, 0x3a, 0x10, 0xab, 0x29, //0x0000ce88 .quad 3002511419460075706 + 0xde, 0xa5, 0x11, 0xdb, 0x12, 0xb8, 0xb2, 0xbc, //0x0000ce90 .quad -4849611457600313890 + 0xe8, 0xf0, 0xb6, 0xf6, 0x48, 0xd4, 0x15, 0x74, //0x0000ce98 .quad 8364825292752482536 + 0x56, 0x0f, 0xd6, 0x91, 0x17, 0x66, 0xdf, 0xeb, //0x0000cea0 .quad -1450328303573004458 + 0x22, 0xad, 0x64, 0x34, 0x5b, 0x49, 0x1b, 0x11, //0x0000cea8 .quad 1232659579085827362 + 0x95, 0xc9, 0x25, 0xbb, 0xce, 0x9f, 0x6b, 0x93, //0x0000ceb0 .quad -7823984217374209643 + 0x35, 0xec, 0xbe, 0x00, 0xd9, 0x0d, 0xb1, 0xca, //0x0000ceb8 .quad -3841273781498745803 + 0xfb, 0x3b, 0xef, 0x69, 0xc2, 0x87, 0x46, 0xb8, //0x0000cec0 .quad -5168294253290374149 + 0x43, 0xa7, 0xee, 0x40, 0x4f, 0x51, 0x5d, 0x3d, //0x0000cec8 .quad 4421779809981343555 + 0xfa, 0x0a, 0x6b, 0x04, 0xb3, 0x29, 0x58, 0xe6, //0x0000ced0 .quad -1848681798185579782 + 0x13, 0x51, 0x2a, 0x11, 0xa3, 0xa5, 0xb4, 0x0c, //0x0000ced8 .quad 915538744049291539 + 0xdc, 0xe6, 0xc2, 0xe2, 0x0f, 0x1a, 0xf7, 0x8f, //0x0000cee0 .quad -8072955151507069220 + 0xac, 0x72, 0xba, 0xea, 0x85, 0xe7, 0xf0, 0x47, //0x0000cee8 .quad 5183897733458195116 + 0x93, 0xa0, 0x73, 0xdb, 0x93, 0xe0, 0xf4, 0xb3, //0x0000cef0 .quad -5479507920956448621 + 0x57, 0x0f, 0x69, 0x65, 0x67, 0x21, 0xed, 0x59, //0x0000cef8 .quad 6479872166822743895 + 0xb8, 0x88, 0x50, 0xd2, 0xb8, 0x18, 0xf2, 0xe0, //0x0000cf00 .quad -2237698882768172872 + 0x2d, 0x53, 0xc3, 0x3e, 0xc1, 0x69, 0x68, 0x30, //0x0000cf08 .quad 3488154190101041965 + 0x73, 0x55, 0x72, 0x83, 0x73, 0x4f, 0x97, 0x8c, //0x0000cf10 .quad -8316090829371189901 + 0xfc, 0x13, 0x3a, 0xc7, 0x18, 0x42, 0x41, 0x1e, //0x0000cf18 .quad 2180096368813151228 + 0xcf, 0xea, 0x4e, 0x64, 0x50, 0x23, 0xbd, 0xaf, //0x0000cf20 .quad -5783427518286599473 + 0xfb, 0x98, 0x08, 0xf9, 0x9e, 0x92, 0xd1, 0xe5, //0x0000cf28 .quad -1886565557410948869 + 0x83, 0xa5, 0x62, 0x7d, 0x24, 0x6c, 0xac, 0xdb, //0x0000cf30 .quad -2617598379430861437 + 0x3a, 0xbf, 0x4a, 0xb7, 0x46, 0xf7, 0x45, 0xdf, //0x0000cf38 .quad -2358206946763686086 + 0x72, 0xa7, 0x5d, 0xce, 0x96, 0xc3, 0x4b, 0x89, //0x0000cf40 .quad -8553528014785370254 + 0x84, 0xb7, 0x8e, 0x32, 0x8c, 0xba, 0x8b, 0x6b, //0x0000cf48 .quad 7749492695127472004 + 0x4f, 0x11, 0xf5, 0x81, 0x7c, 0xb4, 0x9e, 0xab, //0x0000cf50 .quad -6080224000054324913 + 0x65, 0x65, 0x32, 0x3f, 0x2f, 0xa9, 0x6e, 0x06, //0x0000cf58 .quad 463493832054564197 + 0xa2, 0x55, 0x72, 0xa2, 0x9b, 0x61, 0x86, 0xd6, //0x0000cf60 .quad -2988593981640518238 + 0xbe, 0xfe, 0xfe, 0x0e, 0x7b, 0x53, 0x0a, 0xc8, //0x0000cf68 .quad -4032318728359182658 + 0x85, 0x75, 0x87, 0x45, 0x01, 0xfd, 0x13, 0x86, //0x0000cf70 .quad -8785400266166405755 + 0x37, 0x5f, 0x5f, 0xe9, 0x2c, 0x74, 0x06, 0xbd, //0x0000cf78 .quad -4826042214438183113 + 0xe7, 0x52, 0xe9, 0x96, 0x41, 0xfc, 0x98, 0xa7, //0x0000cf80 .quad -6370064314280619289 + 0x05, 0x37, 0xb7, 0x23, 0x38, 0x11, 0x48, 0x2c, //0x0000cf88 .quad 3190819268807046917 + 0xa0, 0xa7, 0xa3, 0xfc, 0x51, 0x3b, 0x7f, 0xd1, //0x0000cf90 .quad -3350894374423386208 + 0xc6, 0x04, 0xa5, 0x2c, 0x86, 0x15, 0x5a, 0xf7, //0x0000cf98 .quad -623161932418579258 + 0xc4, 0x48, 0xe6, 0x3d, 0x13, 0x85, 0xef, 0x82, //0x0000cfa0 .quad -9011838011655698236 + 0xfc, 0x22, 0xe7, 0xdb, 0x73, 0x4d, 0x98, 0x9a, //0x0000cfa8 .quad -7307005235402693892 + 0xf5, 0xda, 0x5f, 0x0d, 0x58, 0x66, 0xab, 0xa3, //0x0000cfb0 .quad -6653111496142234891 + 0xbb, 0xeb, 0xe0, 0xd2, 0xd0, 0x60, 0x3e, 0xc1, //0x0000cfb8 .quad -4522070525825979461 + 0xb3, 0xd1, 0xb7, 0x10, 0xee, 0x3f, 0x96, 0xcc, //0x0000cfc0 .quad -3704703351750405709 + 0xa9, 0x26, 0x99, 0x07, 0x05, 0xf9, 0x8d, 0x31, //0x0000cfc8 .quad 3570783879572301481 + 0x1f, 0xc6, 0xe5, 0x94, 0xe9, 0xcf, 0xbb, 0xff, //0x0000cfd0 .quad -19193171260619233 + 0x53, 0x70, 0x7f, 0x49, 0x46, 0x77, 0xf1, 0xfd, //0x0000cfd8 .quad -148206168962011053 + 0xd3, 0x9b, 0x0f, 0xfd, 0xf1, 0x61, 0xd5, 0x9f, //0x0000cfe0 .quad -6929524759678968877 + 0x34, 0xa6, 0xef, 0xed, 0x8b, 0xea, 0xb6, 0xfe, //0x0000cfe8 .quad -92628855601256908 + 0xc8, 0x82, 0x53, 0x7c, 0x6e, 0xba, 0xca, 0xc7, //0x0000cff0 .quad -4050219931171323192 + 0xc1, 0x8f, 0x6b, 0xe9, 0x2e, 0xa5, 0x64, 0xfe, //0x0000cff8 .quad -115786069501571135 + 0x7b, 0x63, 0x68, 0x1b, 0x0a, 0x69, 0xbd, 0xf9, //0x0000d000 .quad -451088895536766085 + 0xb1, 0x73, 0xc6, 0xa3, 0x7a, 0xce, 0xfd, 0x3d, //0x0000d008 .quad 4466953431550423985 + 0x2d, 0x3e, 0x21, 0x51, 0xa6, 0x61, 0x16, 0x9c, //0x0000d010 .quad -7199459587351560659 + 0x4f, 0x08, 0x5c, 0xa6, 0x0c, 0xa1, 0xbe, 0x06, //0x0000d018 .quad 486002885505321039 + 0xb8, 0x8d, 0x69, 0xe5, 0x0f, 0xfa, 0x1b, 0xc3, //0x0000d020 .quad -4387638465762062920 + 0x63, 0x0a, 0xf3, 0xcf, 0x4f, 0x49, 0x6e, 0x48, //0x0000d028 .quad 5219189625309039203 + 0x26, 0xf1, 0xc3, 0xde, 0x93, 0xf8, 0xe2, 0xf3, //0x0000d030 .quad -872862063775190746 + 0xfb, 0xcc, 0xef, 0xc3, 0xa3, 0xdb, 0x89, 0x5a, //0x0000d038 .quad 6523987031636299003 + 0xb7, 0x76, 0x3a, 0x6b, 0x5c, 0xdb, 0x6d, 0x98, //0x0000d040 .quad -7463067817500576073 + 0x1d, 0xe0, 0x75, 0x5a, 0x46, 0x29, 0x96, 0xf8, //0x0000d048 .quad -534194123654701027 + 0x65, 0x14, 0x09, 0x86, 0x33, 0x52, 0x89, 0xbe, //0x0000d050 .quad -4717148753448332187 + 0x24, 0x58, 0x13, 0xf1, 0x97, 0xb3, 0xbb, 0xf6, //0x0000d058 .quad -667742654568376284 + 0x7f, 0x59, 0x8b, 0x67, 0xc0, 0xa6, 0x2b, 0xee, //0x0000d060 .quad -1284749923383027329 + 0x2d, 0x2e, 0x58, 0xed, 0x7d, 0xa0, 0x6a, 0x74, //0x0000d068 .quad 8388693718644305453 + 0xef, 0x17, 0xb7, 0x40, 0x38, 0x48, 0xdb, 0x94, //0x0000d070 .quad -7720497729755473937 + 0xdd, 0x1c, 0x57, 0xb4, 0x4e, 0xa4, 0xc2, 0xa8, //0x0000d078 .quad -6286281471915778851 + 0xeb, 0xdd, 0xe4, 0x50, 0x46, 0x1a, 0x12, 0xba, //0x0000d080 .quad -5038936143766954517 + 0x14, 0xe4, 0x6c, 0x61, 0x62, 0x4d, 0xf3, 0x92, //0x0000d088 .quad -7857851839894723564 + 0x66, 0x15, 0x1e, 0xe5, 0xd7, 0xa0, 0x96, 0xe8, //0x0000d090 .quad -1686984161281305242 + 0x18, 0x1d, 0xc8, 0xf9, 0xba, 0x20, 0xb0, 0x77, //0x0000d098 .quad 8624429273841147160 + 0x60, 0xcd, 0x32, 0xef, 0x86, 0x24, 0x5e, 0x91, //0x0000d0a0 .quad -7971894128441897632 + 0x2f, 0x12, 0x1d, 0xdc, 0x74, 0x14, 0xce, 0x0a, //0x0000d0a8 .quad 778582277723329071 + 0xb8, 0x80, 0xff, 0xaa, 0xa8, 0xad, 0xb5, 0xb5, //0x0000d0b0 .quad -5353181642124984136 + 0xbb, 0x56, 0x24, 0x13, 0x92, 0x99, 0x81, 0x0d, //0x0000d0b8 .quad 973227847154161339 + 0xe6, 0x60, 0xbf, 0xd5, 0x12, 0x19, 0x23, 0xe3, //0x0000d0c0 .quad -2079791034228842266 + 0x6a, 0x6c, 0xed, 0x97, 0xf6, 0xff, 0xe1, 0x10, //0x0000d0c8 .quad 1216534808942701674 + 0x8f, 0x9c, 0x97, 0xc5, 0xab, 0xef, 0xf5, 0x8d, //0x0000d0d0 .quad -8217398424034108273 + 0xc2, 0x63, 0xf4, 0x1e, 0xfa, 0x3f, 0x8d, 0xca, //0x0000d0d8 .quad -3851351762838199358 + 0xb3, 0x83, 0xfd, 0xb6, 0x96, 0x6b, 0x73, 0xb1, //0x0000d0e0 .quad -5660062011615247437 + 0xb3, 0x7c, 0xb1, 0xa6, 0xf8, 0x8f, 0x30, 0xbd, //0x0000d0e8 .quad -4814189703547749197 + 0xa0, 0xe4, 0xbc, 0x64, 0x7c, 0x46, 0xd0, 0xdd, //0x0000d0f0 .quad -2463391496091671392 + 0xdf, 0xdb, 0x5d, 0xd0, 0xf6, 0xb3, 0x7c, 0xac, //0x0000d0f8 .quad -6017737129434686497 + 0xe4, 0x0e, 0xf6, 0xbe, 0x0d, 0x2c, 0xa2, 0x8a, //0x0000d100 .quad -8457148712698376476 + 0x6c, 0xa9, 0x3a, 0x42, 0x7a, 0xf0, 0xcd, 0x6b, //0x0000d108 .quad 7768129340171790700 + 0x9d, 0x92, 0xb3, 0x2e, 0x11, 0xb7, 0x4a, 0xad, //0x0000d110 .quad -5959749872445582691 + 0xc7, 0x53, 0xc9, 0xd2, 0x98, 0x6c, 0xc1, 0x86, //0x0000d118 .quad -8736582398494813241 + 0x44, 0x77, 0x60, 0x7a, 0xd5, 0x64, 0x9d, 0xd8, //0x0000d120 .quad -2838001322129590460 + 0xb8, 0xa8, 0x7b, 0x07, 0xbf, 0xc7, 0x71, 0xe8, //0x0000d128 .quad -1697355961263740744 + 0x8b, 0x4a, 0x7c, 0x6c, 0x05, 0x5f, 0x62, 0x87, //0x0000d130 .quad -8691279853972075893 + 0x73, 0x49, 0xad, 0x64, 0xd7, 0x1c, 0x47, 0x11, //0x0000d138 .quad 1244995533423855987 + 0x2d, 0x5d, 0x9b, 0xc7, 0xc6, 0xf6, 0x3a, 0xa9, //0x0000d140 .quad -6252413799037706963 + 0xd0, 0x9b, 0xd8, 0x3d, 0x0d, 0xe4, 0x98, 0xd5, //0x0000d148 .quad -3055441601647567920 + 0x79, 0x34, 0x82, 0x79, 0x78, 0xb4, 0x89, 0xd3, //0x0000d150 .quad -3203831230369745799 + 0xc4, 0xc2, 0x4e, 0x8d, 0x10, 0x1d, 0xff, 0x4a, //0x0000d158 .quad 5404070034795315908 + 0xcb, 0x60, 0xf1, 0x4b, 0xcb, 0x10, 0x36, 0x84, //0x0000d160 .quad -8919923546622172981 + 0xbb, 0x39, 0x51, 0x58, 0x2a, 0x72, 0xdf, 0xce, //0x0000d168 .quad -3539985255894009413 + 0xfe, 0xb8, 0xed, 0x1e, 0xfe, 0x94, 0x43, 0xa5, //0x0000d170 .quad -6538218414850328322 + 0x29, 0x88, 0x65, 0xee, 0xb4, 0x4e, 0x97, 0xc2, //0x0000d178 .quad -4424981569867511767 + 0x3e, 0x27, 0xa9, 0xa6, 0x3d, 0x7a, 0x94, 0xce, //0x0000d180 .quad -3561087000135522498 + 0x33, 0xea, 0xfe, 0x29, 0x62, 0x22, 0x3d, 0x73, //0x0000d188 .quad 8303831092947774003 + 0x87, 0xb8, 0x29, 0x88, 0x66, 0xcc, 0x1c, 0x81, //0x0000d190 .quad -9143208402725783417 + 0x60, 0x52, 0x3f, 0x5a, 0x7d, 0x35, 0x06, 0x08, //0x0000d198 .quad 578208414664970848 + 0xa8, 0x26, 0x34, 0x2a, 0x80, 0xff, 0x63, 0xa1, //0x0000d1a0 .quad -6817324484979841368 + 0xf8, 0x26, 0xcf, 0xb0, 0xdc, 0xc2, 0x07, 0xca, //0x0000d1a8 .quad -3888925500096174344 + 0x52, 0x30, 0xc1, 0x34, 0x60, 0xff, 0xbc, 0xc9, //0x0000d1b0 .quad -3909969587797413806 + 0xb6, 0xf0, 0x02, 0xdd, 0x93, 0xb3, 0x89, 0xfc, //0x0000d1b8 .quad -249470856692830026 + 0x67, 0x7c, 0xf1, 0x41, 0x38, 0x3f, 0x2c, 0xfc, //0x0000d1c0 .quad -275775966319379353 + 0xe3, 0xac, 0x43, 0xd4, 0x78, 0x20, 0xac, 0xbb, //0x0000d1c8 .quad -4923524589293425437 + 0xc0, 0xed, 0x36, 0x29, 0x83, 0xa7, 0x9b, 0x9d, //0x0000d1d0 .quad -7089889006590693952 + 0x0e, 0x4c, 0xaa, 0x84, 0x4b, 0x94, 0x4b, 0xd5, //0x0000d1d8 .quad -3077202868308390898 + 0x31, 0xa9, 0x84, 0xf3, 0x63, 0x91, 0x02, 0xc5, //0x0000d1e0 .quad -4250675239810979535 + 0x12, 0xdf, 0xd4, 0x65, 0x5e, 0x79, 0x9e, 0x0a, //0x0000d1e8 .quad 765182433041899282 + 0x7d, 0xd3, 0x65, 0xf0, 0xbc, 0x35, 0x43, 0xf6, //0x0000d1f0 .quad -701658031336336515 + 0xd6, 0x16, 0x4a, 0xff, 0xb5, 0x17, 0x46, 0x4d, //0x0000d1f8 .quad 5568164059729762006 + 0x2e, 0xa4, 0x3f, 0x16, 0x96, 0x01, 0xea, 0x99, //0x0000d200 .quad -7356065297226292178 + 0x46, 0x4e, 0x8e, 0xbf, 0xd1, 0xce, 0x4b, 0x50, //0x0000d208 .quad 5785945546544795206 + 0x39, 0x8d, 0xcf, 0x9b, 0xfb, 0x81, 0x64, 0xc0, //0x0000d210 .quad -4583395603105477319 + 0xd7, 0xe1, 0x71, 0x2f, 0x86, 0xc2, 0x5e, 0xe4, //0x0000d218 .quad -1990940103673781801 + 0x88, 0x70, 0xc3, 0x82, 0x7a, 0xa2, 0x7d, 0xf0, //0x0000d220 .quad -1117558485454458744 + 0x4d, 0x5a, 0x4e, 0xbb, 0x27, 0x73, 0x76, 0x5d, //0x0000d228 .quad 6734696907262548557 + 0x55, 0x26, 0xba, 0x91, 0x8c, 0x85, 0x4e, 0x96, //0x0000d230 .quad -7616003081050118571 + 0x70, 0xf8, 0x10, 0xd5, 0xf8, 0x07, 0x6a, 0x3a, //0x0000d238 .quad 4209185567039092848 + 0xea, 0xaf, 0x28, 0xb6, 0xef, 0x26, 0xe2, 0xbb, //0x0000d240 .quad -4908317832885260310 + 0x8c, 0x36, 0x55, 0x0a, 0xf7, 0x89, 0x04, 0x89, //0x0000d248 .quad -8573576096483297652 + 0xe5, 0xdb, 0xb2, 0xa3, 0xab, 0xb0, 0xda, 0xea, //0x0000d250 .quad -1523711272679187483 + 0x2f, 0x84, 0xea, 0xcc, 0x74, 0xac, 0x45, 0x2b, //0x0000d258 .quad 3118087934678041647 + 0x6f, 0xc9, 0x4f, 0x46, 0x6b, 0xae, 0xc8, 0x92, //0x0000d260 .quad -7869848573065574033 + 0x9e, 0x92, 0x12, 0x00, 0xc9, 0x8b, 0x0b, 0x3b, //0x0000d268 .quad 4254647968387469982 + 0xcb, 0xbb, 0xe3, 0x17, 0x06, 0xda, 0x7a, 0xb7, //0x0000d270 .quad -5225624697904579637 + 0x45, 0x37, 0x17, 0x40, 0xbb, 0x6e, 0xce, 0x09, //0x0000d278 .quad 706623942056949573 + 0xbd, 0xaa, 0xdc, 0x9d, 0x87, 0x90, 0x59, 0xe5, //0x0000d280 .quad -1920344853953336643 + 0x16, 0x05, 0x1d, 0x10, 0x6a, 0x0a, 0x42, 0xcc, //0x0000d288 .quad -3728406090856200938 + 0xb6, 0xea, 0xa9, 0xc2, 0x54, 0xfa, 0x57, 0x8f, //0x0000d290 .quad -8117744561361917258 + 0x2e, 0x23, 0x12, 0x4a, 0x82, 0x46, 0xa9, 0x9f, //0x0000d298 .quad -6941939825212513490 + 0x64, 0x65, 0x54, 0xf3, 0xe9, 0xf8, 0x2d, 0xb3, //0x0000d2a0 .quad -5535494683275008668 + 0xfa, 0xab, 0x96, 0xdc, 0x22, 0x98, 0x93, 0x47, //0x0000d2a8 .quad 5157633273766521850 + 0xbd, 0x7e, 0x29, 0x70, 0x24, 0x77, 0xf9, 0xdf, //0x0000d2b0 .quad -2307682335666372931 + 0xf8, 0x56, 0xbc, 0x93, 0x2b, 0x7e, 0x78, 0x59, //0x0000d2b8 .quad 6447041592208152312 + 0x36, 0xef, 0x19, 0xc6, 0x76, 0xea, 0xfb, 0x8b, //0x0000d2c0 .quad -8359830487432564938 + 0x5b, 0xb6, 0x55, 0x3c, 0xdb, 0x4e, 0xeb, 0x57, //0x0000d2c8 .quad 6335244004343789147 + 0x03, 0x6b, 0xa0, 0x77, 0x14, 0xe5, 0xfa, 0xae, //0x0000d2d0 .quad -5838102090863318269 + 0xf2, 0x23, 0x6b, 0x0b, 0x92, 0x22, 0xe6, 0xed, //0x0000d2d8 .quad -1304317031425039374 + 0xc4, 0x85, 0x88, 0x95, 0x59, 0x9e, 0xb9, 0xda, //0x0000d2e0 .quad -2685941595151759932 + 0xee, 0xec, 0x45, 0x8e, 0x36, 0xab, 0x5f, 0xe9, //0x0000d2e8 .quad -1630396289281299218 + 0x9b, 0x53, 0x75, 0xfd, 0xf7, 0x02, 0xb4, 0x88, //0x0000d2f0 .quad -8596242524610931813 + 0x15, 0xb4, 0xeb, 0x18, 0x02, 0xcb, 0xdb, 0x11, //0x0000d2f8 .quad 1286845328412881941 + 0x81, 0xa8, 0xd2, 0xfc, 0xb5, 0x03, 0xe1, 0xaa, //0x0000d300 .quad -6133617137336276863 + 0x1a, 0xa1, 0x26, 0x9f, 0xc2, 0xbd, 0x52, 0xd6, //0x0000d308 .quad -3003129357911285478 + 0xa2, 0x52, 0x07, 0x7c, 0xa3, 0x44, 0x99, 0xd5, //0x0000d310 .quad -3055335403242958174 + 0x60, 0x49, 0xf0, 0x46, 0x33, 0x6d, 0xe7, 0x4b, //0x0000d318 .quad 5469460339465668960 + 0xa5, 0x93, 0x84, 0x2d, 0xe6, 0xca, 0x7f, 0x85, //0x0000d320 .quad -8827113654667930715 + 0xdc, 0x2d, 0x56, 0x0c, 0x40, 0xa4, 0x70, 0x6f, //0x0000d328 .quad 8030098730593431004 + 0x8e, 0xb8, 0xe5, 0xb8, 0x9f, 0xbd, 0xdf, 0xa6, //0x0000d330 .quad -6422206049907525490 + 0x53, 0xb9, 0x6b, 0x0f, 0x50, 0xcd, 0x4c, 0xcb, //0x0000d338 .quad -3797434642040374957 + 0xb2, 0x26, 0x1f, 0xa7, 0x07, 0xad, 0x97, 0xd0, //0x0000d340 .quad -3416071543957018958 + 0xa8, 0xa7, 0x46, 0x13, 0xa4, 0x00, 0x20, 0x7e, //0x0000d348 .quad 9088264752731695016 + 0x2f, 0x78, 0x73, 0xc8, 0x24, 0xcc, 0x5e, 0x82, //0x0000d350 .quad -9052573742614218705 + 0xc9, 0x28, 0x0c, 0x8c, 0x66, 0x00, 0xd4, 0x8e, //0x0000d358 .quad -8154892584824854327 + 0x3b, 0x56, 0x90, 0xfa, 0x2d, 0x7f, 0xf6, 0xa2, //0x0000d360 .quad -6704031159840385477 + 0xfb, 0x32, 0x0f, 0x2f, 0x80, 0x00, 0x89, 0x72, //0x0000d368 .quad 8253128342678483707 + 0xca, 0x6b, 0x34, 0x79, 0xf9, 0x1e, 0xb4, 0xcb, //0x0000d370 .quad -3768352931373093942 + 0xba, 0xff, 0xd2, 0x3a, 0xa0, 0x40, 0x2b, 0x4f, //0x0000d378 .quad 5704724409920716730 + 0xbc, 0x86, 0x81, 0xd7, 0xb7, 0x26, 0xa1, 0xfe, //0x0000d380 .quad -98755145788979524 + 0xa9, 0xbf, 0x87, 0x49, 0xc8, 0x10, 0xf6, 0xe2, //0x0000d388 .quad -2092466524453879895 + 0x36, 0xf4, 0xb0, 0xe6, 0x32, 0xb8, 0x24, 0x9f, //0x0000d390 .quad -6979250993759194058 + 0xca, 0xd7, 0xf4, 0x2d, 0x7d, 0xca, 0xd9, 0x0d, //0x0000d398 .quad 998051431430019018 + 0x43, 0x31, 0x5d, 0xa0, 0x3f, 0xe6, 0xed, 0xc6, //0x0000d3a0 .quad -4112377723771604669 + 0xbc, 0x0d, 0x72, 0x79, 0x1c, 0x3d, 0x50, 0x91, //0x0000d3a8 .quad -7975807747567252036 + 0x94, 0x7d, 0x74, 0x88, 0xcf, 0x5f, 0xa9, 0xf8, //0x0000d3b0 .quad -528786136287117932 + 0x2b, 0x91, 0xce, 0x97, 0x63, 0x4c, 0xa4, 0x75, //0x0000d3b8 .quad 8476984389250486571 + 0x7c, 0xce, 0x48, 0xb5, 0xe1, 0xdb, 0x69, 0x9b, //0x0000d3c0 .quad -7248020362820530564 + 0xbb, 0x1a, 0xe1, 0x3e, 0xbe, 0xaf, 0x86, 0xc9, //0x0000d3c8 .quad -3925256793573221701 + 0x1b, 0x02, 0x9b, 0x22, 0xda, 0x52, 0x44, 0xc2, //0x0000d3d0 .quad -4448339435098275301 + 0x69, 0x61, 0x99, 0xce, 0xad, 0x5b, 0xe8, 0xfb, //0x0000d3d8 .quad -294884973539139223 + 0xa2, 0xc2, 0x41, 0xab, 0x90, 0x67, 0xd5, 0xf2, //0x0000d3e0 .quad -948738275445456222 + 0xc4, 0xb9, 0x3f, 0x42, 0x99, 0x72, 0xe2, 0xfa, //0x0000d3e8 .quad -368606216923924028 + 0xa5, 0x19, 0x09, 0x6b, 0xba, 0x60, 0xc5, 0x97, //0x0000d3f0 .quad -7510490449794491995 + 0x1b, 0xd4, 0x67, 0xc9, 0x9f, 0x87, 0xcd, 0xdc, //0x0000d3f8 .quad -2536221894791146469 + 0x0f, 0x60, 0xcb, 0x05, 0xe9, 0xb8, 0xb6, 0xbd, //0x0000d400 .quad -4776427043815727089 + 0x21, 0xc9, 0xc1, 0xbb, 0x87, 0xe9, 0x00, 0x54, //0x0000d408 .quad 6053094668365842721 + 0x13, 0x38, 0x3e, 0x47, 0x23, 0x67, 0x24, 0xed, //0x0000d410 .quad -1358847786342270957 + 0x69, 0x3b, 0xb2, 0xaa, 0xe9, 0x23, 0x01, 0x29, //0x0000d418 .quad 2954682317029915497 + 0x0b, 0xe3, 0x86, 0x0c, 0x76, 0xc0, 0x36, 0x94, //0x0000d420 .quad -7766808894105001205 + 0x22, 0x65, 0xaf, 0x0a, 0x72, 0xb6, 0xa0, 0xf9, //0x0000d428 .quad -459166561069996766 + 0xce, 0x9b, 0xa8, 0x8f, 0x93, 0x70, 0x44, 0xb9, //0x0000d430 .quad -5096825099203863602 + 0x6a, 0x3e, 0x5b, 0x8d, 0x0e, 0xe4, 0x08, 0xf8, //0x0000d438 .quad -573958201337495958 + 0xc2, 0xc2, 0x92, 0x73, 0xb8, 0x8c, 0x95, 0xe7, //0x0000d440 .quad -1759345355577441598 + 0x05, 0x0e, 0xb2, 0x30, 0x12, 0x1d, 0x0b, 0xb6, //0x0000d448 .quad -5329133770099257851 + 0xb9, 0xb9, 0x3b, 0x48, 0xf3, 0x77, 0xbd, 0x90, //0x0000d450 .quad -8017119874876982855 + 0xc3, 0x48, 0x6f, 0x5e, 0x2b, 0xf2, 0xc6, 0xb1, //0x0000d458 .quad -5636551615525730109 + 0x28, 0xa8, 0x4a, 0x1a, 0xf0, 0xd5, 0xec, 0xb4, //0x0000d460 .quad -5409713825168840664 + 0xf4, 0x1a, 0x0b, 0x36, 0xb6, 0xae, 0x38, 0x1e, //0x0000d468 .quad 2177682517447613172 + 0x32, 0x52, 0xdd, 0x20, 0x6c, 0x0b, 0x28, 0xe2, //0x0000d470 .quad -2150456263033662926 + 0xb1, 0xe1, 0x8d, 0xc3, 0x63, 0xda, 0xc6, 0x25, //0x0000d478 .quad 2722103146809516465 + 0x5f, 0x53, 0x8a, 0x94, 0x23, 0x07, 0x59, 0x8d, //0x0000d480 .quad -8261564192037121185 + 0x0f, 0xad, 0x38, 0x5a, 0x7e, 0x48, 0x9c, 0x57, //0x0000d488 .quad 6313000485183335695 + 0x37, 0xe8, 0xac, 0x79, 0xec, 0x48, 0xaf, 0xb0, //0x0000d490 .quad -5715269221619013577 + 0x52, 0xd8, 0xc6, 0xf0, 0x9d, 0x5a, 0x83, 0x2d, //0x0000d498 .quad 3279564588051781714 + 0x44, 0x22, 0x18, 0x98, 0x27, 0x1b, 0xdb, 0xdc, //0x0000d4a0 .quad -2532400508596379068 + 0x66, 0x8e, 0xf8, 0x6c, 0x45, 0x31, 0xe4, 0xf8, //0x0000d4a8 .quad -512230283362660762 + 0x6b, 0x15, 0x0f, 0xbf, 0xf8, 0xf0, 0x08, 0x8a, //0x0000d4b0 .quad -8500279345513818773 + 0x00, 0x59, 0x1b, 0x64, 0xcb, 0x9e, 0x8e, 0x1b, //0x0000d4b8 .quad 1985699082112030976 + 0xc5, 0xda, 0xd2, 0xee, 0x36, 0x2d, 0x8b, 0xac, //0x0000d4c0 .quad -6013663163464885563 + 0x40, 0x2f, 0x22, 0x3d, 0x7e, 0x46, 0x72, 0xe2, //0x0000d4c8 .quad -2129562165787349184 + 0x77, 0x91, 0x87, 0xaa, 0x84, 0xf8, 0xad, 0xd7, //0x0000d4d0 .quad -2905392935903719049 + 0x10, 0xbb, 0x6a, 0xcc, 0x1d, 0xd8, 0x0e, 0x5b, //0x0000d4d8 .quad 6561419329620589328 + 0xea, 0xba, 0x94, 0xea, 0x52, 0xbb, 0xcc, 0x86, //0x0000d4e0 .quad -8733399612580906262 + 0xea, 0xb4, 0xc2, 0x9f, 0x12, 0x47, 0xe9, 0x98, //0x0000d4e8 .quad -7428327965055601430 + 0xa5, 0xe9, 0x39, 0xa5, 0x27, 0xea, 0x7f, 0xa8, //0x0000d4f0 .quad -6305063497298744923 + 0x25, 0x62, 0xb3, 0x47, 0xd7, 0x98, 0x23, 0x3f, //0x0000d4f8 .quad 4549648098962661925 + 0x0e, 0x64, 0x88, 0x8e, 0xb1, 0xe4, 0x9f, 0xd2, //0x0000d500 .quad -3269643353196043250 + 0xae, 0x3a, 0xa0, 0x19, 0x0d, 0x7f, 0xec, 0x8e, //0x0000d508 .quad -8147997931578836306 + 0x89, 0x3e, 0x15, 0xf9, 0xee, 0xee, 0xa3, 0x83, //0x0000d510 .quad -8961056123388608887 + 0xad, 0x24, 0x04, 0x30, 0x68, 0xcf, 0x53, 0x19, //0x0000d518 .quad 1825030320404309165 + 0x2b, 0x8e, 0x5a, 0xb7, 0xaa, 0xea, 0x8c, 0xa4, //0x0000d520 .quad -6589634135808373205 + 0xd8, 0x2d, 0x05, 0x3c, 0x42, 0xc3, 0xa8, 0x5f, //0x0000d528 .quad 6892973918932774360 + 0xb6, 0x31, 0x31, 0x65, 0x55, 0x25, 0xb0, 0xcd, //0x0000d530 .quad -3625356651333078602 + 0x4e, 0x79, 0x06, 0xcb, 0x12, 0xf4, 0x92, 0x37, //0x0000d538 .quad 4004531380238580046 + 0x11, 0xbf, 0x3e, 0x5f, 0x55, 0x17, 0x8e, 0x80, //0x0000d540 .quad -9183376934724255983 + 0xd1, 0x0b, 0xe4, 0xbe, 0x8b, 0xd8, 0xbb, 0xe2, //0x0000d548 .quad -2108853905778275375 + 0xd6, 0x6e, 0x0e, 0xb7, 0x2a, 0x9d, 0xb1, 0xa0, //0x0000d550 .quad -6867535149977932074 + 0xc5, 0x0e, 0x9d, 0xae, 0xae, 0xce, 0x6a, 0x5b, //0x0000d558 .quad 6587304654631931589 + 0x8b, 0x0a, 0xd2, 0x64, 0x75, 0x04, 0xde, 0xc8, //0x0000d560 .quad -3972732919045027189 + 0x76, 0x52, 0x44, 0x5a, 0x5a, 0x82, 0x45, 0xf2, //0x0000d568 .quad -989241218564861322 + 0x2e, 0x8d, 0x06, 0xbe, 0x92, 0x85, 0x15, 0xfb, //0x0000d570 .quad -354230130378896082 + 0x13, 0x67, 0xd5, 0xf0, 0xf0, 0xe2, 0xd6, 0xee, //0x0000d578 .quad -1236551523206076653 + 0x3d, 0x18, 0xc4, 0xb6, 0x7b, 0x73, 0xed, 0x9c, //0x0000d580 .quad -7138922859127891907 + 0x6c, 0x60, 0x85, 0x96, 0xd6, 0x4d, 0x46, 0x55, //0x0000d588 .quad 6144684325637283948 + 0x4c, 0x1e, 0x75, 0xa4, 0x5a, 0xd0, 0x28, 0xc4, //0x0000d590 .quad -4311967555482476980 + 0x87, 0xb8, 0x26, 0x3c, 0x4c, 0xe1, 0x97, 0xaa, //0x0000d598 .quad -6154202648235558777 + 0xdf, 0x65, 0x92, 0x4d, 0x71, 0x04, 0x33, 0xf5, //0x0000d5a0 .quad -778273425925708321 + 0xa9, 0x66, 0x30, 0x4b, 0x9f, 0xd9, 0x3d, 0xd5, //0x0000d5a8 .quad -3081067291867060567 + 0xab, 0x7f, 0x7b, 0xd0, 0xc6, 0xe2, 0x3f, 0x99, //0x0000d5b0 .quad -7403949918844649557 + 0x2a, 0x40, 0xfe, 0x8e, 0x03, 0xa8, 0x46, 0xe5, //0x0000d5b8 .quad -1925667057416912854 + 0x96, 0x5f, 0x9a, 0x84, 0x78, 0xdb, 0x8f, 0xbf, //0x0000d5c0 .quad -4643251380128424042 + 0x34, 0xd0, 0xbd, 0x72, 0x04, 0x52, 0x98, 0xde, //0x0000d5c8 .quad -2407083821771141068 + 0x7c, 0xf7, 0xc0, 0xa5, 0x56, 0xd2, 0x73, 0xef, //0x0000d5d0 .quad -1192378206733142148 + 0x41, 0x44, 0x6d, 0x8f, 0x85, 0x66, 0x3e, 0x96, //0x0000d5d8 .quad -7620540795641314239 + 0xad, 0x9a, 0x98, 0x27, 0x76, 0x63, 0xa8, 0x95, //0x0000d5e0 .quad -7662765406849295699 + 0xa9, 0x4a, 0xa4, 0x79, 0x13, 0x00, 0xe7, 0xdd, //0x0000d5e8 .quad -2456994988062127447 + 0x59, 0xc1, 0x7e, 0xb1, 0x53, 0x7c, 0x12, 0xbb, //0x0000d5f0 .quad -4966770740134231719 + 0x53, 0x5d, 0x0d, 0x58, 0x18, 0xc0, 0x60, 0x55, //0x0000d5f8 .quad 6152128301777116499 + 0xaf, 0x71, 0xde, 0x9d, 0x68, 0x1b, 0xd7, 0xe9, //0x0000d600 .quad -1596777406740401745 + 0xa7, 0xb4, 0x10, 0x6e, 0x1e, 0xf0, 0xb8, 0xaa, //0x0000d608 .quad -6144897678060768089 + 0x0d, 0x07, 0xab, 0x62, 0x21, 0x71, 0x26, 0x92, //0x0000d610 .quad -7915514906853832947 + 0xe9, 0x70, 0xca, 0x04, 0x13, 0x96, 0xb3, 0xca, //0x0000d618 .quad -3840561048787980055 + 0xd1, 0xc8, 0x55, 0xbb, 0x69, 0x0d, 0xb0, 0xb6, //0x0000d620 .quad -5282707615139903279 + 0x23, 0x0d, 0xfd, 0xc5, 0x97, 0x7b, 0x60, 0x3d, //0x0000d628 .quad 4422670725869800739 + 0x05, 0x3b, 0x2b, 0x2a, 0xc4, 0x10, 0x5c, 0xe4, //0x0000d630 .quad -1991698500497491195 + 0x6b, 0x50, 0x7c, 0xb7, 0x7d, 0x9a, 0xb8, 0x8c, //0x0000d638 .quad -8306719647944912789 + 0xe3, 0x04, 0x5b, 0x9a, 0x7a, 0x8a, 0xb9, 0x8e, //0x0000d640 .quad -8162340590452013853 + 0x43, 0xb2, 0xad, 0x92, 0x8e, 0x60, 0xf3, 0x77, //0x0000d648 .quad 8643358275316593219 + 0x1c, 0xc6, 0xf1, 0x40, 0x19, 0xed, 0x67, 0xb2, //0x0000d650 .quad -5591239719637629412 + 0xd4, 0x1e, 0x59, 0x37, 0xb2, 0x38, 0xf0, 0x55, //0x0000d658 .quad 6192511825718353620 + 0xa3, 0x37, 0x2e, 0x91, 0x5f, 0xe8, 0x01, 0xdf, //0x0000d660 .quad -2377363631119648861 + 0x89, 0x66, 0x2f, 0xc5, 0xde, 0x46, 0x6c, 0x6b, //0x0000d668 .quad 7740639782147942025 + 0xc6, 0xe2, 0xbc, 0xba, 0x3b, 0x31, 0x61, 0x8b, //0x0000d670 .quad -8403381297090862394 + 0x16, 0xa0, 0x3d, 0x3b, 0x4b, 0xac, 0x23, 0x23, //0x0000d678 .quad 2532056854628769814 + 0x77, 0x1b, 0x6c, 0xa9, 0x8a, 0x7d, 0x39, 0xae, //0x0000d680 .quad -5892540602936190089 + 0x1b, 0x08, 0x0d, 0x0a, 0x5e, 0x97, 0xec, 0xab, //0x0000d688 .quad -6058300968568813541 + 0x55, 0x22, 0xc7, 0x53, 0xed, 0xdc, 0xc7, 0xd9, //0x0000d690 .quad -2753989735242849707 + 0x22, 0x4a, 0x90, 0x8c, 0x35, 0xbd, 0xe7, 0x96, //0x0000d698 .quad -7572876210711016926 + 0x75, 0x75, 0x5c, 0x54, 0x14, 0xea, 0x1c, 0x88, //0x0000d6a0 .quad -8638772612167862923 + 0x55, 0x2e, 0xda, 0x77, 0x41, 0xd6, 0x50, 0x7e, //0x0000d6a8 .quad 9102010423587778133 + 0xd2, 0x92, 0x73, 0x69, 0x99, 0x24, 0x24, 0xaa, //0x0000d6b0 .quad -6186779746782440750 + 0xea, 0xb9, 0xd0, 0xd5, 0xd1, 0x0b, 0xe5, 0xdd, //0x0000d6b8 .quad -2457545025797441046 + 0x87, 0x77, 0xd0, 0xc3, 0xbf, 0x2d, 0xad, 0xd4, //0x0000d6c0 .quad -3121788665050663033 + 0x65, 0xe8, 0x44, 0x4b, 0xc6, 0x4e, 0x5e, 0x95, //0x0000d6c8 .quad -7683617300674189211 + 0xb4, 0x4a, 0x62, 0xda, 0x97, 0x3c, 0xec, 0x84, //0x0000d6d0 .quad -8868646943297746252 + 0x3f, 0x11, 0x0b, 0xef, 0x3b, 0xf1, 0x5a, 0xbd, //0x0000d6d8 .quad -4802260812921368257 + 0x61, 0xdd, 0xfa, 0xd0, 0xbd, 0x4b, 0x27, 0xa6, //0x0000d6e0 .quad -6474122660694794911 + 0x8f, 0xd5, 0xcd, 0xea, 0x8a, 0xad, 0xb1, 0xec, //0x0000d6e8 .quad -1391139997724322417 + 0xba, 0x94, 0x39, 0x45, 0xad, 0x1e, 0xb1, 0xcf, //0x0000d6f0 .quad -3480967307441105734 + 0xf3, 0x4a, 0x81, 0xa5, 0xed, 0x18, 0xde, 0x67, //0x0000d6f8 .quad 7484447039699372787 + 0xf4, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x0000d700 .quad -9093133594791772940 + 0xd8, 0xce, 0x70, 0x87, 0x94, 0xcf, 0xea, 0x80, //0x0000d708 .quad -9157278655470055720 + 0x31, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x0000d710 .quad -6754730975062328271 + 0x8e, 0x02, 0x4d, 0xa9, 0x79, 0x83, 0x25, 0xa1, //0x0000d718 .quad -6834912300910181746 + 0x3e, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x0000d720 .quad -3831727700400522434 + 0x31, 0x43, 0xa0, 0x13, 0x58, 0xe4, 0x6e, 0x09, //0x0000d728 .quad 679731660717048625 + 0x0d, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x0000d730 .quad -177973607073265139 + 0xfd, 0x53, 0x88, 0x18, 0x6e, 0x9d, 0xca, 0x8b, //0x0000d738 .quad -8373707460958465027 + 0x48, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x0000d740 .quad -7028762532061872568 + 0x7e, 0x34, 0x55, 0xcf, 0x64, 0xa2, 0x5e, 0x77, //0x0000d748 .quad 8601490892183123070 + 0xda, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x0000d750 .quad -4174267146649952806 + 0x9e, 0x81, 0x2a, 0x03, 0xfe, 0x4a, 0x36, 0x95, //0x0000d758 .quad -7694880458480647778 + 0x51, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x0000d760 .quad -606147914885053103 + 0x05, 0x22, 0xf5, 0x83, 0xbd, 0xdd, 0x83, 0x3a, //0x0000d768 .quad 4216457482181353989 + 0x52, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x0000d770 .quad -7296371474444240046 + 0x43, 0x35, 0x79, 0x72, 0x96, 0x6a, 0x92, 0xc4, //0x0000d778 .quad -4282243101277735613 + 0x27, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x0000d780 .quad -4508778324627912153 + 0x94, 0x82, 0x17, 0x0f, 0x3c, 0x05, 0xb7, 0x75, //0x0000d788 .quad 8482254178684994196 + 0xb1, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x0000d790 .quad -1024286887357502287 + 0x39, 0x63, 0xdd, 0x12, 0x8b, 0xc6, 0x24, 0x53, //0x0000d798 .quad 5991131704928854841 + 0xee, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x0000d7a0 .quad -7557708332239520786 + 0x04, 0x5e, 0xca, 0xeb, 0x16, 0xfc, 0xf6, 0xd3, //0x0000d7a8 .quad -3173071712060547580 + 0xea, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x0000d7b0 .quad -4835449396872013078 + 0x85, 0xf5, 0xbc, 0xa6, 0x1c, 0xbb, 0xf4, 0x88, //0x0000d7b8 .quad -8578025658503072379 + 0xa5, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x0000d7c0 .quad -1432625727662628443 + 0xe6, 0x32, 0x6c, 0xd0, 0xe3, 0xe9, 0x31, 0x2b, //0x0000d7c8 .quad 3112525982153323238 + 0x07, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x0000d7d0 .quad -7812920107430224633 + 0xd0, 0x9f, 0x43, 0x62, 0x2e, 0x32, 0xff, 0x3a, //0x0000d7d8 .quad 4251171748059520976 + 0x49, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x0000d7e0 .quad -5154464115860392887 + 0xc3, 0x87, 0xd4, 0xfa, 0xb9, 0xfe, 0xbe, 0x09, //0x0000d7e8 .quad 702278666647013315 + 0x5b, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x0000d7f0 .quad -1831394126398103205 + 0xb4, 0xa9, 0x89, 0x79, 0x68, 0xbe, 0x2e, 0x4c, //0x0000d7f8 .quad 5489534351736154548 + 0xd9, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x0000d800 .quad -8062150356639896359 + 0x11, 0x0a, 0xf6, 0x4b, 0x01, 0x37, 0x9d, 0x0f, //0x0000d808 .quad 1125115960621402641 + 0x0f, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x0000d810 .quad -5466001927372482545 + 0x95, 0x8c, 0xf3, 0x9e, 0xc1, 0x84, 0x84, 0x53, //0x0000d818 .quad 6018080969204141205 + 0x13, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x0000d820 .quad -2220816390788215277 + 0xba, 0x6f, 0xb0, 0x06, 0xf2, 0xa5, 0x65, 0x28, //0x0000d828 .quad 2910915193077788602 + 0xcb, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x0000d830 .quad -8305539271883716405 + 0xd4, 0x45, 0x2e, 0x44, 0xb7, 0x87, 0x3f, 0xf9, //0x0000d838 .quad -486521013540076076 + 0xfe, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x0000d840 .quad -5770238071427257602 + 0x49, 0xd7, 0x39, 0x15, 0xa5, 0x69, 0x8f, 0xf7, //0x0000d848 .quad -608151266925095095 + 0xbe, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x0000d850 .quad -2601111570856684098 + 0x1c, 0x4d, 0x88, 0x5a, 0x0e, 0x44, 0x73, 0xb5, //0x0000d858 .quad -5371875102083756772 + 0x97, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x0000d860 .quad -8543223759426509417 + 0x31, 0x30, 0x95, 0xf8, 0x88, 0x0a, 0x68, 0x31, //0x0000d868 .quad 3560107088838733873 + 0xfc, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x0000d870 .quad -6067343680855748868 + 0x3e, 0x7c, 0xba, 0x36, 0x2b, 0x0d, 0xc2, 0xfd, //0x0000d878 .quad -161552157378970562 + 0xbc, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x0000d880 .quad -2972493582642298180 + 0x4d, 0x1b, 0x69, 0x04, 0x76, 0x90, 0x32, 0x3d, //0x0000d888 .quad 4409745821703674701 + 0xb5, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x0000d890 .quad -8775337516792518219 + 0x10, 0xb1, 0xc1, 0xc2, 0x49, 0x9a, 0x3f, 0xa6, //0x0000d898 .quad -6467280898289979120 + 0x23, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x0000d8a0 .quad -6357485877563259869 + 0x54, 0x1d, 0x72, 0x33, 0xdc, 0x80, 0xcf, 0x0f, //0x0000d8a8 .quad 1139270913992301908 + 0x2b, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x0000d8b0 .quad -3335171328526686933 + 0xa9, 0xa4, 0x4e, 0x40, 0x13, 0x61, 0xc3, 0xd3, //0x0000d8b8 .quad -3187597375937010519 + 0x3b, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x0000d8c0 .quad -9002011107970261189 + 0xea, 0x26, 0x31, 0x08, 0xac, 0x1c, 0x5a, 0x64, //0x0000d8c8 .quad 7231123676894144234 + 0x0a, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x0000d8d0 .quad -6640827866535438582 + 0xa4, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, 0x70, 0x3d, //0x0000d8d8 .quad 4427218577690292388 + 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d8e0 .quad -3689348814741910324 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x0000d8e8 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x0000d8f0 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d8f8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x0000d900 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d908 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x0000d910 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d918 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x0000d920 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d928 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x0000d930 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d938 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x0000d940 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d948 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x0000d950 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d958 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x0000d960 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d968 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x0000d970 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d978 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x0000d980 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d988 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x0000d990 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d998 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x0000d9a0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9a8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x0000d9b0 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9b8 .quad 0 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x0000d9c0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9c8 .quad 0 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x0000d9d0 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9d8 .quad 0 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x0000d9e0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9e8 .quad 0 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x0000d9f0 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000d9f8 .quad 0 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x0000da00 .quad -5646744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da08 .quad 0 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x0000da10 .quad -2446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da18 .quad 0 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x0000da20 .quad -8446744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da28 .quad 0 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x0000da30 .quad -5946744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da38 .quad 0 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x0000da40 .quad -2821744073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da48 .quad 0 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x0000da50 .quad -8681119073709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da58 .quad 0 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x0000da60 .quad -6239712823709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da68 .quad 0 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x0000da70 .quad -3187955011209551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da78 .quad 0 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x0000da80 .quad -8910000909647051616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da88 .quad 0 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x0000da90 .quad -6525815118631426616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000da98 .quad 0 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x0000daa0 .quad -3545582879861895366 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000daa8 .quad 0 + 0x84, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x0000dab0 .quad -9133518327554766460 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, //0x0000dab8 .quad 4611686018427387904 + 0xe5, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x0000dac0 .quad -6805211891016070171 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, //0x0000dac8 .quad 5764607523034234880 + 0xde, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x0000dad0 .quad -3894828845342699810 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, //0x0000dad8 .quad -6629298651489370112 + 0x96, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x0000dae0 .quad -256850038250986858 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, //0x0000dae8 .quad 5548434740920451072 + 0x9d, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x0000daf0 .quad -7078060301547948643 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xf0, //0x0000daf8 .quad -1143914305352105984 + 0x05, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x0000db00 .quad -4235889358507547899 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6c, //0x0000db08 .quad 7793479155164643328 + 0xc6, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x0000db10 .quad -683175679707046970 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xc7, //0x0000db18 .quad -4093209111326359552 + 0x5c, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x0000db20 .quad -7344513827457986212 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7f, 0x3c, //0x0000db28 .quad 4359273333062107136 + 0xb3, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x0000db30 .quad -4568956265895094861 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x9f, 0x4b, //0x0000db38 .quad 5449091666327633920 + 0x20, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x0000db40 .quad -1099509313941480672 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x86, 0x1e, //0x0000db48 .quad 2199678564482154496 + 0xf4, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x0000db50 .quad -7604722348854507276 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x44, 0x14, 0x13, //0x0000db58 .quad 1374799102801346560 + 0x31, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x0000db60 .quad -4894216917640746191 + 0x00, 0x00, 0x00, 0x00, 0xa0, 0x55, 0xd9, 0x17, //0x0000db68 .quad 1718498878501683200 + 0xfd, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x0000db70 .quad -1506085128623544835 + 0x00, 0x00, 0x00, 0x00, 0x08, 0xab, 0xcf, 0x5d, //0x0000db78 .quad 6759809616554491904 + 0xbe, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x0000db80 .quad -7858832233030797378 + 0x00, 0x00, 0x00, 0x00, 0xe5, 0xca, 0xa1, 0x5a, //0x0000db88 .quad 6530724019560251392 + 0xad, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x0000db90 .quad -5211854272861108819 + 0x00, 0x00, 0x00, 0x40, 0x9e, 0x3d, 0x4a, 0xf1, //0x0000db98 .quad -1059967012404461568 + 0x19, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x0000dba0 .quad -1903131822648998119 + 0x00, 0x00, 0x00, 0xd0, 0x05, 0xcd, 0x9c, 0x6d, //0x0000dba8 .quad 7898413271349198848 + 0x6f, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x0000dbb0 .quad -8106986416796705681 + 0x00, 0x00, 0x00, 0xa2, 0x23, 0x00, 0x82, 0xe4, //0x0000dbb8 .quad -1981020733047832576 + 0x8b, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x0000dbc0 .quad -5522047002568494197 + 0x00, 0x00, 0x80, 0x8a, 0x2c, 0x80, 0xa2, 0xdd, //0x0000dbc8 .quad -2476275916309790720 + 0x6e, 0x30, 0x9e, 0xa1, 0x62, 0x2f, 0x35, 0xe0, //0x0000dbd0 .quad -2290872734783229842 + 0x00, 0x00, 0x20, 0xad, 0x37, 0x20, 0x0b, 0xd5, //0x0000dbd8 .quad -3095344895387238400 + 0x45, 0xde, 0x02, 0xa5, 0x9d, 0x3d, 0x21, 0x8c, //0x0000dbe0 .quad -8349324486880600507 + 0x00, 0x00, 0x34, 0xcc, 0x22, 0xf4, 0x26, 0x45, //0x0000dbe8 .quad 4982938468024057856 + 0xd6, 0x95, 0x43, 0x0e, 0x05, 0x8d, 0x29, 0xaf, //0x0000dbf0 .quad -5824969590173362730 + 0x00, 0x00, 0x41, 0x7f, 0x2b, 0xb1, 0x70, 0x96, //0x0000dbf8 .quad -7606384970252091392 + 0x4c, 0x7b, 0xd4, 0x51, 0x46, 0xf0, 0xf3, 0xda, //0x0000dc00 .quad -2669525969289315508 + 0x00, 0x40, 0x11, 0x5f, 0x76, 0xdd, 0x0c, 0x3c, //0x0000dc08 .quad 4327076842467049472 + 0x0f, 0xcd, 0x24, 0xf3, 0x2b, 0x76, 0xd8, 0x88, //0x0000dc10 .quad -8585982758446904049 + 0x00, 0xc8, 0x6a, 0xfb, 0x69, 0x0a, 0x88, 0xa5, //0x0000dc18 .quad -6518949010312869888 + 0x53, 0x00, 0xee, 0xef, 0xb6, 0x93, 0x0e, 0xab, //0x0000dc20 .quad -6120792429631242157 + 0x00, 0x7a, 0x45, 0x7a, 0x04, 0x0d, 0xea, 0x8e, //0x0000dc28 .quad -8148686262891087360 + 0x68, 0x80, 0xe9, 0xab, 0xa4, 0x38, 0xd2, 0xd5, //0x0000dc30 .quad -3039304518611664792 + 0x80, 0xd8, 0xd6, 0x98, 0x45, 0x90, 0xa4, 0x72, //0x0000dc38 .quad 8260886245095692416 + 0x41, 0xf0, 0x71, 0xeb, 0x66, 0x63, 0xa3, 0x85, //0x0000dc40 .quad -8817094351773372351 + 0x50, 0x47, 0x86, 0x7f, 0x2b, 0xda, 0xa6, 0x47, //0x0000dc48 .quad 5163053903184807760 + 0x51, 0x6c, 0x4e, 0xa6, 0x40, 0x3c, 0x0c, 0xa7, //0x0000dc50 .quad -6409681921289327535 + 0x24, 0xd9, 0x67, 0x5f, 0xb6, 0x90, 0x90, 0x99, //0x0000dc58 .quad -7381240676301154012 + 0x65, 0x07, 0xe2, 0xcf, 0x50, 0x4b, 0xcf, 0xd0, //0x0000dc60 .quad -3400416383184271515 + 0x6d, 0xcf, 0x41, 0xf7, 0xe3, 0xb4, 0xf4, 0xff, //0x0000dc68 .quad -3178808521666707 + 0x9f, 0x44, 0xed, 0x81, 0x12, 0x8f, 0x81, 0x82, //0x0000dc70 .quad -9042789267131251553 + 0xa5, 0x21, 0x89, 0x7a, 0x0e, 0xf1, 0xf8, 0xbf, //0x0000dc78 .quad -4613672773753429595 + 0xc7, 0x95, 0x68, 0x22, 0xd7, 0xf2, 0x21, 0xa3, //0x0000dc80 .quad -6691800565486676537 + 0x0e, 0x6a, 0x2b, 0x19, 0x52, 0x2d, 0xf7, 0xaf, //0x0000dc88 .quad -5767090967191786994 + 0x39, 0xbb, 0x02, 0xeb, 0x8c, 0x6f, 0xea, 0xcb, //0x0000dc90 .quad -3753064688430957767 + 0x91, 0x44, 0x76, 0x9f, 0xa6, 0xf8, 0xf4, 0x9b, //0x0000dc98 .quad -7208863708989733743 + 0x08, 0x6a, 0xc3, 0x25, 0x70, 0x0b, 0xe5, 0xfe, //0x0000dca0 .quad -79644842111309304 + 0xb5, 0xd5, 0x53, 0x47, 0xd0, 0x36, 0xf2, 0x02, //0x0000dca8 .quad 212292400617608629 + 0x45, 0x22, 0x9a, 0x17, 0x26, 0x27, 0x4f, 0x9f, //0x0000dcb0 .quad -6967307053960650171 + 0x91, 0x65, 0x94, 0x2c, 0x42, 0x62, 0xd7, 0x01, //0x0000dcb8 .quad 132682750386005393 + 0xd6, 0xaa, 0x80, 0x9d, 0xef, 0xf0, 0x22, 0xc7, //0x0000dcc0 .quad -4097447799023424810 + 0xf6, 0x7e, 0xb9, 0xb7, 0xd2, 0x3a, 0x4d, 0x42, //0x0000dcc8 .quad 4777539456409894646 + 0x8b, 0xd5, 0xe0, 0x84, 0x2b, 0xad, 0xeb, 0xf8, //0x0000dcd0 .quad -510123730351893109 + 0xb3, 0xde, 0xa7, 0x65, 0x87, 0x89, 0xe0, 0xd2, //0x0000dcd8 .quad -3251447716342407501 + 0x77, 0x85, 0x0c, 0x33, 0x3b, 0x4c, 0x93, 0x9b, //0x0000dce0 .quad -7236356359111015049 + 0x30, 0xeb, 0x88, 0x9f, 0xf4, 0x55, 0xcc, 0x63, //0x0000dce8 .quad 7191217214140771120 + 0xd5, 0xa6, 0xcf, 0xff, 0x49, 0x1f, 0x78, 0xc2, //0x0000dcf0 .quad -4433759430461380907 + 0xfc, 0x25, 0x6b, 0xc7, 0x71, 0x6b, 0xbf, 0x3c, //0x0000dcf8 .quad 4377335499248575996 + 0x8a, 0x90, 0xc3, 0x7f, 0x1c, 0x27, 0x16, 0xf3, //0x0000dd00 .quad -930513269649338230 + 0x7b, 0xef, 0x45, 0x39, 0x4e, 0x46, 0xef, 0x8b, //0x0000dd08 .quad -8363388681221443717 + 0x56, 0x3a, 0xda, 0xcf, 0x71, 0xd8, 0xed, 0x97, //0x0000dd10 .quad -7499099821171918250 + 0xad, 0xb5, 0xcb, 0xe3, 0xf0, 0x8b, 0x75, 0x97, //0x0000dd18 .quad -7532960934977096275 + 0xec, 0xc8, 0xd0, 0x43, 0x8e, 0x4e, 0xe9, 0xbd, //0x0000dd20 .quad -4762188758037509908 + 0x18, 0xa3, 0xbe, 0x1c, 0xed, 0xee, 0x52, 0x3d, //0x0000dd28 .quad 4418856886560793368 + 0x27, 0xfb, 0xc4, 0xd4, 0x31, 0xa2, 0x63, 0xed, //0x0000dd30 .quad -1341049929119499481 + 0xde, 0x4b, 0xee, 0x63, 0xa8, 0xaa, 0xa7, 0x4c, //0x0000dd38 .quad 5523571108200991710 + 0xf8, 0x1c, 0xfb, 0x24, 0x5f, 0x45, 0x5e, 0x94, //0x0000dd40 .quad -7755685233340769032 + 0x6b, 0xef, 0x74, 0x3e, 0xa9, 0xca, 0xe8, 0x8f, //0x0000dd48 .quad -8076983103442849941 + 0x36, 0xe4, 0x39, 0xee, 0xb6, 0xd6, 0x75, 0xb9, //0x0000dd50 .quad -5082920523248573386 + 0x45, 0x2b, 0x12, 0x8e, 0x53, 0xfd, 0xe2, 0xb3, //0x0000dd58 .quad -5484542860876174523 + 0x44, 0x5d, 0xc8, 0xa9, 0x64, 0x4c, 0xd3, 0xe7, //0x0000dd60 .quad -1741964635633328828 + 0x17, 0xb6, 0x96, 0x71, 0xa8, 0xbc, 0xdb, 0x60, //0x0000dd68 .quad 6979379479186945559 + 0x4a, 0x3a, 0x1d, 0xea, 0xbe, 0x0f, 0xe4, 0x90, //0x0000dd70 .quad -8006256924911912374 + 0xce, 0x31, 0xfe, 0x46, 0xe9, 0x55, 0x89, 0xbc, //0x0000dd78 .quad -4861259862362934834 + 0xdd, 0x88, 0xa4, 0xa4, 0xae, 0x13, 0x1d, 0xb5, //0x0000dd80 .quad -5396135137712502563 + 0x42, 0xbe, 0xbd, 0x98, 0x63, 0xab, 0xab, 0x6b, //0x0000dd88 .quad 7758483227328495170 + 0x14, 0xab, 0xcd, 0x4d, 0x9a, 0x58, 0x64, 0xe2, //0x0000dd90 .quad -2133482903713240300 + 0xd2, 0x2d, 0xed, 0x7e, 0x3c, 0x96, 0x96, 0xc6, //0x0000dd98 .quad -4136954021121544750 + 0xec, 0x8a, 0xa0, 0x70, 0x60, 0xb7, 0x7e, 0x8d, //0x0000dda0 .quad -8250955842461857044 + 0xa3, 0x3c, 0x54, 0xcf, 0xe5, 0x1d, 0x1e, 0xfc, //0x0000dda8 .quad -279753253987271517 + 0xa8, 0xad, 0xc8, 0x8c, 0x38, 0x65, 0xde, 0xb0, //0x0000ddb0 .quad -5702008784649933400 + 0xcc, 0x4b, 0x29, 0x43, 0x5f, 0xa5, 0x25, 0x3b, //0x0000ddb8 .quad 4261994450943298508 + 0x12, 0xd9, 0xfa, 0xaf, 0x86, 0xfe, 0x15, 0xdd, //0x0000ddc0 .quad -2515824962385028846 + 0xbf, 0x9e, 0xf3, 0x13, 0xb7, 0x0e, 0xef, 0x49, //0x0000ddc8 .quad 5327493063679123135 + 0xab, 0xc7, 0xfc, 0x2d, 0x14, 0xbf, 0x2d, 0x8a, //0x0000ddd0 .quad -8489919629131724885 + 0x38, 0x43, 0x78, 0x6c, 0x32, 0x69, 0x35, 0x6e, //0x0000ddd8 .quad 7941369183226839864 + 0x96, 0xf9, 0x7b, 0x39, 0xd9, 0x2e, 0xb9, 0xac, //0x0000dde0 .quad -6000713517987268202 + 0x05, 0x54, 0x96, 0x07, 0x7f, 0xc3, 0xc2, 0x49, //0x0000dde8 .quad 5315025460606161925 + 0xfb, 0xf7, 0xda, 0x87, 0x8f, 0x7a, 0xe7, 0xd7, //0x0000ddf0 .quad -2889205879056697349 + 0x07, 0xe9, 0x7b, 0xc9, 0x5e, 0x74, 0x33, 0xdc, //0x0000ddf8 .quad -2579590211097073401 + 0xfd, 0xda, 0xe8, 0xb4, 0x99, 0xac, 0xf0, 0x86, //0x0000de00 .quad -8723282702051517699 + 0xa4, 0x71, 0xed, 0x3d, 0xbb, 0x28, 0xa0, 0x69, //0x0000de08 .quad 7611128154919104932 + 0xbc, 0x11, 0x23, 0x22, 0xc0, 0xd7, 0xac, 0xa8, //0x0000de10 .quad -6292417359137009220 + 0x0d, 0xce, 0x68, 0x0d, 0xea, 0x32, 0x08, 0xc4, //0x0000de18 .quad -4321147861633282547 + 0x2b, 0xd6, 0xab, 0x2a, 0xb0, 0x0d, 0xd8, 0xd2, //0x0000de20 .quad -3253835680493873621 + 0x91, 0x01, 0xc3, 0x90, 0xa4, 0x3f, 0x0a, 0xf5, //0x0000de28 .quad -789748808614215279 + 0xdb, 0x65, 0xab, 0x1a, 0x8e, 0x08, 0xc7, 0x83, //0x0000de30 .quad -8951176327949752869 + 0xfb, 0xe0, 0x79, 0xda, 0xc6, 0x67, 0x26, 0x79, //0x0000de38 .quad 8729779031470891259 + 0x52, 0x3f, 0x56, 0xa1, 0xb1, 0xca, 0xb8, 0xa4, //0x0000de40 .quad -6577284391509803182 + 0x39, 0x59, 0x18, 0x91, 0xb8, 0x01, 0x70, 0x57, //0x0000de48 .quad 6300537770911226169 + 0x26, 0xcf, 0xab, 0x09, 0x5e, 0xfd, 0xe6, 0xcd, //0x0000de50 .quad -3609919470959866074 + 0x87, 0x6f, 0x5e, 0xb5, 0x26, 0x02, 0x4c, 0xed, //0x0000de58 .quad -1347699823215743097 + 0x78, 0x61, 0x0b, 0xc6, 0x5a, 0x5e, 0xb0, 0x80, //0x0000de60 .quad -9173728696990998152 + 0xb5, 0x05, 0x5b, 0x31, 0x58, 0x81, 0x4f, 0x54, //0x0000de68 .quad 6075216638131242421 + 0xd6, 0x39, 0x8e, 0x77, 0xf1, 0x75, 0xdc, 0xa0, //0x0000de70 .quad -6855474852811359786 + 0x22, 0xc7, 0xb1, 0x3d, 0xae, 0x61, 0x63, 0x69, //0x0000de78 .quad 7594020797664053026 + 0x4c, 0xc8, 0x71, 0xd5, 0x6d, 0x93, 0x13, 0xc9, //0x0000de80 .quad -3957657547586811828 + 0xea, 0x38, 0x1e, 0xcd, 0x19, 0x3a, 0xbc, 0x03, //0x0000de88 .quad 269153960225290474 + 0x5f, 0x3a, 0xce, 0x4a, 0x49, 0x78, 0x58, 0xfb, //0x0000de90 .quad -335385916056126881 + 0x24, 0xc7, 0x65, 0x40, 0xa0, 0x48, 0xab, 0x04, //0x0000de98 .quad 336442450281613092 + 0x7b, 0xe4, 0xc0, 0xce, 0x2d, 0x4b, 0x17, 0x9d, //0x0000dea0 .quad -7127145225176161157 + 0x77, 0x9c, 0x3f, 0x28, 0x64, 0x0d, 0xeb, 0x62, //0x0000dea8 .quad 7127805559067090039 + 0x9a, 0x1d, 0x71, 0x42, 0xf9, 0x1d, 0x5d, 0xc4, //0x0000deb0 .quad -4297245513042813542 + 0x95, 0x83, 0x4f, 0x32, 0xbd, 0xd0, 0xa5, 0x3b, //0x0000deb8 .quad 4298070930406474645 + 0x00, 0x65, 0x0d, 0x93, 0x77, 0x65, 0x74, 0xf5, //0x0000dec0 .quad -759870872876129024 + 0x7a, 0x64, 0xe3, 0x7e, 0xec, 0x44, 0x8f, 0xca, //0x0000dec8 .quad -3850783373846682502 + 0x20, 0x5f, 0xe8, 0xbb, 0x6a, 0xbf, 0x68, 0x99, //0x0000ded0 .quad -7392448323188662496 + 0xcc, 0x1e, 0x4e, 0xcf, 0x13, 0x8b, 0x99, 0x7e, //0x0000ded8 .quad 9122475437414293196 + 0xe8, 0x76, 0xe2, 0x6a, 0x45, 0xef, 0xc2, 0xbf, //0x0000dee0 .quad -4628874385558440216 + 0x7f, 0xa6, 0x21, 0xc3, 0xd8, 0xed, 0x3f, 0x9e, //0x0000dee8 .quad -7043649776941685121 + 0xa2, 0x14, 0x9b, 0xc5, 0x16, 0xab, 0xb3, 0xef, //0x0000def0 .quad -1174406963520662366 + 0x1f, 0x10, 0xea, 0xf3, 0x4e, 0xe9, 0xcf, 0xc5, //0x0000def8 .quad -4192876202749718497 + 0xe5, 0xec, 0x80, 0x3b, 0xee, 0x4a, 0xd0, 0x95, //0x0000df00 .quad -7651533379841495835 + 0x13, 0x4a, 0x72, 0x58, 0xd1, 0xf1, 0xa1, 0xbb, //0x0000df08 .quad -4926390635932268013 + 0x1f, 0x28, 0x61, 0xca, 0xa9, 0x5d, 0x44, 0xbb, //0x0000df10 .quad -4952730706374481889 + 0x98, 0xdc, 0x8e, 0xae, 0x45, 0x6e, 0x8a, 0x2a, //0x0000df18 .quad 3065383741939440792 + 0x26, 0x72, 0xf9, 0x3c, 0x14, 0x75, 0x15, 0xea, //0x0000df20 .quad -1579227364540714458 + 0xbe, 0x93, 0x32, 0x1a, 0xd7, 0x09, 0x2d, 0xf5, //0x0000df28 .quad -779956341003086914 + 0x58, 0xe7, 0x1b, 0xa6, 0x2c, 0x69, 0x4d, 0x92, //0x0000df30 .quad -7904546130479028392 + 0x57, 0x9c, 0x5f, 0x70, 0x26, 0x26, 0x3c, 0x59, //0x0000df38 .quad 6430056314514152535 + 0x2e, 0xe1, 0xa2, 0xcf, 0x77, 0xc3, 0xe0, 0xb6, //0x0000df40 .quad -5268996644671397586 + 0x6d, 0x83, 0x77, 0x0c, 0xb0, 0x2f, 0x8b, 0x6f, //0x0000df48 .quad 8037570393142690669 + 0x7a, 0x99, 0x8b, 0xc3, 0x55, 0xf4, 0x98, 0xe4, //0x0000df50 .quad -1974559787411859078 + 0x48, 0x64, 0x95, 0x0f, 0x9c, 0xfb, 0x6d, 0x0b, //0x0000df58 .quad 823590954573587528 + 0xec, 0x3f, 0x37, 0x9a, 0xb5, 0x98, 0xdf, 0x8e, //0x0000df60 .quad -8151628894773493780 + 0xad, 0x5e, 0xbd, 0x89, 0x41, 0xbd, 0x24, 0x47, //0x0000df68 .quad 5126430365035880109 + 0xe7, 0x0f, 0xc5, 0x00, 0xe3, 0x7e, 0x97, 0xb2, //0x0000df70 .quad -5577850100039479321 + 0x58, 0xb6, 0x2c, 0xec, 0x91, 0xec, 0xed, 0x58, //0x0000df78 .quad 6408037956294850136 + 0xe1, 0x53, 0xf6, 0xc0, 0x9b, 0x5e, 0x3d, 0xdf, //0x0000df80 .quad -2360626606621961247 + 0xee, 0xe3, 0x37, 0x67, 0xb6, 0x67, 0x29, 0x2f, //0x0000df88 .quad 3398361426941174766 + 0x6c, 0xf4, 0x99, 0x58, 0x21, 0x5b, 0x86, 0x8b, //0x0000df90 .quad -8392920656779807636 + 0x75, 0xee, 0x82, 0x00, 0xd2, 0xe0, 0x79, 0xbd, //0x0000df98 .quad -4793553135802847627 + 0x87, 0x71, 0xc0, 0xae, 0xe9, 0xf1, 0x67, 0xae, //0x0000dfa0 .quad -5879464802547371641 + 0x12, 0xaa, 0xa3, 0x80, 0x06, 0x59, 0xd8, 0xec, //0x0000dfa8 .quad -1380255401326171630 + 0xe9, 0x8d, 0x70, 0x1a, 0x64, 0xee, 0x01, 0xda, //0x0000dfb0 .quad -2737644984756826647 + 0x96, 0x94, 0xcc, 0x20, 0x48, 0x6f, 0x0e, 0xe8, //0x0000dfb8 .quad -1725319251657714538 + 0xb2, 0x58, 0x86, 0x90, 0xfe, 0x34, 0x41, 0x88, //0x0000dfc0 .quad -8628557143114098510 + 0xde, 0xdc, 0x7f, 0x14, 0x8d, 0x05, 0x09, 0x31, //0x0000dfc8 .quad 3533361486141316318 + 0xde, 0xee, 0xa7, 0x34, 0x3e, 0x82, 0x51, 0xaa, //0x0000dfd0 .quad -6174010410465235234 + 0x16, 0xd4, 0x9f, 0x59, 0xf0, 0x46, 0x4b, 0xbd, //0x0000dfd8 .quad -4806670179178130410 + 0x96, 0xea, 0xd1, 0xc1, 0xcd, 0xe2, 0xe5, 0xd4, //0x0000dfe0 .quad -3105826994654156138 + 0x1b, 0xc9, 0x07, 0x70, 0xac, 0x18, 0x9e, 0x6c, //0x0000dfe8 .quad 7826720331309500699 + 0x9e, 0x32, 0x23, 0x99, 0xc0, 0xad, 0x0f, 0x85, //0x0000dff0 .quad -8858670899299929442 + 0xb1, 0xdd, 0x04, 0xc6, 0x6b, 0xcf, 0xe2, 0x03, //0x0000dff8 .quad 280014188641050033 + 0x45, 0xff, 0x6b, 0xbf, 0x30, 0x99, 0x53, 0xa6, //0x0000e000 .quad -6461652605697523899 + 0x1d, 0x15, 0x86, 0xb7, 0x46, 0x83, 0xdb, 0x84, //0x0000e008 .quad -8873354301053463267 + 0x16, 0xff, 0x46, 0xef, 0x7c, 0x7f, 0xe8, 0xcf, //0x0000e010 .quad -3465379738694516970 + 0x64, 0x9a, 0x67, 0x65, 0x18, 0x64, 0x12, 0xe6, //0x0000e018 .quad -1868320839462053276 + 0x6e, 0x5f, 0x8c, 0x15, 0xae, 0x4f, 0xf1, 0x81, //0x0000e020 .quad -9083391364325154962 + 0x7f, 0xc0, 0x60, 0x3f, 0x8f, 0x7e, 0xcb, 0x4f, //0x0000e028 .quad 5749828502977298559 + 0x49, 0x77, 0xef, 0x9a, 0x99, 0xa3, 0x6d, 0xa2, //0x0000e030 .quad -6742553186979055799 + 0x9e, 0xf0, 0x38, 0x0f, 0x33, 0x5e, 0xbe, 0xe3, //0x0000e038 .quad -2036086408133152610 + 0x1c, 0x55, 0xab, 0x01, 0x80, 0x0c, 0x09, 0xcb, //0x0000e040 .quad -3816505465296431844 + 0xc6, 0x2c, 0x07, 0xd3, 0xbf, 0xf5, 0xad, 0x5c, //0x0000e048 .quad 6678264026688335046 + 0x63, 0x2a, 0x16, 0x02, 0xa0, 0x4f, 0xcb, 0xfd, //0x0000e050 .quad -158945813193151901 + 0xf7, 0xf7, 0xc8, 0xc7, 0x2f, 0x73, 0xd9, 0x73, //0x0000e058 .quad 8347830033360418807 + 0x7e, 0xda, 0x4d, 0x01, 0xc4, 0x11, 0x9f, 0x9e, //0x0000e060 .quad -7016870160886801794 + 0xfb, 0x9a, 0xdd, 0xdc, 0xfd, 0xe7, 0x67, 0x28, //0x0000e068 .quad 2911550761636567803 + 0x1d, 0x51, 0xa1, 0x01, 0x35, 0xd6, 0x46, 0xc6, //0x0000e070 .quad -4159401682681114339 + 0xb9, 0x01, 0x15, 0x54, 0xfd, 0xe1, 0x81, 0xb2, //0x0000e078 .quad -5583933584809066055 + 0x65, 0xa5, 0x09, 0x42, 0xc2, 0x8b, 0xd8, 0xf7, //0x0000e080 .quad -587566084924005019 + 0x27, 0x42, 0x1a, 0xa9, 0x7c, 0x5a, 0x22, 0x1f, //0x0000e088 .quad 2243455055843443239 + 0x5f, 0x07, 0x46, 0x69, 0x59, 0x57, 0xe7, 0x9a, //0x0000e090 .quad -7284757830718584993 + 0x59, 0x69, 0xb0, 0xe9, 0x8d, 0x78, 0x75, 0x33, //0x0000e098 .quad 3708002419115845977 + 0x37, 0x89, 0x97, 0xc3, 0x2f, 0x2d, 0xa1, 0xc1, //0x0000e0a0 .quad -4494261269970843337 + 0xaf, 0x83, 0x1c, 0x64, 0xb1, 0xd6, 0x52, 0x00, //0x0000e0a8 .quad 23317005467419567 + 0x84, 0x6b, 0x7d, 0xb4, 0x7b, 0x78, 0x09, 0xf2, //0x0000e0b0 .quad -1006140569036166268 + 0x9b, 0xa4, 0x23, 0xbd, 0x5d, 0x8c, 0x67, 0xc0, //0x0000e0b8 .quad -4582539761593113445 + 0x32, 0x63, 0xce, 0x50, 0x4d, 0xeb, 0x45, 0x97, //0x0000e0c0 .quad -7546366883288685774 + 0xe1, 0x46, 0x36, 0x96, 0xba, 0xb7, 0x40, 0xf8, //0x0000e0c8 .quad -558244341782001951 + 0xff, 0xfb, 0x01, 0xa5, 0x20, 0x66, 0x17, 0xbd, //0x0000e0d0 .quad -4821272585683469313 + 0x99, 0xd8, 0xc3, 0x3b, 0xa9, 0xe5, 0x50, 0xb6, //0x0000e0d8 .quad -5309491445654890343 + 0xff, 0x7a, 0x42, 0xce, 0xa8, 0x3f, 0x5d, 0xec, //0x0000e0e0 .quad -1414904713676948737 + 0xbf, 0xce, 0xb4, 0x8a, 0x13, 0x1f, 0xe5, 0xa3, //0x0000e0e8 .quad -6636864307068612929 + 0xdf, 0x8c, 0xe9, 0x80, 0xc9, 0x47, 0xba, 0x93, //0x0000e0f0 .quad -7801844473689174817 + 0x38, 0x01, 0xb1, 0x36, 0x6c, 0x33, 0x6f, 0xc6, //0x0000e0f8 .quad -4148040191917883080 + 0x17, 0xf0, 0x23, 0xe1, 0xbb, 0xd9, 0xa8, 0xb8, //0x0000e100 .quad -5140619573684080617 + 0x85, 0x41, 0x5d, 0x44, 0x47, 0x00, 0x0b, 0xb8, //0x0000e108 .quad -5185050239897353851 + 0x1d, 0xec, 0x6c, 0xd9, 0x2a, 0x10, 0xd3, 0xe6, //0x0000e110 .quad -1814088448677712867 + 0xe6, 0x91, 0x74, 0x15, 0x59, 0xc0, 0x0d, 0xa6, //0x0000e118 .quad -6481312799871692314 + 0x92, 0x13, 0xe4, 0xc7, 0x1a, 0xea, 0x43, 0x90, //0x0000e120 .quad -8051334308064652398 + 0x30, 0xdb, 0x68, 0xad, 0x37, 0x98, 0xc8, 0x87, //0x0000e128 .quad -8662506518347195600 + 0x77, 0x18, 0xdd, 0x79, 0xa1, 0xe4, 0x54, 0xb4, //0x0000e130 .quad -5452481866653427593 + 0xfc, 0x11, 0xc3, 0x98, 0x45, 0xbe, 0xba, 0x29, //0x0000e138 .quad 3006924907348169212 + 0x94, 0x5e, 0x54, 0xd8, 0xc9, 0x1d, 0x6a, 0xe1, //0x0000e140 .quad -2203916314889396588 + 0x7b, 0xd6, 0xf3, 0xfe, 0xd6, 0x6d, 0x29, 0xf4, //0x0000e148 .quad -853029884242176389 + 0x1d, 0xbb, 0x34, 0x27, 0x9e, 0x52, 0xe2, 0x8c, //0x0000e150 .quad -8294976724446954723 + 0x0d, 0x66, 0x58, 0x5f, 0xa6, 0xe4, 0x99, 0x18, //0x0000e158 .quad 1772699331562333709 + 0xe4, 0xe9, 0x01, 0xb1, 0x45, 0xe7, 0x1a, 0xb0, //0x0000e160 .quad -5757034887131305500 + 0x90, 0x7f, 0x2e, 0xf7, 0xcf, 0x5d, 0xc0, 0x5e, //0x0000e168 .quad 6827560182880305040 + 0x5d, 0x64, 0x42, 0x1d, 0x17, 0xa1, 0x21, 0xdc, //0x0000e170 .quad -2584607590486743971 + 0x74, 0x1f, 0xfa, 0xf4, 0x43, 0x75, 0x70, 0x76, //0x0000e178 .quad 8534450228600381300 + 0xba, 0x7e, 0x49, 0x72, 0xae, 0x04, 0x95, 0x89, //0x0000e180 .quad -8532908771695296838 + 0xa9, 0x53, 0x1c, 0x79, 0x4a, 0x49, 0x06, 0x6a, //0x0000e188 .quad 7639874402088932265 + 0x69, 0xde, 0xdb, 0x0e, 0xda, 0x45, 0xfa, 0xab, //0x0000e190 .quad -6054449946191733143 + 0x93, 0x68, 0x63, 0x17, 0x9d, 0xdb, 0x87, 0x04, //0x0000e198 .quad 326470965756389523 + 0x03, 0xd6, 0x92, 0x92, 0x50, 0xd7, 0xf8, 0xd6, //0x0000e1a0 .quad -2956376414312278525 + 0xb7, 0x42, 0x3c, 0x5d, 0x84, 0xd2, 0xa9, 0x45, //0x0000e1a8 .quad 5019774725622874807 + 0xc2, 0xc5, 0x9b, 0x5b, 0x92, 0x86, 0x5b, 0x86, //0x0000e1b0 .quad -8765264286586255934 + 0xb3, 0xa9, 0x45, 0xba, 0x92, 0x23, 0x8a, 0x0b, //0x0000e1b8 .quad 831516194300602803 + 0x32, 0xb7, 0x82, 0xf2, 0x36, 0x68, 0xf2, 0xa7, //0x0000e1c0 .quad -6344894339805432014 + 0x1f, 0x14, 0xd7, 0x68, 0x77, 0xac, 0x6c, 0x8e, //0x0000e1c8 .quad -8183976793979022305 + 0xff, 0x64, 0x23, 0xaf, 0x44, 0x02, 0xef, 0xd1, //0x0000e1d0 .quad -3319431906329402113 + 0x27, 0xd9, 0x0c, 0x43, 0x95, 0xd7, 0x07, 0x32, //0x0000e1d8 .quad 3605087062808385831 + 0x1f, 0x1f, 0x76, 0xed, 0x6a, 0x61, 0x35, 0x83, //0x0000e1e0 .quad -8992173969096958177 + 0xb9, 0x07, 0xe8, 0x49, 0xbd, 0xe6, 0x44, 0x7f, //0x0000e1e8 .quad 9170708441896323001 + 0xe7, 0xa6, 0xd3, 0xa8, 0xc5, 0xb9, 0x02, 0xa4, //0x0000e1f0 .quad -6628531442943809817 + 0xa7, 0x09, 0x62, 0x9c, 0x6c, 0x20, 0x16, 0x5f, //0x0000e1f8 .quad 6851699533943015847 + 0xa1, 0x90, 0x08, 0x13, 0x37, 0x68, 0x03, 0xcd, //0x0000e200 .quad -3673978285252374367 + 0x10, 0x8c, 0x7a, 0xc3, 0x87, 0xa8, 0xdb, 0x36, //0x0000e208 .quad 3952938399001381904 + 0x64, 0x5a, 0xe5, 0x6b, 0x22, 0x21, 0x22, 0x80, //0x0000e210 .quad -9213765455923815836 + 0x8a, 0x97, 0x2c, 0xda, 0x54, 0x49, 0x49, 0xc2, //0x0000e218 .quad -4446942528265218166 + 0xfd, 0xb0, 0xde, 0x06, 0x6b, 0xa9, 0x2a, 0xa0, //0x0000e220 .quad -6905520801477381891 + 0x6d, 0xbd, 0xb7, 0x10, 0xaa, 0x9b, 0xdb, 0xf2, //0x0000e228 .quad -946992141904134803 + 0x3d, 0x5d, 0x96, 0xc8, 0xc5, 0x53, 0x35, 0xc8, //0x0000e230 .quad -4020214983419339459 + 0xc8, 0xac, 0xe5, 0x94, 0x94, 0x82, 0x92, 0x6f, //0x0000e238 .quad 8039631859474607304 + 0x8c, 0xf4, 0xbb, 0x3a, 0xb7, 0xa8, 0x42, 0xfa, //0x0000e240 .quad -413582710846786420 + 0xfa, 0x17, 0x1f, 0xba, 0x39, 0x23, 0x77, 0xcb, //0x0000e248 .quad -3785518230938904582 + 0xd7, 0x78, 0xb5, 0x84, 0x72, 0xa9, 0x69, 0x9c, //0x0000e250 .quad -7176018221920323369 + 0xfc, 0x6e, 0x53, 0x14, 0x04, 0x76, 0x2a, 0xff, //0x0000e258 .quad -60105885123121412 + 0x0d, 0xd7, 0xe2, 0x25, 0xcf, 0x13, 0x84, 0xc3, //0x0000e260 .quad -4358336758973016307 + 0xbb, 0x4a, 0x68, 0x19, 0x85, 0x13, 0xf5, 0xfe, //0x0000e268 .quad -75132356403901765 + 0xd1, 0x8c, 0x5b, 0xef, 0xc2, 0x18, 0x65, 0xf4, //0x0000e270 .quad -836234930288882479 + 0x6a, 0x5d, 0xc2, 0x5f, 0x66, 0x58, 0xb2, 0x7e, //0x0000e278 .quad 9129456591349898602 + 0x02, 0x38, 0x99, 0xd5, 0x79, 0x2f, 0xbf, 0x98, //0x0000e280 .quad -7440175859071633406 + 0x62, 0x7a, 0xd9, 0xfb, 0x3f, 0x77, 0x2f, 0xef, //0x0000e288 .quad -1211618658047395230 + 0x03, 0x86, 0xff, 0x4a, 0x58, 0xfb, 0xee, 0xbe, //0x0000e290 .quad -4688533805412153853 + 0xfb, 0xd8, 0xcf, 0xfa, 0x0f, 0x55, 0xfb, 0xaa, //0x0000e298 .quad -6126209340986631941 + 0x84, 0x67, 0xbf, 0x5d, 0x2e, 0xba, 0xaa, 0xee, //0x0000e2a0 .quad -1248981238337804412 + 0x39, 0xcf, 0x83, 0xf9, 0x53, 0x2a, 0xba, 0x95, //0x0000e2a8 .quad -7657761676233289927 + 0xb2, 0xa0, 0x97, 0xfa, 0x5c, 0xb4, 0x2a, 0x95, //0x0000e2b0 .quad -7698142301602209614 + 0x84, 0x61, 0xf2, 0x7b, 0x74, 0x5a, 0x94, 0xdd, //0x0000e2b8 .quad -2480258038432112252 + 0xdf, 0x88, 0x3d, 0x39, 0x74, 0x61, 0x75, 0xba, //0x0000e2c0 .quad -5010991858575374113 + 0xe5, 0xf9, 0xee, 0x9a, 0x11, 0x71, 0xf9, 0x94, //0x0000e2c8 .quad -7712008566467528219 + 0x17, 0xeb, 0x8c, 0x47, 0xd1, 0xb9, 0x12, 0xe9, //0x0000e2d0 .quad -1652053804791829737 + 0x5e, 0xb8, 0xaa, 0x01, 0x56, 0xcd, 0x37, 0x7a, //0x0000e2d8 .quad 8806733365625141342 + 0xee, 0x12, 0xb8, 0xcc, 0x22, 0xb4, 0xab, 0x91, //0x0000e2e0 .quad -7950062655635975442 + 0x3b, 0xb3, 0x0a, 0xc1, 0x55, 0xe0, 0x62, 0xac, //0x0000e2e8 .quad -6025006692552756421 + 0xaa, 0x17, 0xe6, 0x7f, 0x2b, 0xa1, 0x16, 0xb6, //0x0000e2f0 .quad -5325892301117581398 + 0x0a, 0x60, 0x4d, 0x31, 0x6b, 0x98, 0x7b, 0x57, //0x0000e2f8 .quad 6303799689591218186 + 0x94, 0x9d, 0xdf, 0x5f, 0x76, 0x49, 0x9c, 0xe3, //0x0000e300 .quad -2045679357969588844 + 0x0c, 0xb8, 0xa0, 0xfd, 0x85, 0x7e, 0x5a, 0xed, //0x0000e308 .quad -1343622424865753076 + 0x7d, 0xc2, 0xeb, 0xfb, 0xe9, 0xad, 0x41, 0x8e, //0x0000e310 .quad -8196078626372074883 + 0x08, 0x73, 0x84, 0xbe, 0x13, 0x8f, 0x58, 0x14, //0x0000e318 .quad 1466078993672598280 + 0x1c, 0xb3, 0xe6, 0x7a, 0x64, 0x19, 0xd2, 0xb1, //0x0000e320 .quad -5633412264537705700 + 0xc9, 0x8f, 0x25, 0xae, 0xd8, 0xb2, 0x6e, 0x59, //0x0000e328 .quad 6444284760518135753 + 0xe3, 0x5f, 0xa0, 0x99, 0xbd, 0x9f, 0x46, 0xde, //0x0000e330 .quad -2430079312244744221 + 0xbc, 0xf3, 0xae, 0xd9, 0x8e, 0x5f, 0xca, 0x6f, //0x0000e338 .quad 8055355950647669692 + 0xee, 0x3b, 0x04, 0x80, 0xd6, 0x23, 0xec, 0x8a, //0x0000e340 .quad -8436328597794046994 + 0x55, 0x58, 0x0d, 0x48, 0xb9, 0x7b, 0xde, 0x25, //0x0000e348 .quad 2728754459941099605 + 0xe9, 0x4a, 0x05, 0x20, 0xcc, 0x2c, 0xa7, 0xad, //0x0000e350 .quad -5933724728815170839 + 0x6b, 0xae, 0x10, 0x9a, 0xa7, 0x1a, 0x56, 0xaf, //0x0000e358 .quad -5812428961928401301 + 0xa4, 0x9d, 0x06, 0x28, 0xff, 0xf7, 0x10, 0xd9, //0x0000e360 .quad -2805469892591575644 + 0x05, 0xda, 0x94, 0x80, 0x51, 0xa1, 0x2b, 0x1b, //0x0000e368 .quad 1957835834444274181 + 0x86, 0x22, 0x04, 0x79, 0xff, 0x9a, 0xaa, 0x87, //0x0000e370 .quad -8670947710510816634 + 0x43, 0x08, 0x5d, 0xf0, 0xd2, 0x44, 0xfb, 0x90, //0x0000e378 .quad -7999724640327104445 + 0x28, 0x2b, 0x45, 0x57, 0xbf, 0x41, 0x95, 0xa9, //0x0000e380 .quad -6226998619711132888 + 0x54, 0x4a, 0x74, 0xac, 0x07, 0x16, 0x3a, 0x35, //0x0000e388 .quad 3835402254873283156 + 0xf2, 0x75, 0x16, 0x2d, 0x2f, 0x92, 0xfa, 0xd3, //0x0000e390 .quad -3172062256211528206 + 0xe9, 0x5c, 0x91, 0x97, 0x89, 0x9b, 0x88, 0x42, //0x0000e398 .quad 4794252818591603945 + 0xb7, 0x09, 0x2e, 0x7c, 0x5d, 0x9b, 0x7c, 0x84, //0x0000e3a0 .quad -8900067937773286985 + 0x12, 0xda, 0xba, 0xfe, 0x35, 0x61, 0x95, 0x69, //0x0000e3a8 .quad 7608094030047140370 + 0x25, 0x8c, 0x39, 0xdb, 0x34, 0xc2, 0x9b, 0xa5, //0x0000e3b0 .quad -6513398903789220827 + 0x96, 0x90, 0x69, 0x7e, 0x83, 0xb9, 0xfa, 0x43, //0x0000e3b8 .quad 4898431519131537558 + 0x2e, 0xef, 0x07, 0x12, 0xc2, 0xb2, 0x02, 0xcf, //0x0000e3c0 .quad -3530062611309138130 + 0xbc, 0xf4, 0x03, 0x5e, 0xe4, 0x67, 0xf9, 0x94, //0x0000e3c8 .quad -7712018656367741764 + 0x7d, 0xf5, 0x44, 0x4b, 0xb9, 0xaf, 0x61, 0x81, //0x0000e3d0 .quad -9123818159709293187 + 0xf6, 0x78, 0xc2, 0xba, 0xee, 0xe0, 0x1b, 0x1d, //0x0000e3d8 .quad 2097517367411243254 + 0xdc, 0x32, 0x16, 0x9e, 0xa7, 0x1b, 0xba, 0xa1, //0x0000e3e0 .quad -6793086681209228580 + 0x33, 0x17, 0x73, 0x69, 0x2a, 0xd9, 0x62, 0x64, //0x0000e3e8 .quad 7233582727691441971 + 0x93, 0xbf, 0x9b, 0x85, 0x91, 0xa2, 0x28, 0xca, //0x0000e3f0 .quad -3879672333084147821 + 0xff, 0xdc, 0xcf, 0x03, 0x75, 0x8f, 0x7b, 0x7d, //0x0000e3f8 .quad 9041978409614302463 + 0x78, 0xaf, 0x02, 0xe7, 0x35, 0xcb, 0xb2, 0xfc, //0x0000e400 .quad -237904397927796872 + 0x3f, 0xd4, 0xc3, 0x44, 0x52, 0x73, 0xda, 0x5c, //0x0000e408 .quad 6690786993590490175 + 0xab, 0xad, 0x61, 0xb0, 0x01, 0xbf, 0xef, 0x9d, //0x0000e410 .quad -7066219276345954901 + 0xa8, 0x64, 0xfa, 0x6a, 0x13, 0x88, 0x08, 0x3a, //0x0000e418 .quad 4181741870994056360 + 0x16, 0x19, 0x7a, 0x1c, 0xc2, 0xae, 0x6b, 0xc5, //0x0000e420 .quad -4221088077005055722 + 0xd1, 0xfd, 0xb8, 0x45, 0x18, 0xaa, 0x8a, 0x08, //0x0000e428 .quad 615491320315182545 + 0x5b, 0x9f, 0x98, 0xa3, 0x72, 0x9a, 0xc6, 0xf6, //0x0000e430 .quad -664674077828931749 + 0x46, 0x3d, 0x27, 0x57, 0x9e, 0x54, 0xad, 0x8a, //0x0000e438 .quad -8454007886460797626 + 0x99, 0x63, 0x3f, 0xa6, 0x87, 0x20, 0x3c, 0x9a, //0x0000e440 .quad -7332950326284164199 + 0x4c, 0x86, 0x78, 0xf6, 0xe2, 0x54, 0xac, 0x36, //0x0000e448 .quad 3939617107816777292 + 0x7f, 0x3c, 0xcf, 0x8f, 0xa9, 0x28, 0xcb, 0xc0, //0x0000e450 .quad -4554501889427817345 + 0xde, 0xa7, 0x16, 0xb4, 0x1b, 0x6a, 0x57, 0x84, //0x0000e458 .quad -8910536670511192098 + 0x9f, 0x0b, 0xc3, 0xf3, 0xd3, 0xf2, 0xfd, 0xf0, //0x0000e460 .quad -1081441343357383777 + 0xd6, 0x51, 0x1c, 0xa1, 0xa2, 0x44, 0x6d, 0x65, //0x0000e468 .quad 7308573235570561494 + 0x43, 0xe7, 0x59, 0x78, 0xc4, 0xb7, 0x9e, 0x96, //0x0000e470 .quad -7593429867239446717 + 0x26, 0xb3, 0xb1, 0xa4, 0xe5, 0x4a, 0x64, 0x9f, //0x0000e478 .quad -6961356773836868826 + 0x14, 0x61, 0x70, 0x96, 0xb5, 0x65, 0x46, 0xbc, //0x0000e480 .quad -4880101315621920492 + 0xef, 0x1f, 0xde, 0x0d, 0x9f, 0x5d, 0x3d, 0x87, //0x0000e488 .quad -8701695967296086033 + 0x59, 0x79, 0x0c, 0xfc, 0x22, 0xff, 0x57, 0xeb, //0x0000e490 .quad -1488440626100012711 + 0xeb, 0xa7, 0x55, 0xd1, 0x06, 0xb5, 0x0c, 0xa9, //0x0000e498 .quad -6265433940692719637 + 0xd8, 0xcb, 0x87, 0xdd, 0x75, 0xff, 0x16, 0x93, //0x0000e4a0 .quad -7847804418953589800 + 0xf3, 0x88, 0xd5, 0x42, 0x24, 0xf1, 0xa7, 0x09, //0x0000e4a8 .quad 695789805494438131 + 0xce, 0xbe, 0xe9, 0x54, 0x53, 0xbf, 0xdc, 0xb7, //0x0000e4b0 .quad -5198069505264599346 + 0x30, 0xeb, 0x8a, 0x53, 0x6d, 0xed, 0x11, 0x0c, //0x0000e4b8 .quad 869737256868047664 + 0x81, 0x2e, 0x24, 0x2a, 0x28, 0xef, 0xd3, 0xe5, //0x0000e4c0 .quad -1885900863153361279 + 0xfb, 0xa5, 0x6d, 0xa8, 0xc8, 0x68, 0x16, 0x8f, //0x0000e4c8 .quad -8136200465769716229 + 0x10, 0x9d, 0x56, 0x1a, 0x79, 0x75, 0xa4, 0x8f, //0x0000e4d0 .quad -8096217067111932656 + 0xbd, 0x87, 0x44, 0x69, 0x7d, 0x01, 0x6e, 0xf9, //0x0000e4d8 .quad -473439272678684739 + 0x55, 0x44, 0xec, 0x60, 0xd7, 0x92, 0x8d, 0xb3, //0x0000e4e0 .quad -5508585315462527915 + 0xad, 0xa9, 0x95, 0xc3, 0xdc, 0x81, 0xc9, 0x37, //0x0000e4e8 .quad 4019886927579031981 + 0x6a, 0x55, 0x27, 0x39, 0x8d, 0xf7, 0x70, 0xe0, //0x0000e4f0 .quad -2274045625900771990 + 0x18, 0x14, 0x7b, 0xf4, 0x53, 0xe2, 0xbb, 0x85, //0x0000e4f8 .quad -8810199395808373736 + 0x62, 0x95, 0xb8, 0x43, 0xb8, 0x9a, 0x46, 0x8c, //0x0000e500 .quad -8338807543829064350 + 0x8f, 0xec, 0xcc, 0x78, 0x74, 0x6d, 0x95, 0x93, //0x0000e508 .quad -7812217631593927537 + 0xbb, 0xba, 0xa6, 0x54, 0x66, 0x41, 0x58, 0xaf, //0x0000e510 .quad -5811823411358942533 + 0xb3, 0x27, 0x00, 0x97, 0xd1, 0xc8, 0x7a, 0x38, //0x0000e518 .quad 4069786015789754291 + 0x6a, 0x69, 0xd0, 0xe9, 0xbf, 0x51, 0x2e, 0xdb, //0x0000e520 .quad -2653093245771290262 + 0x9f, 0x31, 0xc0, 0xfc, 0x05, 0x7b, 0x99, 0x06, //0x0000e528 .quad 475546501309804959 + 0xe2, 0x41, 0x22, 0xf2, 0x17, 0xf3, 0xfc, 0x88, //0x0000e530 .quad -8575712306248138270 + 0x04, 0x1f, 0xf8, 0xbd, 0xe3, 0xec, 0x1f, 0x44, //0x0000e538 .quad 4908902581746016004 + 0x5a, 0xd2, 0xaa, 0xee, 0xdd, 0x2f, 0x3c, 0xab, //0x0000e540 .quad -6107954364382784934 + 0xc4, 0x26, 0x76, 0xad, 0x1c, 0xe8, 0x27, 0xd5, //0x0000e548 .quad -3087243809672255804 + 0xf1, 0x86, 0x55, 0x6a, 0xd5, 0x3b, 0x0b, 0xd6, //0x0000e550 .quad -3023256937051093263 + 0x75, 0xb0, 0xd3, 0xd8, 0x23, 0xe2, 0x71, 0x8a, //0x0000e558 .quad -8470740780517707659 + 0x56, 0x74, 0x75, 0x62, 0x65, 0x05, 0xc7, 0x85, //0x0000e560 .quad -8807064613298015146 + 0x4a, 0x4e, 0x84, 0x67, 0x56, 0x2d, 0x87, 0xf6, //0x0000e568 .quad -682526969396179382 + 0x6c, 0xd1, 0x12, 0xbb, 0xbe, 0xc6, 0x38, 0xa7, //0x0000e570 .quad -6397144748195131028 + 0xdc, 0x61, 0x65, 0x01, 0xac, 0xf8, 0x28, 0xb4, //0x0000e578 .quad -5464844730172612132 + 0xc7, 0x85, 0xd7, 0x69, 0x6e, 0xf8, 0x06, 0xd1, //0x0000e580 .quad -3384744916816525881 + 0x53, 0xba, 0xbe, 0x01, 0xd7, 0x36, 0x33, 0xe1, //0x0000e588 .quad -2219369894288377261 + 0x9c, 0xb3, 0x26, 0x02, 0x45, 0x5b, 0xa4, 0x82, //0x0000e590 .quad -9032994600651410532 + 0x74, 0x34, 0x17, 0x61, 0x46, 0x02, 0xc0, 0xec, //0x0000e598 .quad -1387106183930235788 + 0x84, 0x60, 0xb0, 0x42, 0x16, 0x72, 0x4d, 0xa3, //0x0000e5a0 .quad -6679557232386875260 + 0x91, 0x01, 0x5d, 0xf9, 0xd7, 0x02, 0xf0, 0x27, //0x0000e5a8 .quad 2877803288514593169 + 0xa5, 0x78, 0x5c, 0xd3, 0x9b, 0xce, 0x20, 0xcc, //0x0000e5b0 .quad -3737760522056206171 + 0xf5, 0x41, 0xb4, 0xf7, 0x8d, 0x03, 0xec, 0x31, //0x0000e5b8 .quad 3597254110643241461 + 0xce, 0x96, 0x33, 0xc8, 0x42, 0x02, 0x29, 0xff, //0x0000e5c0 .quad -60514634142869810 + 0x72, 0x52, 0xa1, 0x75, 0x71, 0x04, 0x67, 0x7e, //0x0000e5c8 .quad 9108253656731439730 + 0x41, 0x3e, 0x20, 0xbd, 0x69, 0xa1, 0x79, 0x9f, //0x0000e5d0 .quad -6955350673980375487 + 0x87, 0xd3, 0x84, 0xe9, 0xc6, 0x62, 0x00, 0x0f, //0x0000e5d8 .quad 1080972517029761927 + 0xd1, 0x4d, 0x68, 0x2c, 0xc4, 0x09, 0x58, 0xc7, //0x0000e5e0 .quad -4082502324048081455 + 0x69, 0x08, 0xe6, 0xa3, 0x78, 0x7b, 0xc0, 0x52, //0x0000e5e8 .quad 5962901664714590313 + 0x45, 0x61, 0x82, 0x37, 0x35, 0x0c, 0x2e, 0xf9, //0x0000e5f0 .quad -491441886632713915 + 0x83, 0x8a, 0xdf, 0xcc, 0x56, 0x9a, 0x70, 0xa7, //0x0000e5f8 .quad -6381430974388925821 + 0xcb, 0x7c, 0xb1, 0x42, 0xa1, 0xc7, 0xbc, 0x9b, //0x0000e600 .quad -7224680206786528053 + 0x92, 0xb6, 0x0b, 0x40, 0x76, 0x60, 0xa6, 0x88, //0x0000e608 .quad -8600080377420466542 + 0xfe, 0xdb, 0x5d, 0x93, 0x89, 0xf9, 0xab, 0xc2, //0x0000e610 .quad -4419164240055772162 + 0x36, 0xa4, 0x0e, 0xd0, 0x93, 0xf8, 0xcf, 0x6a, //0x0000e618 .quad 7696643601933968438 + 0xfe, 0x52, 0x35, 0xf8, 0xeb, 0xf7, 0x56, 0xf3, //0x0000e620 .quad -912269281642327298 + 0x44, 0x4d, 0x12, 0xc4, 0xb8, 0xf6, 0x83, 0x05, //0x0000e628 .quad 397432465562684740 + 0xde, 0x53, 0x21, 0x7b, 0xf3, 0x5a, 0x16, 0x98, //0x0000e630 .quad -7487697328667536418 + 0x4b, 0x70, 0x8b, 0x7a, 0x33, 0x7a, 0x72, 0xc3, //0x0000e638 .quad -4363290727450709941 + 0xd6, 0xa8, 0xe9, 0x59, 0xb0, 0xf1, 0x1b, 0xbe, //0x0000e640 .quad -4747935642407032618 + 0x5d, 0x4c, 0x2e, 0x59, 0xc0, 0x18, 0x4f, 0x74, //0x0000e648 .quad 8380944645968776285 + 0x0c, 0x13, 0x64, 0x70, 0x1c, 0xee, 0xa2, 0xed, //0x0000e650 .quad -1323233534581402868 + 0x74, 0xdf, 0x79, 0x6f, 0xf0, 0xde, 0x62, 0x11, //0x0000e658 .quad 1252808770606194548 + 0xe7, 0x8b, 0x3e, 0xc6, 0xd1, 0xd4, 0x85, 0x94, //0x0000e660 .quad -7744549986754458649 + 0xa9, 0x2b, 0xac, 0x45, 0x56, 0xcb, 0xdd, 0x8a, //0x0000e668 .quad -8440366555225904215 + 0xe1, 0x2e, 0xce, 0x37, 0x06, 0x4a, 0xa7, 0xb9, //0x0000e670 .quad -5069001465015685407 + 0x93, 0x36, 0x17, 0xd7, 0x2b, 0x3e, 0x95, 0x6d, //0x0000e678 .quad 7896285879677171347 + 0x99, 0xba, 0xc1, 0xc5, 0x87, 0x1c, 0x11, 0xe8, //0x0000e680 .quad -1724565812842218855 + 0x38, 0x04, 0xdd, 0xcc, 0xb6, 0x8d, 0xfa, 0xc8, //0x0000e688 .quad -3964700705685699528 + 0xa0, 0x14, 0x99, 0xdb, 0xd4, 0xb1, 0x0a, 0x91, //0x0000e690 .quad -7995382660667468640 + 0xa3, 0x22, 0x0a, 0x40, 0x92, 0x98, 0x9c, 0x1d, //0x0000e698 .quad 2133748077373825699 + 0xc8, 0x59, 0x7f, 0x12, 0x4a, 0x5e, 0x4d, 0xb5, //0x0000e6a0 .quad -5382542307406947896 + 0x4c, 0xab, 0x0c, 0xd0, 0xb6, 0xbe, 0x03, 0x25, //0x0000e6a8 .quad 2667185096717282124 + 0x3a, 0x30, 0x1f, 0x97, 0xdc, 0xb5, 0xa0, 0xe2, //0x0000e6b0 .quad -2116491865831296966 + 0x1e, 0xd6, 0x0f, 0x84, 0x64, 0xae, 0x44, 0x2e, //0x0000e6b8 .quad 3333981370896602654 + 0x24, 0x7e, 0x73, 0xde, 0xa9, 0x71, 0xa4, 0x8d, //0x0000e6c0 .quad -8240336443785642460 + 0xd3, 0xe5, 0x89, 0xd2, 0xfe, 0xec, 0xea, 0x5c, //0x0000e6c8 .quad 6695424375237764563 + 0xad, 0x5d, 0x10, 0x56, 0x14, 0x8e, 0x0d, 0xb1, //0x0000e6d0 .quad -5688734536304665171 + 0x48, 0x5f, 0x2c, 0x87, 0x3e, 0xa8, 0x25, 0x74, //0x0000e6d8 .quad 8369280469047205704 + 0x18, 0x75, 0x94, 0x6b, 0x99, 0xf1, 0x50, 0xdd, //0x0000e6e0 .quad -2499232151953443560 + 0x1a, 0x77, 0xf7, 0x28, 0x4e, 0x12, 0x2f, 0xd1, //0x0000e6e8 .quad -3373457468973156582 + 0x2f, 0xc9, 0x3c, 0xe3, 0xff, 0x96, 0x52, 0x8a, //0x0000e6f0 .quad -8479549122611984081 + 0x70, 0xaa, 0x9a, 0xd9, 0x70, 0x6b, 0xbd, 0x82, //0x0000e6f8 .quad -9025939945749304720 + 0x7b, 0xfb, 0x0b, 0xdc, 0xbf, 0x3c, 0xe7, 0xac, //0x0000e700 .quad -5987750384837592197 + 0x0c, 0x55, 0x01, 0x10, 0x4d, 0xc6, 0x6c, 0x63, //0x0000e708 .quad 7164319141522920716 + 0x5a, 0xfa, 0x0e, 0xd3, 0xef, 0x0b, 0x21, 0xd8, //0x0000e710 .quad -2873001962619602342 + 0x4f, 0xaa, 0x01, 0x54, 0xe0, 0xf7, 0x47, 0x3c, //0x0000e718 .quad 4343712908476262991 + 0x78, 0x5c, 0xe9, 0xe3, 0x75, 0xa7, 0x14, 0x87, //0x0000e720 .quad -8713155254278333320 + 0x72, 0x0a, 0x81, 0x34, 0xec, 0xfa, 0xac, 0x65, //0x0000e728 .quad 7326506586225052274 + 0x96, 0xb3, 0xe3, 0x5c, 0x53, 0xd1, 0xd9, 0xa8, //0x0000e730 .quad -6279758049420528746 + 0x0e, 0x4d, 0xa1, 0x41, 0xa7, 0x39, 0x18, 0x7f, //0x0000e738 .quad 9158133232781315342 + 0x7c, 0xa0, 0x1c, 0x34, 0xa8, 0x45, 0x10, 0xd3, //0x0000e740 .quad -3238011543348273028 + 0x51, 0xa0, 0x09, 0x12, 0x11, 0x48, 0xde, 0x1e, //0x0000e748 .quad 2224294504121868369 + 0x4d, 0xe4, 0x91, 0x20, 0x89, 0x2b, 0xea, 0x83, //0x0000e750 .quad -8941286242233752499 + 0x33, 0x04, 0x46, 0xab, 0x0a, 0xed, 0x4a, 0x93, //0x0000e758 .quad -7833187971778608077 + 0x60, 0x5d, 0xb6, 0x68, 0x6b, 0xb6, 0xe4, 0xa4, //0x0000e760 .quad -6564921784364802720 + 0x40, 0x85, 0x17, 0x56, 0x4d, 0xa8, 0x1d, 0xf8, //0x0000e768 .quad -568112927868484288 + 0xb9, 0xf4, 0xe3, 0x42, 0x06, 0xe4, 0x1d, 0xce, //0x0000e770 .quad -3594466212028615495 + 0x8f, 0x66, 0x9d, 0xab, 0x60, 0x12, 0x25, 0x36, //0x0000e778 .quad 3901544858591782543 + 0xf3, 0x78, 0xce, 0xe9, 0x83, 0xae, 0xd2, 0x80, //0x0000e780 .quad -9164070410158966541 + 0x1a, 0x60, 0x42, 0x6b, 0x7c, 0x2b, 0xd7, 0xc1, //0x0000e788 .quad -4479063491021217766 + 0x30, 0x17, 0x42, 0xe4, 0x24, 0x5a, 0x07, 0xa1, //0x0000e790 .quad -6843401994271320272 + 0x20, 0xf8, 0x12, 0x86, 0x5b, 0xf6, 0x4c, 0xb2, //0x0000e798 .quad -5598829363776522208 + 0xfc, 0x9c, 0x52, 0x1d, 0xae, 0x30, 0x49, 0xc9, //0x0000e7a0 .quad -3942566474411762436 + 0x28, 0xb6, 0x97, 0x67, 0xf2, 0x33, 0xe0, 0xde, //0x0000e7a8 .quad -2386850686293264856 + 0x3c, 0x44, 0xa7, 0xa4, 0xd9, 0x7c, 0x9b, 0xfb, //0x0000e7b0 .quad -316522074587315140 + 0xb2, 0xa3, 0x7d, 0x01, 0xef, 0x40, 0x98, 0x16, //0x0000e7b8 .quad 1628122660560806834 + 0xa5, 0x8a, 0xe8, 0x06, 0x08, 0x2e, 0x41, 0x9d, //0x0000e7c0 .quad -7115355324258153819 + 0x4f, 0x86, 0xee, 0x60, 0x95, 0x28, 0x1f, 0x8e, //0x0000e7c8 .quad -8205795374004271537 + 0x4e, 0xad, 0xa2, 0x08, 0x8a, 0x79, 0x91, 0xc4, //0x0000e7d0 .quad -4282508136895304370 + 0xe3, 0x27, 0x2a, 0xb9, 0xba, 0xf2, 0xa6, 0xf1, //0x0000e7d8 .quad -1033872180650563613 + 0xa2, 0x58, 0xcb, 0x8a, 0xec, 0xd7, 0xb5, 0xf5, //0x0000e7e0 .quad -741449152691742558 + 0xdc, 0xb1, 0x74, 0x67, 0x69, 0xaf, 0x10, 0xae, //0x0000e7e8 .quad -5904026244240592420 + 0x65, 0x17, 0xbf, 0xd6, 0xf3, 0xa6, 0x91, 0x99, //0x0000e7f0 .quad -7380934748073420955 + 0x2a, 0xef, 0xa8, 0xe0, 0xa1, 0x6d, 0xca, 0xac, //0x0000e7f8 .quad -5995859411864064214 + 0x3f, 0xdd, 0x6e, 0xcc, 0xb0, 0x10, 0xf6, 0xbf, //0x0000e800 .quad -4614482416664388289 + 0xf4, 0x2a, 0xd3, 0x58, 0x0a, 0x09, 0xfd, 0x17, //0x0000e808 .quad 1728547772024695540 + 0x8e, 0x94, 0x8a, 0xff, 0xdc, 0x94, 0xf3, 0xef, //0x0000e810 .quad -1156417002403097458 + 0xb1, 0xf5, 0x07, 0xef, 0x4c, 0x4b, 0xfc, 0xdd, //0x0000e818 .quad -2451001303396518479 + 0xd9, 0x9c, 0xb6, 0x1f, 0x0a, 0x3d, 0xf8, 0x95, //0x0000e820 .quad -7640289654143017767 + 0x8f, 0xf9, 0x64, 0x15, 0x10, 0xaf, 0xbd, 0x4a, //0x0000e828 .quad 5385653213018257807 + 0x0f, 0x44, 0xa4, 0xa7, 0x4c, 0x4c, 0x76, 0xbb, //0x0000e830 .quad -4938676049251384305 + 0xf2, 0x37, 0xbe, 0x1a, 0xd4, 0x1a, 0x6d, 0x9d, //0x0000e838 .quad -7102991539009341454 + 0x13, 0x55, 0x8d, 0xd1, 0x5f, 0xdf, 0x53, 0xea, //0x0000e840 .quad -1561659043136842477 + 0xee, 0xc5, 0x6d, 0x21, 0x89, 0x61, 0xc8, 0x84, //0x0000e848 .quad -8878739423761676818 + 0x2c, 0x55, 0xf8, 0xe2, 0x9b, 0x6b, 0x74, 0x92, //0x0000e850 .quad -7893565929601608404 + 0xb5, 0x9b, 0xe4, 0xb4, 0xf5, 0x3c, 0xfd, 0x32, //0x0000e858 .quad 3674159897003727797 + 0x77, 0x6a, 0xb6, 0xdb, 0x82, 0x86, 0x11, 0xb7, //0x0000e860 .quad -5255271393574622601 + 0xa2, 0xc2, 0x1d, 0x22, 0x33, 0x8c, 0xbc, 0x3f, //0x0000e868 .quad 4592699871254659746 + 0x15, 0x05, 0xa4, 0x92, 0x23, 0xe8, 0xd5, 0xe4, //0x0000e870 .quad -1957403223540890347 + 0x4b, 0x33, 0xa5, 0xea, 0x3f, 0xaf, 0xab, 0x0f, //0x0000e878 .quad 1129188820640936779 + 0x2d, 0x83, 0xa6, 0x3b, 0x16, 0xb1, 0x05, 0x8f, //0x0000e880 .quad -8140906042354138323 + 0x0f, 0x40, 0xa7, 0xf2, 0x87, 0x4d, 0xcb, 0x29, //0x0000e888 .quad 3011586022114279439 + 0xf8, 0x23, 0x90, 0xca, 0x5b, 0x1d, 0xc7, 0xb2, //0x0000e890 .quad -5564446534515285000 + 0x13, 0x10, 0x51, 0xef, 0xe9, 0x20, 0x3e, 0x74, //0x0000e898 .quad 8376168546070237203 + 0xf6, 0x2c, 0x34, 0xbd, 0xb2, 0xe4, 0x78, 0xdf, //0x0000e8a0 .quad -2343872149716718346 + 0x17, 0x54, 0x25, 0x6b, 0x24, 0xa9, 0x4d, 0x91, //0x0000e8a8 .quad -7976533391121755113 + 0x1a, 0x9c, 0x40, 0xb6, 0xef, 0x8e, 0xab, 0x8b, //0x0000e8b0 .quad -8382449121214030822 + 0x8f, 0x54, 0xf7, 0xc2, 0xb6, 0x89, 0xd0, 0x1a, //0x0000e8b8 .quad 1932195658189984911 + 0x20, 0xc3, 0xd0, 0xa3, 0xab, 0x72, 0x96, 0xae, //0x0000e8c0 .quad -5866375383090150624 + 0xb2, 0x29, 0xb5, 0x73, 0x24, 0xac, 0x84, 0xa1, //0x0000e8c8 .quad -6808127464117294670 + 0xe8, 0xf3, 0xc4, 0x8c, 0x56, 0x0f, 0x3c, 0xda, //0x0000e8d0 .quad -2721283210435300376 + 0x1f, 0x74, 0xa2, 0x90, 0x2d, 0xd7, 0xe5, 0xc9, //0x0000e8d8 .quad -3898473311719230433 + 0x71, 0x18, 0xfb, 0x17, 0x96, 0x89, 0x65, 0x88, //0x0000e8e0 .quad -8618331034163144591 + 0x93, 0x88, 0x65, 0x7a, 0x7c, 0xa6, 0x2f, 0x7e, //0x0000e8e8 .quad 9092669226243950739 + 0x8d, 0xde, 0xf9, 0x9d, 0xfb, 0xeb, 0x7e, 0xaa, //0x0000e8f0 .quad -6161227774276542835 + 0xb8, 0xea, 0xfe, 0x98, 0x1b, 0x90, 0xbb, 0xdd, //0x0000e8f8 .quad -2469221522477225288 + 0x31, 0x56, 0x78, 0x85, 0xfa, 0xa6, 0x1e, 0xd5, //0x0000e900 .quad -3089848699418290639 + 0x66, 0xa5, 0x3e, 0x7f, 0x22, 0x74, 0x2a, 0x55, //0x0000e908 .quad 6136845133758244198 + 0xde, 0x35, 0x6b, 0x93, 0x5c, 0x28, 0x33, 0x85, //0x0000e910 .quad -8848684464777513506 + 0x60, 0x27, 0x87, 0x8f, 0x95, 0x88, 0x3a, 0xd5, //0x0000e918 .quad -3082000819042179232 + 0x56, 0x03, 0x46, 0xb8, 0x73, 0xf2, 0x7f, 0xa6, //0x0000e920 .quad -6449169562544503978 + 0x38, 0xf1, 0x68, 0xf3, 0xba, 0x2a, 0x89, 0x8a, //0x0000e928 .quad -8464187042230111944 + 0x2c, 0x84, 0x57, 0xa6, 0x10, 0xef, 0x1f, 0xd0, //0x0000e930 .quad -3449775934753242068 + 0x86, 0x2d, 0x43, 0xb0, 0x69, 0x75, 0x2b, 0x2d, //0x0000e938 .quad 3254824252494523782 + 0x9b, 0xb2, 0xf6, 0x67, 0x6a, 0xf5, 0x13, 0x82, //0x0000e940 .quad -9073638986861858149 + 0x74, 0xfc, 0x29, 0x0e, 0x62, 0x29, 0x3b, 0x9c, //0x0000e948 .quad -7189106879045698444 + 0x42, 0x5f, 0xf4, 0x01, 0xc5, 0xf2, 0x98, 0xa2, //0x0000e950 .quad -6730362715149934782 + 0x90, 0x7b, 0xb4, 0x91, 0xba, 0xf3, 0x49, 0x83, //0x0000e958 .quad -8986383598807123056 + 0x13, 0x77, 0x71, 0x42, 0x76, 0x2f, 0x3f, 0xcb, //0x0000e960 .quad -3801267375510030573 + 0x74, 0x9a, 0x21, 0x36, 0xa9, 0x70, 0x1c, 0x24, //0x0000e968 .quad 2602078556773259892 + 0xd7, 0xd4, 0x0d, 0xd3, 0x53, 0xfb, 0x0e, 0xfe, //0x0000e970 .quad -139898200960150313 + 0x11, 0x01, 0xaa, 0x83, 0xd3, 0x8c, 0x23, 0xed, //0x0000e978 .quad -1359087822460813039 + 0x06, 0xa5, 0xe8, 0x63, 0x14, 0x5d, 0xc9, 0x9e, //0x0000e980 .quad -7004965403241175802 + 0xab, 0x40, 0x4a, 0x32, 0x04, 0x38, 0x36, 0xf4, //0x0000e988 .quad -849429889038008149 + 0x48, 0xce, 0xe2, 0x7c, 0x59, 0xb4, 0x7b, 0xc6, //0x0000e990 .quad -4144520735624081848 + 0xd6, 0xd0, 0xdc, 0x3e, 0x05, 0xc6, 0x43, 0xb1, //0x0000e998 .quad -5673473379724898090 + 0xda, 0x81, 0x1b, 0xdc, 0x6f, 0xa1, 0x1a, 0xf8, //0x0000e9a0 .quad -568964901102714406 + 0x0b, 0x05, 0x94, 0x8e, 0x86, 0xb7, 0x94, 0xdd, //0x0000e9a8 .quad -2480155706228734709 + 0x28, 0x31, 0x91, 0xe9, 0xe5, 0xa4, 0x10, 0x9b, //0x0000e9b0 .quad -7273132090830278360 + 0x27, 0x83, 0x1c, 0x19, 0xb4, 0xf2, 0x7c, 0xca, //0x0000e9b8 .quad -3855940325606653145 + 0x72, 0x7d, 0xf5, 0x63, 0x1f, 0xce, 0xd4, 0xc1, //0x0000e9c0 .quad -4479729095110460046 + 0xf1, 0xa3, 0x63, 0x1f, 0x61, 0x2f, 0x1c, 0xfd, //0x0000e9c8 .quad -208239388580928527 + 0xcf, 0xdc, 0xf2, 0x3c, 0xa7, 0x01, 0x4a, 0xf2, //0x0000e9d0 .quad -987975350460687153 + 0xed, 0x8c, 0x3c, 0x67, 0x39, 0x3b, 0x63, 0xbc, //0x0000e9d8 .quad -4871985254153548563 + 0x01, 0xca, 0x17, 0x86, 0x08, 0x41, 0x6e, 0x97, //0x0000e9e0 .quad -7535013621679011327 + 0x14, 0xd8, 0x85, 0xe0, 0x03, 0x05, 0xbe, 0xd5, //0x0000e9e8 .quad -3044990783845967852 + 0x82, 0xbc, 0x9d, 0xa7, 0x4a, 0xd1, 0x49, 0xbd, //0x0000e9f0 .quad -4807081008671376254 + 0x19, 0x4e, 0xa7, 0xd8, 0x44, 0x86, 0x2d, 0x4b, //0x0000e9f8 .quad 5417133557047315993 + 0xa2, 0x2b, 0x85, 0x51, 0x9d, 0x45, 0x9c, 0xec, //0x0000ea00 .quad -1397165242411832414 + 0x9f, 0x21, 0xd1, 0x0e, 0xd6, 0xe7, 0xf8, 0xdd, //0x0000ea08 .quad -2451955090545630817 + 0x45, 0x3b, 0xf3, 0x52, 0x82, 0xab, 0xe1, 0x93, //0x0000ea10 .quad -7790757304148477115 + 0x04, 0xb5, 0x42, 0xc9, 0xe5, 0x90, 0xbb, 0xca, //0x0000ea18 .quad -3838314940804713212 + 0x17, 0x0a, 0xb0, 0xe7, 0x62, 0x16, 0xda, 0xb8, //0x0000ea20 .quad -5126760611758208489 + 0x44, 0x62, 0x93, 0x3b, 0x1f, 0x75, 0x6a, 0x3d, //0x0000ea28 .quad 4425478360848884292 + 0x9d, 0x0c, 0x9c, 0xa1, 0xfb, 0x9b, 0x10, 0xe7, //0x0000ea30 .quad -1796764746270372707 + 0xd5, 0x3a, 0x78, 0x0a, 0x67, 0x12, 0xc5, 0x0c, //0x0000ea38 .quad 920161932633717461 + 0xe2, 0x87, 0x01, 0x45, 0x7d, 0x61, 0x6a, 0x90, //0x0000ea40 .quad -8040506994060064798 + 0xc6, 0x24, 0x8b, 0x66, 0x80, 0x2b, 0xfb, 0x27, //0x0000ea48 .quad 2880944217109767366 + 0xda, 0xe9, 0x41, 0x96, 0xdc, 0xf9, 0x84, 0xb4, //0x0000ea50 .quad -5438947724147693094 + 0xf7, 0xed, 0x2d, 0x80, 0x60, 0xf6, 0xf9, 0xb1, //0x0000ea58 .quad -5622191765467566601 + 0x51, 0x64, 0xd2, 0xbb, 0x53, 0x38, 0xa6, 0xe1, //0x0000ea60 .quad -2186998636757228463 + 0x74, 0x69, 0x39, 0xa0, 0xf8, 0x73, 0x78, 0x5e, //0x0000ea68 .quad 6807318348447705460 + 0xb2, 0x7e, 0x63, 0x55, 0x34, 0xe3, 0x07, 0x8d, //0x0000ea70 .quad -8284403175614349646 + 0xe9, 0xe1, 0x23, 0x64, 0x7b, 0x48, 0x0b, 0xdb, //0x0000ea78 .quad -2662955059861265943 + 0x5f, 0x5e, 0xbc, 0x6a, 0x01, 0xdc, 0x49, 0xb0, //0x0000ea80 .quad -5743817951090549153 + 0x63, 0xda, 0x2c, 0x3d, 0x9a, 0x1a, 0xce, 0x91, //0x0000ea88 .quad -7940379843253970333 + 0xf7, 0x75, 0x6b, 0xc5, 0x01, 0x53, 0x5c, 0xdc, //0x0000ea90 .quad -2568086420435798537 + 0xfc, 0x10, 0x78, 0xcc, 0x40, 0xa1, 0x41, 0x76, //0x0000ea98 .quad 8521269269642088700 + 0xba, 0x29, 0x63, 0x1b, 0xe1, 0xb3, 0xb9, 0x89, //0x0000eaa0 .quad -8522583040413455942 + 0x9e, 0x0a, 0xcb, 0x7f, 0xc8, 0x04, 0xe9, 0xa9, //0x0000eaa8 .quad -6203421752542164322 + 0x29, 0xf4, 0x3b, 0x62, 0xd9, 0x20, 0x28, 0xac, //0x0000eab0 .quad -6041542782089432023 + 0x45, 0xcd, 0xbd, 0x9f, 0xfa, 0x45, 0x63, 0x54, //0x0000eab8 .quad 6080780864604458309 + 0x33, 0xf1, 0xca, 0xba, 0x0f, 0x29, 0x32, 0xd7, //0x0000eac0 .quad -2940242459184402125 + 0x96, 0x40, 0xad, 0x47, 0x79, 0x17, 0x7c, 0xa9, //0x0000eac8 .quad -6234081974526590826 + 0xc0, 0xd6, 0xbe, 0xd4, 0xa9, 0x59, 0x7f, 0x86, //0x0000ead0 .quad -8755180564631333184 + 0x5e, 0x48, 0xcc, 0xcc, 0xab, 0x8e, 0xed, 0x49, //0x0000ead8 .quad 5327070802775656542 + 0x70, 0x8c, 0xee, 0x49, 0x14, 0x30, 0x1f, 0xa8, //0x0000eae0 .quad -6332289687361778576 + 0x75, 0x5a, 0xff, 0xbf, 0x56, 0xf2, 0x68, 0x5c, //0x0000eae8 .quad 6658838503469570677 + 0x8c, 0x2f, 0x6a, 0x5c, 0x19, 0xfc, 0x26, 0xd2, //0x0000eaf0 .quad -3303676090774835316 + 0x12, 0x31, 0xff, 0x6f, 0xec, 0x2e, 0x83, 0x73, //0x0000eaf8 .quad 8323548129336963346 + 0xb7, 0x5d, 0xc2, 0xd9, 0x8f, 0x5d, 0x58, 0x83, //0x0000eb00 .quad -8982326584375353929 + 0xac, 0x7e, 0xff, 0xc5, 0x53, 0xfd, 0x31, 0xc8, //0x0000eb08 .quad -4021154456019173716 + 0x25, 0xf5, 0x32, 0xd0, 0xf3, 0x74, 0x2e, 0xa4, //0x0000eb10 .quad -6616222212041804507 + 0x56, 0x5e, 0x7f, 0xb7, 0xa8, 0x7c, 0x3e, 0xba, //0x0000eb18 .quad -5026443070023967146 + 0x6f, 0xb2, 0x3f, 0xc4, 0x30, 0x12, 0x3a, 0xcd, //0x0000eb20 .quad -3658591746624867729 + 0xec, 0x35, 0x5f, 0xe5, 0xd2, 0x1b, 0xce, 0x28, //0x0000eb28 .quad 2940318199324816876 + 0x85, 0xcf, 0xa7, 0x7a, 0x5e, 0x4b, 0x44, 0x80, //0x0000eb30 .quad -9204148869281624187 + 0xb4, 0x81, 0x5b, 0xcf, 0x63, 0xd1, 0x80, 0x79, //0x0000eb38 .quad 8755227902219092404 + 0x66, 0xc3, 0x51, 0x19, 0x36, 0x5e, 0x55, 0xa0, //0x0000eb40 .quad -6893500068174642330 + 0x20, 0x62, 0x32, 0xc3, 0xbc, 0x05, 0xe1, 0xd7, //0x0000eb48 .quad -2891023177508298208 + 0x40, 0x34, 0xa6, 0x9f, 0xc3, 0xb5, 0x6a, 0xc8, //0x0000eb50 .quad -4005189066790915008 + 0xa8, 0xfa, 0xfe, 0xf3, 0x2b, 0x47, 0xd9, 0x8d, //0x0000eb58 .quad -8225464990312760664 + 0x50, 0xc1, 0x8f, 0x87, 0x34, 0x63, 0x85, 0xfa, //0x0000eb60 .quad -394800315061255856 + 0x52, 0xb9, 0xfe, 0xf0, 0xf6, 0x98, 0x4f, 0xb1, //0x0000eb68 .quad -5670145219463562926 + 0xd2, 0xd8, 0xb9, 0xd4, 0x00, 0x5e, 0x93, 0x9c, //0x0000eb70 .quad -7164279224554366766 + 0xd4, 0x33, 0x9f, 0x56, 0x9a, 0xbf, 0xd1, 0x6e, //0x0000eb78 .quad 7985374283903742932 + 0x07, 0x4f, 0xe8, 0x09, 0x81, 0x35, 0xb8, 0xc3, //0x0000eb80 .quad -4343663012265570553 + 0xc9, 0x00, 0x47, 0xec, 0x80, 0x2f, 0x86, 0x0a, //0x0000eb88 .quad 758345818024902857 + 0xc8, 0x62, 0x62, 0x4c, 0xe1, 0x42, 0xa6, 0xf4, //0x0000eb90 .quad -817892746904575288 + 0xfb, 0xc0, 0x58, 0x27, 0x61, 0xbb, 0x27, 0xcd, //0x0000eb98 .quad -3663753745896259333 + 0xbd, 0x7d, 0xbd, 0xcf, 0xcc, 0xe9, 0xe7, 0x98, //0x0000eba0 .quad -7428711994456441411 + 0x9d, 0x78, 0x97, 0xb8, 0x1c, 0xd5, 0x38, 0x80, //0x0000eba8 .quad -9207375118826243939 + 0x2c, 0xdd, 0xac, 0x03, 0x40, 0xe4, 0x21, 0xbf, //0x0000ebb0 .quad -4674203974643163860 + 0xc4, 0x56, 0xbd, 0xe6, 0x63, 0x0a, 0x47, 0xe0, //0x0000ebb8 .quad -2285846861678029116 + 0x78, 0x14, 0x98, 0x04, 0x50, 0x5d, 0xea, 0xee, //0x0000ebc0 .quad -1231068949876566920 + 0x75, 0xac, 0x6c, 0xe0, 0xfc, 0xcc, 0x58, 0x18, //0x0000ebc8 .quad 1754377441329851509 + 0xcb, 0x0c, 0xdf, 0x02, 0x52, 0x7a, 0x52, 0x95, //0x0000ebd0 .quad -7686947121313936181 + 0xc9, 0xeb, 0x43, 0x0c, 0x1e, 0x80, 0x37, 0x0f, //0x0000ebd8 .quad 1096485900831157193 + 0xfd, 0xcf, 0x96, 0x83, 0xe6, 0x18, 0xa7, 0xba, //0x0000ebe0 .quad -4996997883215032323 + 0xbb, 0xe6, 0x54, 0x8f, 0x25, 0x60, 0x05, 0xd3, //0x0000ebe8 .quad -3241078642388441413 + 0xfd, 0x83, 0x7c, 0x24, 0x20, 0xdf, 0x50, 0xe9, //0x0000ebf0 .quad -1634561335591402499 + 0x6a, 0x20, 0x2a, 0xf3, 0x2e, 0xb8, 0xc6, 0x47, //0x0000ebf8 .quad 5172023733869224042 + 0x7e, 0xd2, 0xcd, 0x16, 0x74, 0x8b, 0xd2, 0x91, //0x0000ec00 .quad -7939129862385708418 + 0x42, 0x54, 0xfa, 0x57, 0x1d, 0x33, 0xdc, 0x4c, //0x0000ec08 .quad 5538357842881958978 + 0x1d, 0x47, 0x81, 0x1c, 0x51, 0x2e, 0x47, 0xb6, //0x0000ec10 .quad -5312226309554747619 + 0x53, 0xe9, 0xf8, 0xad, 0xe4, 0x3f, 0x13, 0xe0, //0x0000ec18 .quad -2300424733252327085 + 0xe5, 0x98, 0xa1, 0x63, 0xe5, 0xf9, 0xd8, 0xe3, //0x0000ec20 .quad -2028596868516046619 + 0xa7, 0x23, 0x77, 0xd9, 0xdd, 0x0f, 0x18, 0x58, //0x0000ec28 .quad 6347841120289366951 + 0x8f, 0xff, 0x44, 0x5e, 0x2f, 0x9c, 0x67, 0x8e, //0x0000ec30 .quad -8185402070463610993 + 0x49, 0x76, 0xea, 0xa7, 0xea, 0x09, 0x0f, 0x57, //0x0000ec38 .quad 6273243709394548297 + 0x73, 0x3f, 0xd6, 0x35, 0x3b, 0x83, 0x01, 0xb2, //0x0000ec40 .quad -5620066569652125837 + 0xdb, 0x13, 0xe5, 0x51, 0x65, 0xcc, 0xd2, 0x2c, //0x0000ec48 .quad 3229868618315797467 + 0x4f, 0xcf, 0x4b, 0x03, 0x0a, 0xe4, 0x81, 0xde, //0x0000ec50 .quad -2413397193637769393 + 0xd2, 0x58, 0x5e, 0xa6, 0x7e, 0x7f, 0x07, 0xf8, //0x0000ec58 .quad -574350245532641070 + 0x91, 0x61, 0x0f, 0x42, 0x86, 0x2e, 0x11, 0x8b, //0x0000ec60 .quad -8425902273664687727 + 0x83, 0xf7, 0xfa, 0x27, 0xaf, 0xaf, 0x04, 0xfb, //0x0000ec68 .quad -358968903457900669 + 0xf6, 0x39, 0x93, 0xd2, 0x27, 0x7a, 0xd5, 0xad, //0x0000ec70 .quad -5920691823653471754 + 0x64, 0xb5, 0xf9, 0xf1, 0x9a, 0xdb, 0xc5, 0x79, //0x0000ec78 .quad 8774660907532399972 + 0x74, 0x08, 0x38, 0xc7, 0xb1, 0xd8, 0x4a, 0xd9, //0x0000ec80 .quad -2789178761139451788 + 0xbd, 0x22, 0x78, 0xae, 0x81, 0x52, 0x37, 0x18, //0x0000ec88 .quad 1744954097560724157 + 0x48, 0x05, 0x83, 0x1c, 0x6f, 0xc7, 0xce, 0x87, //0x0000ec90 .quad -8660765753353239224 + 0xb6, 0x15, 0x0b, 0x0d, 0x91, 0x93, 0x22, 0x8f, //0x0000ec98 .quad -8132775725879323210 + 0x9a, 0xc6, 0xa3, 0xe3, 0x4a, 0x79, 0xc2, 0xa9, //0x0000eca0 .quad -6214271173264161126 + 0x23, 0xdb, 0x4d, 0x50, 0x75, 0x38, 0xeb, 0xb2, //0x0000eca8 .quad -5554283638921766109 + 0x41, 0xb8, 0x8c, 0x9c, 0x9d, 0x17, 0x33, 0xd4, //0x0000ecb0 .quad -3156152948152813503 + 0xec, 0x51, 0x61, 0xa4, 0x92, 0x06, 0xa6, 0x5f, //0x0000ecb8 .quad 6892203506629956076 + 0x28, 0xf3, 0xd7, 0x81, 0xc2, 0xee, 0x9f, 0x84, //0x0000ecc0 .quad -8890124620236590296 + 0x34, 0xd3, 0xbc, 0xa6, 0x1b, 0xc4, 0xc7, 0xdb, //0x0000ecc8 .quad -2609901835997359308 + 0xf3, 0xef, 0x4d, 0x22, 0x73, 0xea, 0xc7, 0xa5, //0x0000ecd0 .quad -6500969756868349965 + 0x01, 0x08, 0x6c, 0x90, 0x22, 0xb5, 0xb9, 0x12, //0x0000ecd8 .quad 1349308723430688769 + 0xef, 0x6b, 0xe1, 0xea, 0x0f, 0xe5, 0x39, 0xcf, //0x0000ece0 .quad -3514526177658049553 + 0x01, 0x0a, 0x87, 0x34, 0x6b, 0x22, 0x68, 0xd7, //0x0000ece8 .quad -2925050114139026943 + 0x75, 0xe3, 0xcc, 0xf2, 0x29, 0x2f, 0x84, 0x81, //0x0000ecf0 .quad -9114107888677362827 + 0x41, 0x66, 0xd4, 0x00, 0x83, 0x15, 0xa1, 0xe6, //0x0000ecf8 .quad -1828156321336891839 + 0x53, 0x1c, 0x80, 0x6f, 0xf4, 0x3a, 0xe5, 0xa1, //0x0000ed00 .quad -6780948842419315629 + 0xd1, 0x7f, 0x09, 0xc1, 0xe3, 0x5a, 0x49, 0x60, //0x0000ed08 .quad 6938176635183661009 + 0x68, 0x23, 0x60, 0x8b, 0xb1, 0x89, 0x5e, 0xca, //0x0000ed10 .quad -3864500034596756632 + 0xc5, 0xdf, 0x4b, 0xb1, 0x9c, 0xb1, 0x5b, 0x38, //0x0000ed18 .quad 4061034775552188357 + 0x42, 0x2c, 0x38, 0xee, 0x1d, 0x2c, 0xf6, 0xfc, //0x0000ed20 .quad -218939024818557886 + 0xb6, 0xd7, 0x9e, 0xdd, 0x03, 0x9e, 0x72, 0x46, //0x0000ed28 .quad 5076293469440235446 + 0xa9, 0x1b, 0xe3, 0xb4, 0x92, 0xdb, 0x19, 0x9e, //0x0000ed30 .quad -7054365918152680535 + 0xd2, 0x46, 0x83, 0x6a, 0xc2, 0xa2, 0x07, 0x6c, //0x0000ed38 .quad 7784369436827535058 + //0x0000ed40 .p2align 4, 0x00 + //0x0000ed40 _VecShiftShuffles + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, //0x0000ed40 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, //0x0000ed50 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, //0x0000ed60 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, //0x0000ed70 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, //0x0000ed80 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, //0x0000ed90 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, //0x0000eda0 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, //0x0000edb0 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, //0x0000edc0 QUAD $0x0f0e0d0c0b0a0908; QUAD $0xffffffffffffffff // .ascii 16, '\x08\t\n\x0b\x0c\r\x0e\x0f\xff\xff\xff\xff\xff\xff\xff\xff' + //0x0000edd0 .p2align 4, 0x00 + //0x0000edd0 __SingleQuoteTab + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edd0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, 0x00, //0x0000edd8 QUAD $0x000030303030755c // .asciz 8, '\\u0000\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ede0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, 0x00, //0x0000ede8 QUAD $0x000031303030755c // .asciz 8, '\\u0001\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000edf0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, 0x00, //0x0000edf8 QUAD $0x000032303030755c // .asciz 8, '\\u0002\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, 0x00, //0x0000ee08 QUAD $0x000033303030755c // .asciz 8, '\\u0003\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, 0x00, //0x0000ee18 QUAD $0x000034303030755c // .asciz 8, '\\u0004\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, 0x00, //0x0000ee28 QUAD $0x000035303030755c // .asciz 8, '\\u0005\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, 0x00, //0x0000ee38 QUAD $0x000036303030755c // .asciz 8, '\\u0006\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, 0x00, //0x0000ee48 QUAD $0x000037303030755c // .asciz 8, '\\u0007\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, 0x00, //0x0000ee58 QUAD $0x000038303030755c // .asciz 8, '\\u0008\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee60 .quad 2 + 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee68 QUAD $0x000000000000745c // .asciz 8, '\\t\x00\x00\x00\x00\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee70 .quad 2 + 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee78 QUAD $0x0000000000006e5c // .asciz 8, '\\n\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, 0x00, //0x0000ee88 QUAD $0x000062303030755c // .asciz 8, '\\u000b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ee90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, 0x00, //0x0000ee98 QUAD $0x000063303030755c // .asciz 8, '\\u000c\x00\x00' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea0 .quad 2 + 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eea8 QUAD $0x000000000000725c // .asciz 8, '\\r\x00\x00\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eeb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, 0x00, //0x0000eeb8 QUAD $0x000065303030755c // .asciz 8, '\\u000e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eec0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, 0x00, //0x0000eec8 QUAD $0x000066303030755c // .asciz 8, '\\u000f\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eed0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, 0x00, //0x0000eed8 QUAD $0x000030313030755c // .asciz 8, '\\u0010\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eee0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, 0x00, //0x0000eee8 QUAD $0x000031313030755c // .asciz 8, '\\u0011\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eef0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, 0x00, //0x0000eef8 QUAD $0x000032313030755c // .asciz 8, '\\u0012\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef00 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, 0x00, //0x0000ef08 QUAD $0x000033313030755c // .asciz 8, '\\u0013\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef10 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, 0x00, //0x0000ef18 QUAD $0x000034313030755c // .asciz 8, '\\u0014\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef20 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, 0x00, //0x0000ef28 QUAD $0x000035313030755c // .asciz 8, '\\u0015\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef30 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, 0x00, //0x0000ef38 QUAD $0x000036313030755c // .asciz 8, '\\u0016\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef40 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, 0x00, //0x0000ef48 QUAD $0x000037313030755c // .asciz 8, '\\u0017\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef50 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, 0x00, //0x0000ef58 QUAD $0x000038313030755c // .asciz 8, '\\u0018\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef60 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, 0x00, //0x0000ef68 QUAD $0x000039313030755c // .asciz 8, '\\u0019\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef70 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, 0x00, //0x0000ef78 QUAD $0x000061313030755c // .asciz 8, '\\u001a\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef80 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, 0x00, //0x0000ef88 QUAD $0x000062313030755c // .asciz 8, '\\u001b\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ef90 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, 0x00, //0x0000ef98 QUAD $0x000063313030755c // .asciz 8, '\\u001c\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efa0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, 0x00, //0x0000efa8 QUAD $0x000064313030755c // .asciz 8, '\\u001d\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efb0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, 0x00, //0x0000efb8 QUAD $0x000065313030755c // .asciz 8, '\\u001e\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000efc0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, 0x00, //0x0000efc8 QUAD $0x000066313030755c // .asciz 8, '\\u001f\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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff0 .quad 2 + 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000eff8 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, //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' + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f390 .quad 2 + 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000f398 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, //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' + 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' + 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' + //0x0000fdd0 .p2align 4, 0x00 + //0x0000fdd0 __DoubleQuoteTab + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdd0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x30, 0x00, //0x0000fdd8 QUAD $0x0030303030755c5c // .asciz 8, '\\\\u0000\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fde0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x31, 0x00, //0x0000fde8 QUAD $0x0031303030755c5c // .asciz 8, '\\\\u0001\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fdf0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x32, 0x00, //0x0000fdf8 QUAD $0x0032303030755c5c // .asciz 8, '\\\\u0002\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x33, 0x00, //0x0000fe08 QUAD $0x0033303030755c5c // .asciz 8, '\\\\u0003\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x34, 0x00, //0x0000fe18 QUAD $0x0034303030755c5c // .asciz 8, '\\\\u0004\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x35, 0x00, //0x0000fe28 QUAD $0x0035303030755c5c // .asciz 8, '\\\\u0005\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x36, 0x00, //0x0000fe38 QUAD $0x0036303030755c5c // .asciz 8, '\\\\u0006\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x37, 0x00, //0x0000fe48 QUAD $0x0037303030755c5c // .asciz 8, '\\\\u0007\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x38, 0x00, //0x0000fe58 QUAD $0x0038303030755c5c // .asciz 8, '\\\\u0008\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe60 .quad 3 + 0x5c, 0x5c, 0x74, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe68 QUAD $0x0000000000745c5c // .asciz 8, '\\\\t\x00\x00\x00\x00\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe70 .quad 3 + 0x5c, 0x5c, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe78 QUAD $0x00000000006e5c5c // .asciz 8, '\\\\n\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x62, 0x00, //0x0000fe88 QUAD $0x0062303030755c5c // .asciz 8, '\\\\u000b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fe90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x63, 0x00, //0x0000fe98 QUAD $0x0063303030755c5c // .asciz 8, '\\\\u000c\x00' + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea0 .quad 3 + 0x5c, 0x5c, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fea8 QUAD $0x0000000000725c5c // .asciz 8, '\\\\r\x00\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000feb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x65, 0x00, //0x0000feb8 QUAD $0x0065303030755c5c // .asciz 8, '\\\\u000e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fec0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x30, 0x66, 0x00, //0x0000fec8 QUAD $0x0066303030755c5c // .asciz 8, '\\\\u000f\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fed0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x30, 0x00, //0x0000fed8 QUAD $0x0030313030755c5c // .asciz 8, '\\\\u0010\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fee0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x31, 0x00, //0x0000fee8 QUAD $0x0031313030755c5c // .asciz 8, '\\\\u0011\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fef0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x32, 0x00, //0x0000fef8 QUAD $0x0032313030755c5c // .asciz 8, '\\\\u0012\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff00 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x33, 0x00, //0x0000ff08 QUAD $0x0033313030755c5c // .asciz 8, '\\\\u0013\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff10 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x34, 0x00, //0x0000ff18 QUAD $0x0034313030755c5c // .asciz 8, '\\\\u0014\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff20 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x35, 0x00, //0x0000ff28 QUAD $0x0035313030755c5c // .asciz 8, '\\\\u0015\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff30 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x36, 0x00, //0x0000ff38 QUAD $0x0036313030755c5c // .asciz 8, '\\\\u0016\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff40 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x37, 0x00, //0x0000ff48 QUAD $0x0037313030755c5c // .asciz 8, '\\\\u0017\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff50 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x38, 0x00, //0x0000ff58 QUAD $0x0038313030755c5c // .asciz 8, '\\\\u0018\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff60 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x39, 0x00, //0x0000ff68 QUAD $0x0039313030755c5c // .asciz 8, '\\\\u0019\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff70 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x61, 0x00, //0x0000ff78 QUAD $0x0061313030755c5c // .asciz 8, '\\\\u001a\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff80 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x62, 0x00, //0x0000ff88 QUAD $0x0062313030755c5c // .asciz 8, '\\\\u001b\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ff90 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x63, 0x00, //0x0000ff98 QUAD $0x0063313030755c5c // .asciz 8, '\\\\u001c\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffa0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x64, 0x00, //0x0000ffa8 QUAD $0x0064313030755c5c // .asciz 8, '\\\\u001d\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffb0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x65, 0x00, //0x0000ffb8 QUAD $0x0065313030755c5c // .asciz 8, '\\\\u001e\x00' + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000ffc0 .quad 7 + 0x5c, 0x5c, 0x75, 0x30, 0x30, 0x31, 0x66, 0x00, //0x0000ffc8 QUAD $0x0066313030755c5c // .asciz 8, '\\\\u001f\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0000fff0 .quad 4 + 0x5c, 0x5c, 0x5c, 0x22, 0x00, 0x00, 0x00, 0x00, //0x0000fff8 QUAD $0x00000000225c5c5c // .asciz 8, '\\\\\\"\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' + 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010390 .quad 4 + 0x5c, 0x5c, 0x5c, 0x5c, 0x00, 0x00, 0x00, 0x00, //0x00010398 QUAD $0x000000005c5c5c5c // .asciz 8, '\\\\\\\\\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' + 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' + 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' + //0x00010dd0 .p2align 4, 0x00 + //0x00010dd0 __EscTab + 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, //0x00010dd0 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, //0x00010de0 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, //0x00010df0 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, //0x00010e00 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, //0x00010e10 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, //0x00010e20 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, //0x00010e2d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e3d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e4d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e5d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e6d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e7d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e8d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010e9d QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ead QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ebd QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, //0x00010ecd WORD $0x0000; BYTE $0x00 // .space 3, '\x00\x00\x00' + //0x00010ed0 .p2align 4, 0x00 + //0x00010ed0 __UnquoteTab + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010ed0 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, //0x00010ee0 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, //0x00010ef0 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, //0x00010f00 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, //0x00010f10 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, //0x00010f20 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, //0x00010f30 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, //0x00010f40 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, //0x00010f46 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f56 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f66 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f76 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f86 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010f96 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fa6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fb6 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00010fc6 QUAD $0x0000000000000000; WORD $0x0000 // .space 10, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + //0x00010fd0 .p2align 4, 0x00 + //0x00010fd0 __HtmlQuoteTab + 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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011230 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x32, 0x36, 0x00, 0x00, //0x00011238 QUAD $0x000036323030755c // .asciz 8, '\\u0026\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011390 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x63, 0x00, 0x00, //0x00011398 QUAD $0x000063333030755c // .asciz 8, '\\u003c\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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000113b0 .quad 6 + 0x5c, 0x75, 0x30, 0x30, 0x33, 0x65, 0x00, 0x00, //0x000113b8 QUAD $0x000065333030755c // .asciz 8, '\\u003e\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' + 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' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a50 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x38, 0x00, 0x00, //0x00011a58 QUAD $0x000038323032755c // .asciz 8, '\\u2028\x00\x00' + 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00011a60 .quad 6 + 0x5c, 0x75, 0x32, 0x30, 0x32, 0x39, 0x00, 0x00, //0x00011a68 QUAD $0x000039323032755c // .asciz 8, '\\u2029\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' + //0x00011fd0 .p2align 4, 0x00 + //0x00011fd0 _LSHIFT_TAB + 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' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012010 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012020 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .space 16, '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012030 QUAD $0x0000000000000000 // .space 8, '\x00\x00\x00\x00\x00\x00\x00\x00' + 0x01, 0x00, 0x00, 0x00, //0x00012038 .long 1 + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001203c 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, //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' + 0x01, 0x00, 0x00, 0x00, //0x000120a0 .long 1 + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000120a4 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, //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' + 0x01, 0x00, 0x00, 0x00, //0x00012108 .long 1 + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001210c 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, //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' + 0x02, 0x00, 0x00, 0x00, //0x00012170 .long 2 + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012174 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, //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' + 0x02, 0x00, 0x00, 0x00, //0x000121d8 .long 2 + 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000121dc 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, //0x000121ec QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x02, 0x00, 0x00, 0x00, //0x00012240 .long 2 + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012244 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, //0x00012254 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x03, 0x00, 0x00, 0x00, //0x000122a8 .long 3 + 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000122ac 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, //0x000122bc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x03, 0x00, 0x00, 0x00, //0x00012310 .long 3 + 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012314 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, //0x00012324 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x03, 0x00, 0x00, 0x00, //0x00012378 .long 3 + 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001237c 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, //0x0001238c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x04, 0x00, 0x00, 0x00, //0x000123e0 .long 4 + 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000123e4 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, //0x000123f4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x04, 0x00, 0x00, 0x00, //0x00012448 .long 4 + 0x34, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001244c 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, //0x0001245c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x04, 0x00, 0x00, 0x00, //0x000124b0 .long 4 + 0x32, 0x34, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000124b4 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, //0x000124c4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x04, 0x00, 0x00, 0x00, //0x00012518 .long 4 + 0x31, 0x32, 0x32, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001251c 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, //0x0001252c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x05, 0x00, 0x00, 0x00, //0x00012580 .long 5 + 0x36, 0x31, 0x30, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012584 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, //0x00012594 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x05, 0x00, 0x00, 0x00, //0x000125e8 .long 5 + 0x33, 0x30, 0x35, 0x31, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000125ec 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, //0x000125fc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x05, 0x00, 0x00, 0x00, //0x00012650 .long 5 + 0x31, 0x35, 0x32, 0x35, 0x38, 0x37, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012654 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, //0x00012664 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x06, 0x00, 0x00, 0x00, //0x000126b8 .long 6 + 0x37, 0x36, 0x32, 0x39, 0x33, 0x39, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x000126bc 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, //0x000126cc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x0001271c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012720 .long 6 + 0x33, 0x38, 0x31, 0x34, 0x36, 0x39, 0x37, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, //0x00012724 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, //0x00012734 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012784 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x06, 0x00, 0x00, 0x00, //0x00012788 .long 6 + 0x31, 0x39, 0x30, 0x37, 0x33, 0x34, 0x38, 0x36, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, //0x0001278c 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, //0x0001279c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x000127ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000127f0 .long 7 + 0x39, 0x35, 0x33, 0x36, 0x37, 0x34, 0x33, 0x31, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000127f4 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, //0x00012804 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012854 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012858 .long 7 + 0x34, 0x37, 0x36, 0x38, 0x33, 0x37, 0x31, 0x35, 0x38, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, //0x0001285c QUAD $0x3531373338363734; QUAD $0x0035323133303238 // .asciz 16, '476837158203125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001286c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x000128bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x000128c0 .long 7 + 0x32, 0x33, 0x38, 0x34, 0x31, 0x38, 0x35, 0x37, 0x39, 0x31, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, //0x000128c4 QUAD $0x3735383134383332; QUAD $0x3532363531303139 // .asciz 16, '2384185791015625' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000128d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00012924 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x07, 0x00, 0x00, 0x00, //0x00012928 .long 7 + 0x31, 0x31, 0x39, 0x32, 0x30, 0x39, 0x32, 0x38, 0x39, 0x35, 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, //0x0001292c QUAD $0x3832393032393131; QUAD $0x3231383730353539 // .asciz 16, '1192092895507812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001293c 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, //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' + 0x08, 0x00, 0x00, 0x00, //0x00012990 .long 8 + 0x35, 0x39, 0x36, 0x30, 0x34, 0x36, 0x34, 0x34, 0x37, 0x37, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, //0x00012994 QUAD $0x3434363430363935; QUAD $0x3236303933353737 // .asciz 16, '5960464477539062' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000129a4 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, //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' + 0x08, 0x00, 0x00, 0x00, //0x000129f8 .long 8 + 0x32, 0x39, 0x38, 0x30, 0x32, 0x33, 0x32, 0x32, 0x33, 0x38, 0x37, 0x36, 0x39, 0x35, 0x33, 0x31, //0x000129fc QUAD $0x3232333230383932; QUAD $0x3133353936373833 // .asciz 16, '2980232238769531' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a0c 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, //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' + 0x08, 0x00, 0x00, 0x00, //0x00012a60 .long 8 + 0x31, 0x34, 0x39, 0x30, 0x31, 0x31, 0x36, 0x31, 0x31, 0x39, 0x33, 0x38, 0x34, 0x37, 0x36, 0x35, //0x00012a64 QUAD $0x3136313130393431; QUAD $0x3536373438333931 // .asciz 16, '1490116119384765' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012a74 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, //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' + 0x09, 0x00, 0x00, 0x00, //0x00012ac8 .long 9 + 0x37, 0x34, 0x35, 0x30, 0x35, 0x38, 0x30, 0x35, 0x39, 0x36, 0x39, 0x32, 0x33, 0x38, 0x32, 0x38, //0x00012acc QUAD $0x3530383530353437; QUAD $0x3832383332393639 // .asciz 16, '7450580596923828' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012adc 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, //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' + 0x09, 0x00, 0x00, 0x00, //0x00012b30 .long 9 + 0x33, 0x37, 0x32, 0x35, 0x32, 0x39, 0x30, 0x32, 0x39, 0x38, 0x34, 0x36, 0x31, 0x39, 0x31, 0x34, //0x00012b34 QUAD $0x3230393235323733; QUAD $0x3431393136343839 // .asciz 16, '3725290298461914' + 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012b44 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, //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, //0x00012b94 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x09, 0x00, 0x00, 0x00, //0x00012b98 .long 9 + 0x31, 0x38, 0x36, 0x32, 0x36, 0x34, 0x35, 0x31, 0x34, 0x39, 0x32, 0x33, 0x30, 0x39, 0x35, 0x37, //0x00012b9c QUAD $0x3135343632363831; QUAD $0x3735393033323934 // .asciz 16, '1862645149230957' + 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012bac 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, //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, //0x00012bfc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012c00 .long 10 + 0x39, 0x33, 0x31, 0x33, 0x32, 0x32, 0x35, 0x37, 0x34, 0x36, 0x31, 0x35, 0x34, 0x37, 0x38, 0x35, //0x00012c04 QUAD $0x3735323233313339; QUAD $0x3538373435313634 // .asciz 16, '9313225746154785' + 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c14 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, //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, //0x00012c64 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012c68 .long 10 + 0x34, 0x36, 0x35, 0x36, 0x36, 0x31, 0x32, 0x38, 0x37, 0x33, 0x30, 0x37, 0x37, 0x33, 0x39, 0x32, //0x00012c6c QUAD $0x3832313636353634; QUAD $0x3239333737303337 // .asciz 16, '4656612873077392' + 0x35, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012c7c 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, //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, //0x00012ccc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012cd0 .long 10 + 0x32, 0x33, 0x32, 0x38, 0x33, 0x30, 0x36, 0x34, 0x33, 0x36, 0x35, 0x33, 0x38, 0x36, 0x39, 0x36, //0x00012cd4 QUAD $0x3436303338323332; QUAD $0x3639363833353633 // .asciz 16, '2328306436538696' + 0x32, 0x38, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012ce4 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, //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, //0x00012d34 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0a, 0x00, 0x00, 0x00, //0x00012d38 .long 10 + 0x31, 0x31, 0x36, 0x34, 0x31, 0x35, 0x33, 0x32, 0x31, 0x38, 0x32, 0x36, 0x39, 0x33, 0x34, 0x38, //0x00012d3c QUAD $0x3233353134363131; QUAD $0x3834333936323831 // .asciz 16, '1164153218269348' + 0x31, 0x34, 0x34, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012d4c 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, //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, //0x00012d9c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012da0 .long 11 + 0x35, 0x38, 0x32, 0x30, 0x37, 0x36, 0x36, 0x30, 0x39, 0x31, 0x33, 0x34, 0x36, 0x37, 0x34, 0x30, //0x00012da4 QUAD $0x3036363730323835; QUAD $0x3034373634333139 // .asciz 16, '5820766091346740' + 0x37, 0x32, 0x32, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012db4 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, //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, //0x00012e04 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012e08 .long 11 + 0x32, 0x39, 0x31, 0x30, 0x33, 0x38, 0x33, 0x30, 0x34, 0x35, 0x36, 0x37, 0x33, 0x33, 0x37, 0x30, //0x00012e0c QUAD $0x3033383330313932; QUAD $0x3037333337363534 // .asciz 16, '2910383045673370' + 0x33, 0x36, 0x31, 0x33, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e1c 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, //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, //0x00012e6c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0b, 0x00, 0x00, 0x00, //0x00012e70 .long 11 + 0x31, 0x34, 0x35, 0x35, 0x31, 0x39, 0x31, 0x35, 0x32, 0x32, 0x38, 0x33, 0x36, 0x36, 0x38, 0x35, //0x00012e74 QUAD $0x3531393135353431; QUAD $0x3538363633383232 // .asciz 16, '1455191522836685' + 0x31, 0x38, 0x30, 0x36, 0x36, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012e84 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, //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, //0x00012ed4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0c, 0x00, 0x00, 0x00, //0x00012ed8 .long 12 + 0x37, 0x32, 0x37, 0x35, 0x39, 0x35, 0x37, 0x36, 0x31, 0x34, 0x31, 0x38, 0x33, 0x34, 0x32, 0x35, //0x00012edc QUAD $0x3637353935373237; QUAD $0x3532343338313431 // .asciz 16, '7275957614183425' + 0x39, 0x30, 0x33, 0x33, 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012eec 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, //0x00012efc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x0c, 0x00, 0x00, 0x00, //0x00012f40 .long 12 + 0x33, 0x36, 0x33, 0x37, 0x39, 0x37, 0x38, 0x38, 0x30, 0x37, 0x30, 0x39, 0x31, 0x37, 0x31, 0x32, //0x00012f44 QUAD $0x3838373937333633; QUAD $0x3231373139303730 // .asciz 16, '3637978807091712' + 0x39, 0x35, 0x31, 0x36, 0x36, 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00012f54 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, //0x00012f64 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x0c, 0x00, 0x00, 0x00, //0x00012fa8 .long 12 + 0x31, 0x38, 0x31, 0x38, 0x39, 0x38, 0x39, 0x34, 0x30, 0x33, 0x35, 0x34, 0x35, 0x38, 0x35, 0x36, //0x00012fac QUAD $0x3439383938313831; QUAD $0x3635383534353330 // .asciz 16, '1818989403545856' + 0x34, 0x37, 0x35, 0x38, 0x33, 0x30, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00012fbc 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, //0x00012fcc QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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' + 0x0d, 0x00, 0x00, 0x00, //0x00013010 .long 13 + 0x39, 0x30, 0x39, 0x34, 0x39, 0x34, 0x37, 0x30, 0x31, 0x37, 0x37, 0x32, 0x39, 0x32, 0x38, 0x32, //0x00013014 QUAD $0x3037343934393039; QUAD $0x3238323932373731 // .asciz 16, '9094947017729282' + 0x33, 0x37, 0x39, 0x31, 0x35, 0x30, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, //0x00013024 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, //0x00013034 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00013074 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013078 .long 13 + 0x34, 0x35, 0x34, 0x37, 0x34, 0x37, 0x33, 0x35, 0x30, 0x38, 0x38, 0x36, 0x34, 0x36, 0x34, 0x31, //0x0001307c QUAD $0x3533373437343534; QUAD $0x3134363436383830 // .asciz 16, '4547473508864641' + 0x31, 0x38, 0x39, 0x35, 0x37, 0x35, 0x31, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, //0x0001308c 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, //0x0001309c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x000130dc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x000130e0 .long 13 + 0x32, 0x32, 0x37, 0x33, 0x37, 0x33, 0x36, 0x37, 0x35, 0x34, 0x34, 0x33, 0x32, 0x33, 0x32, 0x30, //0x000130e4 QUAD $0x3736333733373232; QUAD $0x3032333233343435 // .asciz 16, '2273736754432320' + 0x35, 0x39, 0x34, 0x37, 0x38, 0x37, 0x35, 0x39, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, //0x000130f4 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, //0x00013104 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00013144 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0d, 0x00, 0x00, 0x00, //0x00013148 .long 13 + 0x31, 0x31, 0x33, 0x36, 0x38, 0x36, 0x38, 0x33, 0x37, 0x37, 0x32, 0x31, 0x36, 0x31, 0x36, 0x30, //0x0001314c QUAD $0x3338363836333131; QUAD $0x3036313631323737 // .asciz 16, '1136868377216160' + 0x32, 0x39, 0x37, 0x33, 0x39, 0x33, 0x37, 0x39, 0x38, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, //0x0001315c QUAD $0x3937333933373932; QUAD $0x0035323138323838 // .asciz 16, '297393798828125\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001316c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x000131ac LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x000131b0 .long 14 + 0x35, 0x36, 0x38, 0x34, 0x33, 0x34, 0x31, 0x38, 0x38, 0x36, 0x30, 0x38, 0x30, 0x38, 0x30, 0x31, //0x000131b4 QUAD $0x3831343334383635; QUAD $0x3130383038303638 // .asciz 16, '5684341886080801' + 0x34, 0x38, 0x36, 0x39, 0x36, 0x38, 0x39, 0x39, 0x34, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, //0x000131c4 QUAD $0x3939383639363834; QUAD $0x0035323630343134 // .asciz 16, '486968994140625\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000131d4 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00013214 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013218 .long 14 + 0x32, 0x38, 0x34, 0x32, 0x31, 0x37, 0x30, 0x39, 0x34, 0x33, 0x30, 0x34, 0x30, 0x34, 0x30, 0x30, //0x0001321c QUAD $0x3930373132343832; QUAD $0x3030343034303334 // .asciz 16, '2842170943040400' + 0x37, 0x34, 0x33, 0x34, 0x38, 0x34, 0x34, 0x39, 0x37, 0x30, 0x37, 0x30, 0x33, 0x31, 0x32, 0x35, //0x0001322c QUAD $0x3934343834333437; QUAD $0x3532313330373037 // .asciz 16, '7434844970703125' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001323c QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x0001327c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0e, 0x00, 0x00, 0x00, //0x00013280 .long 14 + 0x31, 0x34, 0x32, 0x31, 0x30, 0x38, 0x35, 0x34, 0x37, 0x31, 0x35, 0x32, 0x30, 0x32, 0x30, 0x30, //0x00013284 QUAD $0x3435383031323431; QUAD $0x3030323032353137 // .asciz 16, '1421085471520200' + 0x33, 0x37, 0x31, 0x37, 0x34, 0x32, 0x32, 0x34, 0x38, 0x35, 0x33, 0x35, 0x31, 0x35, 0x36, 0x32, //0x00013294 QUAD $0x3432323437313733; QUAD $0x3236353135333538 // .asciz 16, '3717422485351562' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000132a4 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, //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, //0x000132e4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000132e8 .long 15 + 0x37, 0x31, 0x30, 0x35, 0x34, 0x32, 0x37, 0x33, 0x35, 0x37, 0x36, 0x30, 0x31, 0x30, 0x30, 0x31, //0x000132ec QUAD $0x3337323435303137; QUAD $0x3130303130363735 // .asciz 16, '7105427357601001' + 0x38, 0x35, 0x38, 0x37, 0x31, 0x31, 0x32, 0x34, 0x32, 0x36, 0x37, 0x35, 0x37, 0x38, 0x31, 0x32, //0x000132fc QUAD $0x3432313137383538; QUAD $0x3231383735373632 // .asciz 16, '8587112426757812' + 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001330c 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, //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, //0x0001334c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x00013350 .long 15 + 0x33, 0x35, 0x35, 0x32, 0x37, 0x31, 0x33, 0x36, 0x37, 0x38, 0x38, 0x30, 0x30, 0x35, 0x30, 0x30, //0x00013354 QUAD $0x3633313732353533; QUAD $0x3030353030383837 // .asciz 16, '3552713678800500' + 0x39, 0x32, 0x39, 0x33, 0x35, 0x35, 0x36, 0x32, 0x31, 0x33, 0x33, 0x37, 0x38, 0x39, 0x30, 0x36, //0x00013364 QUAD $0x3236353533393239; QUAD $0x3630393837333331 // .asciz 16, '9293556213378906' + 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013374 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, //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, //0x000133b4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x0f, 0x00, 0x00, 0x00, //0x000133b8 .long 15 + 0x31, 0x37, 0x37, 0x36, 0x33, 0x35, 0x36, 0x38, 0x33, 0x39, 0x34, 0x30, 0x30, 0x32, 0x35, 0x30, //0x000133bc QUAD $0x3836353336373731; QUAD $0x3035323030343933 // .asciz 16, '1776356839400250' + 0x34, 0x36, 0x34, 0x36, 0x37, 0x37, 0x38, 0x31, 0x30, 0x36, 0x36, 0x38, 0x39, 0x34, 0x35, 0x33, //0x000133cc QUAD $0x3138373736343634; QUAD $0x3335343938363630 // .asciz 16, '4646778106689453' + 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000133dc 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, //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, //0x0001341c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013420 .long 16 + 0x38, 0x38, 0x38, 0x31, 0x37, 0x38, 0x34, 0x31, 0x39, 0x37, 0x30, 0x30, 0x31, 0x32, 0x35, 0x32, //0x00013424 QUAD $0x3134383731383838; QUAD $0x3235323130303739 // .asciz 16, '8881784197001252' + 0x33, 0x32, 0x33, 0x33, 0x38, 0x39, 0x30, 0x35, 0x33, 0x33, 0x34, 0x34, 0x37, 0x32, 0x36, 0x35, //0x00013434 QUAD $0x3530393833333233; QUAD $0x3536323734343333 // .asciz 16, '3233890533447265' + 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013444 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, //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, //0x00013484 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013488 .long 16 + 0x34, 0x34, 0x34, 0x30, 0x38, 0x39, 0x32, 0x30, 0x39, 0x38, 0x35, 0x30, 0x30, 0x36, 0x32, 0x36, //0x0001348c QUAD $0x3032393830343434; QUAD $0x3632363030353839 // .asciz 16, '4440892098500626' + 0x31, 0x36, 0x31, 0x36, 0x39, 0x34, 0x35, 0x32, 0x36, 0x36, 0x37, 0x32, 0x33, 0x36, 0x33, 0x32, //0x0001349c QUAD $0x3235343936313631; QUAD $0x3233363332373636 // .asciz 16, '1616945266723632' + 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000134ac 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, //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, //0x000134ec LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x000134f0 .long 16 + 0x32, 0x32, 0x32, 0x30, 0x34, 0x34, 0x36, 0x30, 0x34, 0x39, 0x32, 0x35, 0x30, 0x33, 0x31, 0x33, //0x000134f4 QUAD $0x3036343430323232; QUAD $0x3331333035323934 // .asciz 16, '2220446049250313' + 0x30, 0x38, 0x30, 0x38, 0x34, 0x37, 0x32, 0x36, 0x33, 0x33, 0x33, 0x36, 0x31, 0x38, 0x31, 0x36, //0x00013504 QUAD $0x3632373438303830; QUAD $0x3631383136333333 // .asciz 16, '0808472633361816' + 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013514 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, //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, //0x00013554 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x10, 0x00, 0x00, 0x00, //0x00013558 .long 16 + 0x31, 0x31, 0x31, 0x30, 0x32, 0x32, 0x33, 0x30, 0x32, 0x34, 0x36, 0x32, 0x35, 0x31, 0x35, 0x36, //0x0001355c QUAD $0x3033323230313131; QUAD $0x3635313532363432 // .asciz 16, '1110223024625156' + 0x35, 0x34, 0x30, 0x34, 0x32, 0x33, 0x36, 0x33, 0x31, 0x36, 0x36, 0x38, 0x30, 0x39, 0x30, 0x38, //0x0001356c QUAD $0x3336333234303435; QUAD $0x3830393038363631 // .asciz 16, '5404236316680908' + 0x32, 0x30, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001357c 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, //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, //0x000135bc LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x000135c0 .long 17 + 0x35, 0x35, 0x35, 0x31, 0x31, 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x35, 0x37, 0x38, 0x32, //0x000135c4 QUAD $0x3135313131353535; QUAD $0x3238373532313332 // .asciz 16, '5551115123125782' + 0x37, 0x30, 0x32, 0x31, 0x31, 0x38, 0x31, 0x35, 0x38, 0x33, 0x34, 0x30, 0x34, 0x35, 0x34, 0x31, //0x000135d4 QUAD $0x3531383131323037; QUAD $0x3134353430343338 // .asciz 16, '7021181583404541' + 0x30, 0x31, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000135e4 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, //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, //0x00013624 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013628 .long 17 + 0x32, 0x37, 0x37, 0x35, 0x35, 0x35, 0x37, 0x35, 0x36, 0x31, 0x35, 0x36, 0x32, 0x38, 0x39, 0x31, //0x0001362c QUAD $0x3537353535373732; QUAD $0x3139383236353136 // .asciz 16, '2775557561562891' + 0x33, 0x35, 0x31, 0x30, 0x35, 0x39, 0x30, 0x37, 0x39, 0x31, 0x37, 0x30, 0x32, 0x32, 0x37, 0x30, //0x0001363c QUAD $0x3730393530313533; QUAD $0x3037323230373139 // .asciz 16, '3510590791702270' + 0x35, 0x30, 0x37, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001364c 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, //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, //0x0001368c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x11, 0x00, 0x00, 0x00, //0x00013690 .long 17 + 0x31, 0x33, 0x38, 0x37, 0x37, 0x37, 0x38, 0x37, 0x38, 0x30, 0x37, 0x38, 0x31, 0x34, 0x34, 0x35, //0x00013694 QUAD $0x3738373737383331; QUAD $0x3534343138373038 // .asciz 16, '1387778780781445' + 0x36, 0x37, 0x35, 0x35, 0x32, 0x39, 0x35, 0x33, 0x39, 0x35, 0x38, 0x35, 0x31, 0x31, 0x33, 0x35, //0x000136a4 QUAD $0x3335393235353736; QUAD $0x3533313135383539 // .asciz 16, '6755295395851135' + 0x32, 0x35, 0x33, 0x39, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000136b4 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, //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, //0x000136f4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000136f8 .long 18 + 0x36, 0x39, 0x33, 0x38, 0x38, 0x39, 0x33, 0x39, 0x30, 0x33, 0x39, 0x30, 0x37, 0x32, 0x32, 0x38, //0x000136fc QUAD $0x3933393838333936; QUAD $0x3832323730393330 // .asciz 16, '6938893903907228' + 0x33, 0x37, 0x37, 0x36, 0x34, 0x37, 0x36, 0x39, 0x37, 0x39, 0x32, 0x35, 0x35, 0x36, 0x37, 0x36, //0x0001370c QUAD $0x3936373436373733; QUAD $0x3637363535323937 // .asciz 16, '3776476979255676' + 0x32, 0x36, 0x39, 0x35, 0x33, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x0001371c 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, //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, //0x0001375c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x00013760 .long 18 + 0x33, 0x34, 0x36, 0x39, 0x34, 0x34, 0x36, 0x39, 0x35, 0x31, 0x39, 0x35, 0x33, 0x36, 0x31, 0x34, //0x00013764 QUAD $0x3936343439363433; QUAD $0x3431363335393135 // .asciz 16, '3469446951953614' + 0x31, 0x38, 0x38, 0x38, 0x32, 0x33, 0x38, 0x34, 0x38, 0x39, 0x36, 0x32, 0x37, 0x38, 0x33, 0x38, //0x00013774 QUAD $0x3438333238383831; QUAD $0x3833383732363938 // .asciz 16, '1888238489627838' + 0x31, 0x33, 0x34, 0x37, 0x36, 0x35, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013784 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, //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, //0x000137c4 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x12, 0x00, 0x00, 0x00, //0x000137c8 .long 18 + 0x31, 0x37, 0x33, 0x34, 0x37, 0x32, 0x33, 0x34, 0x37, 0x35, 0x39, 0x37, 0x36, 0x38, 0x30, 0x37, //0x000137cc QUAD $0x3433323734333731; QUAD $0x3730383637393537 // .asciz 16, '1734723475976807' + 0x30, 0x39, 0x34, 0x34, 0x31, 0x31, 0x39, 0x32, 0x34, 0x34, 0x38, 0x31, 0x33, 0x39, 0x31, 0x39, //0x000137dc QUAD $0x3239313134343930; QUAD $0x3931393331383434 // .asciz 16, '0944119244813919' + 0x30, 0x36, 0x37, 0x33, 0x38, 0x32, 0x38, 0x31, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x000137ec 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, //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, //0x0001382c LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x13, 0x00, 0x00, 0x00, //0x00013830 .long 19 + 0x38, 0x36, 0x37, 0x33, 0x36, 0x31, 0x37, 0x33, 0x37, 0x39, 0x38, 0x38, 0x34, 0x30, 0x33, 0x35, //0x00013834 QUAD $0x3337313633373638; QUAD $0x3533303438383937 // .asciz 16, '8673617379884035' + 0x34, 0x37, 0x32, 0x30, 0x35, 0x39, 0x36, 0x32, 0x32, 0x34, 0x30, 0x36, 0x39, 0x35, 0x39, 0x35, //0x00013844 QUAD $0x3236393530323734; QUAD $0x3539353936303432 // .asciz 16, '4720596224069595' + 0x33, 0x33, 0x36, 0x39, 0x31, 0x34, 0x30, 0x36, 0x32, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013854 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, //0x00013864 QUAD $0x0000000000000000; QUAD $0x0000000000000000 // .asciz 16, '\x00\x00\x00\x00\x00\x00\x00\x00\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, //0x00013894 LONG $0x00000000 // .asciz 4, '\x00\x00\x00\x00' + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013898 .p2align 4, 0x00 + //0x000138a0 _P10_TAB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x3f, //0x000138a0 .quad 0x3ff0000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x40, //0x000138a8 .quad 0x4024000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0x40, //0x000138b0 .quad 0x4059000000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x8f, 0x40, //0x000138b8 .quad 0x408f400000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xc3, 0x40, //0x000138c0 .quad 0x40c3880000000000 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xf8, 0x40, //0x000138c8 .quad 0x40f86a0000000000 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x84, 0x2e, 0x41, //0x000138d0 .quad 0x412e848000000000 + 0x00, 0x00, 0x00, 0x00, 0xd0, 0x12, 0x63, 0x41, //0x000138d8 .quad 0x416312d000000000 + 0x00, 0x00, 0x00, 0x00, 0x84, 0xd7, 0x97, 0x41, //0x000138e0 .quad 0x4197d78400000000 + 0x00, 0x00, 0x00, 0x00, 0x65, 0xcd, 0xcd, 0x41, //0x000138e8 .quad 0x41cdcd6500000000 + 0x00, 0x00, 0x00, 0x20, 0x5f, 0xa0, 0x02, 0x42, //0x000138f0 .quad 0x4202a05f20000000 + 0x00, 0x00, 0x00, 0xe8, 0x76, 0x48, 0x37, 0x42, //0x000138f8 .quad 0x42374876e8000000 + 0x00, 0x00, 0x00, 0xa2, 0x94, 0x1a, 0x6d, 0x42, //0x00013900 .quad 0x426d1a94a2000000 + 0x00, 0x00, 0x40, 0xe5, 0x9c, 0x30, 0xa2, 0x42, //0x00013908 .quad 0x42a2309ce5400000 + 0x00, 0x00, 0x90, 0x1e, 0xc4, 0xbc, 0xd6, 0x42, //0x00013910 .quad 0x42d6bcc41e900000 + 0x00, 0x00, 0x34, 0x26, 0xf5, 0x6b, 0x0c, 0x43, //0x00013918 .quad 0x430c6bf526340000 + 0x00, 0x80, 0xe0, 0x37, 0x79, 0xc3, 0x41, 0x43, //0x00013920 .quad 0x4341c37937e08000 + 0x00, 0xa0, 0xd8, 0x85, 0x57, 0x34, 0x76, 0x43, //0x00013928 .quad 0x4376345785d8a000 + 0x00, 0xc8, 0x4e, 0x67, 0x6d, 0xc1, 0xab, 0x43, //0x00013930 .quad 0x43abc16d674ec800 + 0x00, 0x3d, 0x91, 0x60, 0xe4, 0x58, 0xe1, 0x43, //0x00013938 .quad 0x43e158e460913d00 + 0x40, 0x8c, 0xb5, 0x78, 0x1d, 0xaf, 0x15, 0x44, //0x00013940 .quad 0x4415af1d78b58c40 + 0x50, 0xef, 0xe2, 0xd6, 0xe4, 0x1a, 0x4b, 0x44, //0x00013948 .quad 0x444b1ae4d6e2ef50 + 0x92, 0xd5, 0x4d, 0x06, 0xcf, 0xf0, 0x80, 0x44, //0x00013950 .quad 0x4480f0cf064dd592 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, //0x00013958 .p2align 4, 0x00 + //0x00013960 _pow10_ceil_sig_f32.g + 0xf5, 0xfc, 0x43, 0x4b, 0x2c, 0xb3, 0xce, 0x81, //0x00013960 .quad -9093133594791772939 + 0x32, 0xfc, 0x14, 0x5e, 0xf7, 0x5f, 0x42, 0xa2, //0x00013968 .quad -6754730975062328270 + 0x3f, 0x3b, 0x9a, 0x35, 0xf5, 0xf7, 0xd2, 0xca, //0x00013970 .quad -3831727700400522433 + 0x0e, 0xca, 0x00, 0x83, 0xf2, 0xb5, 0x87, 0xfd, //0x00013978 .quad -177973607073265138 + 0x49, 0x7e, 0xe0, 0x91, 0xb7, 0xd1, 0x74, 0x9e, //0x00013980 .quad -7028762532061872567 + 0xdb, 0x9d, 0x58, 0x76, 0x25, 0x06, 0x12, 0xc6, //0x00013988 .quad -4174267146649952805 + 0x52, 0xc5, 0xee, 0xd3, 0xae, 0x87, 0x96, 0xf7, //0x00013990 .quad -606147914885053102 + 0x53, 0x3b, 0x75, 0x44, 0xcd, 0x14, 0xbe, 0x9a, //0x00013998 .quad -7296371474444240045 + 0x28, 0x8a, 0x92, 0x95, 0x00, 0x9a, 0x6d, 0xc1, //0x000139a0 .quad -4508778324627912152 + 0xb2, 0x2c, 0xf7, 0xba, 0x80, 0x00, 0xc9, 0xf1, //0x000139a8 .quad -1024286887357502286 + 0xef, 0x7b, 0xda, 0x74, 0x50, 0xa0, 0x1d, 0x97, //0x000139b0 .quad -7557708332239520785 + 0xeb, 0x1a, 0x11, 0x92, 0x64, 0x08, 0xe5, 0xbc, //0x000139b8 .quad -4835449396872013077 + 0xa6, 0x61, 0x95, 0xb6, 0x7d, 0x4a, 0x1e, 0xec, //0x000139c0 .quad -1432625727662628442 + 0x08, 0x5d, 0x1d, 0x92, 0x8e, 0xee, 0x92, 0x93, //0x000139c8 .quad -7812920107430224632 + 0x4a, 0xb4, 0xa4, 0x36, 0x32, 0xaa, 0x77, 0xb8, //0x000139d0 .quad -5154464115860392886 + 0x5c, 0xe1, 0x4d, 0xc4, 0xbe, 0x94, 0x95, 0xe6, //0x000139d8 .quad -1831394126398103204 + 0xda, 0xac, 0xb0, 0x3a, 0xf7, 0x7c, 0x1d, 0x90, //0x000139e0 .quad -8062150356639896358 + 0x10, 0xd8, 0x5c, 0x09, 0x35, 0xdc, 0x24, 0xb4, //0x000139e8 .quad -5466001927372482544 + 0x14, 0x0e, 0xb4, 0x4b, 0x42, 0x13, 0x2e, 0xe1, //0x000139f0 .quad -2220816390788215276 + 0xcc, 0x88, 0x50, 0x6f, 0x09, 0xcc, 0xbc, 0x8c, //0x000139f8 .quad -8305539271883716404 + 0xff, 0xaa, 0x24, 0xcb, 0x0b, 0xff, 0xeb, 0xaf, //0x00013a00 .quad -5770238071427257601 + 0xbf, 0xd5, 0xed, 0xbd, 0xce, 0xfe, 0xe6, 0xdb, //0x00013a08 .quad -2601111570856684097 + 0x98, 0xa5, 0xb4, 0x36, 0x41, 0x5f, 0x70, 0x89, //0x00013a10 .quad -8543223759426509416 + 0xfd, 0xce, 0x61, 0x84, 0x11, 0x77, 0xcc, 0xab, //0x00013a18 .quad -6067343680855748867 + 0xbd, 0x42, 0x7a, 0xe5, 0xd5, 0x94, 0xbf, 0xd6, //0x00013a20 .quad -2972493582642298179 + 0xb6, 0x69, 0x6c, 0xaf, 0x05, 0xbd, 0x37, 0x86, //0x00013a28 .quad -8775337516792518218 + 0x24, 0x84, 0x47, 0x1b, 0x47, 0xac, 0xc5, 0xa7, //0x00013a30 .quad -6357485877563259868 + 0x2c, 0x65, 0x19, 0xe2, 0x58, 0x17, 0xb7, 0xd1, //0x00013a38 .quad -3335171328526686932 + 0x3c, 0xdf, 0x4f, 0x8d, 0x97, 0x6e, 0x12, 0x83, //0x00013a40 .quad -9002011107970261188 + 0x0b, 0xd7, 0xa3, 0x70, 0x3d, 0x0a, 0xd7, 0xa3, //0x00013a48 .quad -6640827866535438581 + 0xcd, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, //0x00013a50 .quad -3689348814741910323 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, //0x00013a58 .quad -9223372036854775808 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, //0x00013a60 .quad -6917529027641081856 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, //0x00013a68 .quad -4035225266123964416 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, //0x00013a70 .quad -432345564227567616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x9c, //0x00013a78 .quad -7187745005283311616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc3, //0x00013a80 .quad -4372995238176751616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xf4, //0x00013a88 .quad -854558029293551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x96, 0x98, //0x00013a90 .quad -7451627795949551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xbc, 0xbe, //0x00013a98 .quad -4702848726509551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6b, 0xee, //0x00013aa0 .quad -1266874889709551616 + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0x02, 0x95, //0x00013aa8 .quad -7709325833709551616 + 0x00, 0x00, 0x00, 0x00, 0x40, 0xb7, 0x43, 0xba, //0x00013ab0 .quad -5024971273709551616 + 0x00, 0x00, 0x00, 0x00, 0x10, 0xa5, 0xd4, 0xe8, //0x00013ab8 .quad -1669528073709551616 + 0x00, 0x00, 0x00, 0x00, 0x2a, 0xe7, 0x84, 0x91, //0x00013ac0 .quad -7960984073709551616 + 0x00, 0x00, 0x00, 0x80, 0xf4, 0x20, 0xe6, 0xb5, //0x00013ac8 .quad -5339544073709551616 + 0x00, 0x00, 0x00, 0xa0, 0x31, 0xa9, 0x5f, 0xe3, //0x00013ad0 .quad -2062744073709551616 + 0x00, 0x00, 0x00, 0x04, 0xbf, 0xc9, 0x1b, 0x8e, //0x00013ad8 .quad -8206744073709551616 + 0x00, 0x00, 0x00, 0xc5, 0x2e, 0xbc, 0xa2, 0xb1, //0x00013ae0 .quad -5646744073709551616 + 0x00, 0x00, 0x40, 0x76, 0x3a, 0x6b, 0x0b, 0xde, //0x00013ae8 .quad -2446744073709551616 + 0x00, 0x00, 0xe8, 0x89, 0x04, 0x23, 0xc7, 0x8a, //0x00013af0 .quad -8446744073709551616 + 0x00, 0x00, 0x62, 0xac, 0xc5, 0xeb, 0x78, 0xad, //0x00013af8 .quad -5946744073709551616 + 0x00, 0x80, 0x7a, 0x17, 0xb7, 0x26, 0xd7, 0xd8, //0x00013b00 .quad -2821744073709551616 + 0x00, 0x90, 0xac, 0x6e, 0x32, 0x78, 0x86, 0x87, //0x00013b08 .quad -8681119073709551616 + 0x00, 0xb4, 0x57, 0x0a, 0x3f, 0x16, 0x68, 0xa9, //0x00013b10 .quad -6239712823709551616 + 0x00, 0xa1, 0xed, 0xcc, 0xce, 0x1b, 0xc2, 0xd3, //0x00013b18 .quad -3187955011209551616 + 0xa0, 0x84, 0x14, 0x40, 0x61, 0x51, 0x59, 0x84, //0x00013b20 .quad -8910000909647051616 + 0xc8, 0xa5, 0x19, 0x90, 0xb9, 0xa5, 0x6f, 0xa5, //0x00013b28 .quad -6525815118631426616 + 0x3a, 0x0f, 0x20, 0xf4, 0x27, 0x8f, 0xcb, 0xce, //0x00013b30 .quad -3545582879861895366 + 0x85, 0x09, 0x94, 0xf8, 0x78, 0x39, 0x3f, 0x81, //0x00013b38 .quad -9133518327554766459 + 0xe6, 0x0b, 0xb9, 0x36, 0xd7, 0x07, 0x8f, 0xa1, //0x00013b40 .quad -6805211891016070170 + 0xdf, 0x4e, 0x67, 0x04, 0xcd, 0xc9, 0xf2, 0xc9, //0x00013b48 .quad -3894828845342699809 + 0x97, 0x22, 0x81, 0x45, 0x40, 0x7c, 0x6f, 0xfc, //0x00013b50 .quad -256850038250986857 + 0x9e, 0xb5, 0x70, 0x2b, 0xa8, 0xad, 0xc5, 0x9d, //0x00013b58 .quad -7078060301547948642 + 0x06, 0xe3, 0x4c, 0x36, 0x12, 0x19, 0x37, 0xc5, //0x00013b60 .quad -4235889358507547898 + 0xc7, 0x1b, 0xe0, 0xc3, 0x56, 0xdf, 0x84, 0xf6, //0x00013b68 .quad -683175679707046969 + 0x5d, 0x11, 0x6c, 0x3a, 0x96, 0x0b, 0x13, 0x9a, //0x00013b70 .quad -7344513827457986211 + 0xb4, 0x15, 0x07, 0xc9, 0x7b, 0xce, 0x97, 0xc0, //0x00013b78 .quad -4568956265895094860 + 0x21, 0xdb, 0x48, 0xbb, 0x1a, 0xc2, 0xbd, 0xf0, //0x00013b80 .quad -1099509313941480671 + 0xf5, 0x88, 0x0d, 0xb5, 0x50, 0x99, 0x76, 0x96, //0x00013b88 .quad -7604722348854507275 + 0x32, 0xeb, 0x50, 0xe2, 0xa4, 0x3f, 0x14, 0xbc, //0x00013b90 .quad -4894216917640746190 + 0xfe, 0x25, 0xe5, 0x1a, 0x8e, 0x4f, 0x19, 0xeb, //0x00013b98 .quad -1506085128623544834 + 0xbf, 0x37, 0xcf, 0xd0, 0xb8, 0xd1, 0xef, 0x92, //0x00013ba0 .quad -7858832233030797377 + 0xae, 0x05, 0x03, 0x05, 0x27, 0xc6, 0xab, 0xb7, //0x00013ba8 .quad -5211854272861108818 + 0x1a, 0xc7, 0x43, 0xc6, 0xb0, 0xb7, 0x96, 0xe5, //0x00013bb0 .quad -1903131822648998118 + 0x70, 0x5c, 0xea, 0x7b, 0xce, 0x32, 0x7e, 0x8f, //0x00013bb8 .quad -8106986416796705680 + 0x8c, 0xf3, 0xe4, 0x1a, 0x82, 0xbf, 0x5d, 0xb3, //0x00013bc0 .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 e4e75705c..b4afec9ba 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/resolver/stubs.go b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_compat.go similarity index 98% rename from vendor/github.com/bytedance/sonic/internal/resolver/stubs.go rename to vendor/github.com/bytedance/sonic/internal/resolver/stubs_compat.go index ac27aa3d6..a3479543d 100644 --- a/vendor/github.com/bytedance/sonic/internal/resolver/stubs.go +++ b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_compat.go @@ -1,3 +1,5 @@ +// +build !go1.21 + /* * Copyright 2021 ByteDance Inc. * diff --git a/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go new file mode 100644 index 000000000..f5a9bff2b --- /dev/null +++ b/vendor/github.com/bytedance/sonic/internal/resolver/stubs_latest.go @@ -0,0 +1,48 @@ +// +build go1.21 + +/* + * 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 resolver + +import ( + _ `encoding/json` + `reflect` + _ `unsafe` +) + +type StdField struct { + name string + nameBytes []byte + nameNonEsc string + nameEscHTML string + tag bool + index []int + typ reflect.Type + omitEmpty bool + quoted bool + encoder func() +} + +type StdStructFields struct { + list []StdField + nameIndex map[string]*StdField + byFoldedName map[string]*StdField +} + +//go:noescape +//go:linkname typeFields encoding/json.typeFields +func typeFields(_ reflect.Type) StdStructFields diff --git a/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go b/vendor/github.com/bytedance/sonic/internal/rt/fastmem.go index 5bf80dd4e..e3bf0db91 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/funcdata.go b/vendor/github.com/bytedance/sonic/loader/funcdata.go index 9b760f615..0e8594c2e 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata.go @@ -42,6 +42,13 @@ const ( _SUB_BUCKETSIZE = _BUCKETSIZE / _SUBBUCKETS ) +// Note: This list must match the list in runtime/symtab.go. +const ( + FuncFlag_TOPFRAME = 1 << iota + FuncFlag_SPWRITE + FuncFlag_ASM +) + // PCDATA and FUNCDATA table indexes. // // See funcdata.h and $GROOT/src/cmd/internal/objabi/funcdata.go. @@ -141,4 +148,98 @@ func funcNameParts(name string) (string, string, string) { return name, "", "" } return name[:i], "[...]", name[j+1:] -} \ No newline at end of file +} + + +// func name table format: +// nameOff[0] -> namePartA namePartB namePartC \x00 +// nameOff[1] -> namePartA namePartB namePartC \x00 +// ... +func makeFuncnameTab(funcs []Func) (tab []byte, offs []int32) { + offs = make([]int32, len(funcs)) + offset := 1 + tab = []byte{0} + + for i, f := range funcs { + offs[i] = int32(offset) + + a, b, c := funcNameParts(f.Name) + tab = append(tab, a...) + tab = append(tab, b...) + tab = append(tab, c...) + tab = append(tab, 0) + offset += len(a) + len(b) + len(c) + 1 + } + + return +} + +// CU table format: +// cuOffsets[0] -> filetabOffset[0] filetabOffset[1] ... filetabOffset[len(CUs[0].fileNames)-1] +// cuOffsets[1] -> filetabOffset[len(CUs[0].fileNames)] ... filetabOffset[len(CUs[0].fileNames) + len(CUs[1].fileNames)-1] +// ... +// +// file name table format: +// filetabOffset[0] -> CUs[0].fileNames[0] \x00 +// ... +// filetabOffset[len(CUs[0]-1)] -> CUs[0].fileNames[len(CUs[0].fileNames)-1] \x00 +// ... +// filetabOffset[SUM(CUs,fileNames)-1] -> CUs[len(CU)-1].fileNames[len(CUs[len(CU)-1].fileNames)-1] \x00 +func makeFilenametab(cus []compilationUnit) (cutab []uint32, filetab []byte, cuOffsets []uint32) { + cuOffsets = make([]uint32, len(cus)) + cuOffset := 0 + fileOffset := 0 + + for i, cu := range cus { + cuOffsets[i] = uint32(cuOffset) + + for _, name := range cu.fileNames { + cutab = append(cutab, uint32(fileOffset)) + + fileOffset += len(name) + 1 + filetab = append(filetab, name...) + filetab = append(filetab, 0) + } + + cuOffset += len(cu.fileNames) + } + + return +} + +func writeFuncdata(out *[]byte, funcs []Func) (fstart int, funcdataOffs [][]uint32) { + fstart = len(*out) + *out = append(*out, byte(0)) + offs := uint32(1) + + funcdataOffs = make([][]uint32, len(funcs)) + for i, f := range funcs { + + var writer = func(fd encoding.BinaryMarshaler) { + var ab []byte + var err error + if fd != nil { + ab, err = fd.MarshalBinary() + if err != nil { + panic(err) + } + funcdataOffs[i] = append(funcdataOffs[i], offs) + } else { + ab = []byte{0} + funcdataOffs[i] = append(funcdataOffs[i], _INVALID_FUNCDATA_OFFSET) + } + *out = append(*out, ab...) + offs += uint32(len(ab)) + } + + writer(f.ArgsPointerMaps) + writer(f.LocalsPointerMaps) + writer(f.StackObjects) + writer(f.InlTree) + writer(f.OpenCodedDeferInfo) + writer(f.ArgInfo) + writer(f.ArgLiveInfo) + writer(f.WrapInfo) + } + return +} diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go115.go b/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go similarity index 77% rename from vendor/github.com/bytedance/sonic/loader/funcdata_go115.go rename to vendor/github.com/bytedance/sonic/loader/funcdata_compat.go index a2e3e65f9..1af575aaa 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go115.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_compat.go @@ -1,5 +1,5 @@ -//go:build go1.15 && !go1.16 -// +build go1.15,!go1.16 +//go:build !go1.16 +// +build !go1.16 /* * Copyright 2021 ByteDance Inc. @@ -20,11 +20,11 @@ package loader import ( - `encoding` - `os` - `unsafe` + `os` + `unsafe` + `sort` - `github.com/bytedance/sonic/internal/rt` + `github.com/bytedance/sonic/internal/rt` ) const ( @@ -171,99 +171,7 @@ type compilationUnit struct { fileNames []string } -// func name table format: -// nameOff[0] -> namePartA namePartB namePartC \x00 -// nameOff[1] -> namePartA namePartB namePartC \x00 -// ... -func makeFuncnameTab(funcs []Func) (tab []byte, offs []int32) { - offs = make([]int32, len(funcs)) - offset := 0 - - for i, f := range funcs { - offs[i] = int32(offset) - - a, b, c := funcNameParts(f.Name) - tab = append(tab, a...) - tab = append(tab, b...) - tab = append(tab, c...) - tab = append(tab, 0) - offset += len(a) + len(b) + len(c) + 1 - } - - return -} - -// CU table format: -// cuOffsets[0] -> filetabOffset[0] filetabOffset[1] ... filetabOffset[len(CUs[0].fileNames)-1] -// cuOffsets[1] -> filetabOffset[len(CUs[0].fileNames)] ... filetabOffset[len(CUs[0].fileNames) + len(CUs[1].fileNames)-1] -// ... -// -// file name table format: -// filetabOffset[0] -> CUs[0].fileNames[0] \x00 -// ... -// filetabOffset[len(CUs[0]-1)] -> CUs[0].fileNames[len(CUs[0].fileNames)-1] \x00 -// ... -// filetabOffset[SUM(CUs,fileNames)-1] -> CUs[len(CU)-1].fileNames[len(CUs[len(CU)-1].fileNames)-1] \x00 -func makeFilenametab(cus []compilationUnit) (cutab []uint32, filetab []byte, cuOffsets []uint32) { - cuOffsets = make([]uint32, len(cus)) - cuOffset := 0 - fileOffset := 0 - - for i, cu := range cus { - cuOffsets[i] = uint32(cuOffset) - - for _, name := range cu.fileNames { - cutab = append(cutab, uint32(fileOffset)) - - fileOffset += len(name) + 1 - filetab = append(filetab, name...) - filetab = append(filetab, 0) - } - - cuOffset += len(cu.fileNames) - } - - return -} - -func writeFuncdata(out *[]byte, funcs []Func) (fstart int, funcdataOffs [][]uint32) { - fstart = len(*out) - *out = append(*out, byte(0)) - offs := uint32(1) - - funcdataOffs = make([][]uint32, len(funcs)) - for i, f := range funcs { - - var writer = func(fd encoding.BinaryMarshaler) { - var ab []byte - var err error - if fd != nil { - ab, err = fd.MarshalBinary() - if err != nil { - panic(err) - } - funcdataOffs[i] = append(funcdataOffs[i], offs) - } else { - ab = []byte{0} - funcdataOffs[i] = append(funcdataOffs[i], _INVALID_FUNCDATA_OFFSET) - } - *out = append(*out, ab...) - offs += uint32(len(ab)) - } - - writer(f.ArgsPointerMaps) - writer(f.LocalsPointerMaps) - writer(f.StackObjects) - writer(f.InlTree) - writer(f.OpenCodedDeferInfo) - writer(f.ArgInfo) - writer(f.ArgLiveInfo) - writer(f.WrapInfo) - } - return -} - -func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab, pclntabSize int64, startLocations []uint32) { +func makeFtab(funcs []_func, maxpc uintptr) (ftab []funcTab, pclntabSize int64, startLocations []uint32) { // Allocate space for the pc->func table. This structure consists of a pc offset // and an offset to the func structure. After that, we have a single pc // value that marks the end of the last function in the binary. @@ -283,14 +191,12 @@ func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab, pclntabSize i } // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - ftab = append(ftab, funcTab{lastFunc.entry + uintptr(lastFuncSize), 0}) - + ftab = append(ftab, funcTab{maxpc, 0}) return } // Pcln table format: [...]funcTab + [...]_Func -func makePclntable(size int64, startLocations []uint32, funcs []_func, lastFuncSize uint32, pcdataOffs [][]uint32, funcdataAddr uintptr, funcdataOffs [][]uint32) (pclntab []byte) { +func makePclntable(size int64, startLocations []uint32, funcs []_func, maxpc uintptr, pcdataOffs [][]uint32, funcdataAddr uintptr, funcdataOffs [][]uint32) (pclntab []byte) { pclntab = make([]byte, size, size) // write a map of pc->func info offsets @@ -301,8 +207,7 @@ func makePclntable(size int64, startLocations []uint32, funcs []_func, lastFuncS offs += 16 } // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - byteOrder.PutUint64(pclntab[offs:offs+8], uint64(lastFunc.entry)+uint64(lastFuncSize)) + byteOrder.PutUint64(pclntab[offs:offs+8], uint64(maxpc)) offs += 8 // write func info table @@ -374,21 +279,22 @@ func writeFindfunctab(out *[]byte, ftab []funcTab) (start int) { tab := make([]findfuncbucket, 0, nbuckets) var s, e = 0, 0 for i := 0; ifunc (binary search) func table - lastFuncsize := funcs[len(funcs)-1].TextSize - ftab, pclntSize, startLocations := makeFtab(_funcs, lastFuncsize) + ftab, pclntSize, startLocations := makeFtab(_funcs, mod.maxpc) mod.ftab = ftab // write pc->func (modmap) findfunc table @@ -455,15 +372,9 @@ func makeModuledata(name string, filenames []string, funcs []Func, text []byte) funcdataAddr := uintptr(rt.IndexByte(cache, fstart)) // make pclnt table - pclntab := makePclntable(pclntSize, startLocations, _funcs, lastFuncsize, pcdataOffs, funcdataAddr, funcdataOffs) + pclntab := makePclntable(pclntSize, startLocations, _funcs, mod.maxpc, pcdataOffs, funcdataAddr, funcdataOffs) mod.pclntable = pclntab - // assign addresses - mod.text = addr - mod.etext = addr + uintptr(size) - mod.minpc = addr - mod.maxpc = addr + uintptr(len(text)) - // make pc header mod.pcHeader = &pcHeader { magic : _Magic, @@ -487,7 +398,7 @@ func makeModuledata(name string, filenames []string, funcs []Func, text []byte) // makePctab generates pcdelta->valuedelta tables for functions, // and returns the table and the entry offset of every kind pcdata in the table. -func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { +func makePctab(funcs []Func, addr uintptr, cuOffset uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { _funcs = make([]_func, len(funcs)) // Pctab offsets of 0 are considered invalid in the runtime. We respect @@ -538,7 +449,7 @@ func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32 _f.deferreturn = f.DeferReturn // NOTICE: _func.pcdata is always as [PCDATA_UnsafePoint(0) : PCDATA_ArgLiveIndex(3)] _f.npcdata = uint32(_N_PCDATA) - _f.cuOffset = cuOffset[i] + _f.cuOffset = cuOffset _f.funcID = f.ID _f.nfuncdata = uint8(_N_FUNCDATA) } @@ -546,4 +457,4 @@ func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32 return } -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} \ No newline at end of file +func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go index 508268e7d..1dfe2297d 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go @@ -20,9 +20,9 @@ package loader import ( - `encoding` `os` `unsafe` + `sort` `github.com/bytedance/sonic/internal/rt` ) @@ -171,99 +171,7 @@ type compilationUnit struct { fileNames []string } -// func name table format: -// nameOff[0] -> namePartA namePartB namePartC \x00 -// nameOff[1] -> namePartA namePartB namePartC \x00 -// ... -func makeFuncnameTab(funcs []Func) (tab []byte, offs []int32) { - offs = make([]int32, len(funcs)) - offset := 0 - - for i, f := range funcs { - offs[i] = int32(offset) - - a, b, c := funcNameParts(f.Name) - tab = append(tab, a...) - tab = append(tab, b...) - tab = append(tab, c...) - tab = append(tab, 0) - offset += len(a) + len(b) + len(c) + 1 - } - - return -} - -// CU table format: -// cuOffsets[0] -> filetabOffset[0] filetabOffset[1] ... filetabOffset[len(CUs[0].fileNames)-1] -// cuOffsets[1] -> filetabOffset[len(CUs[0].fileNames)] ... filetabOffset[len(CUs[0].fileNames) + len(CUs[1].fileNames)-1] -// ... -// -// file name table format: -// filetabOffset[0] -> CUs[0].fileNames[0] \x00 -// ... -// filetabOffset[len(CUs[0]-1)] -> CUs[0].fileNames[len(CUs[0].fileNames)-1] \x00 -// ... -// filetabOffset[SUM(CUs,fileNames)-1] -> CUs[len(CU)-1].fileNames[len(CUs[len(CU)-1].fileNames)-1] \x00 -func makeFilenametab(cus []compilationUnit) (cutab []uint32, filetab []byte, cuOffsets []uint32) { - cuOffsets = make([]uint32, len(cus)) - cuOffset := 0 - fileOffset := 0 - - for i, cu := range cus { - cuOffsets[i] = uint32(cuOffset) - - for _, name := range cu.fileNames { - cutab = append(cutab, uint32(fileOffset)) - - fileOffset += len(name) + 1 - filetab = append(filetab, name...) - filetab = append(filetab, 0) - } - - cuOffset += len(cu.fileNames) - } - - return -} - -func writeFuncdata(out *[]byte, funcs []Func) (fstart int, funcdataOffs [][]uint32) { - fstart = len(*out) - *out = append(*out, byte(0)) - offs := uint32(1) - - funcdataOffs = make([][]uint32, len(funcs)) - for i, f := range funcs { - - var writer = func(fd encoding.BinaryMarshaler) { - var ab []byte - var err error - if fd != nil { - ab, err = fd.MarshalBinary() - if err != nil { - panic(err) - } - funcdataOffs[i] = append(funcdataOffs[i], offs) - } else { - ab = []byte{0} - funcdataOffs[i] = append(funcdataOffs[i], _INVALID_FUNCDATA_OFFSET) - } - *out = append(*out, ab...) - offs += uint32(len(ab)) - } - - writer(f.ArgsPointerMaps) - writer(f.LocalsPointerMaps) - writer(f.StackObjects) - writer(f.InlTree) - writer(f.OpenCodedDeferInfo) - writer(f.ArgInfo) - writer(f.ArgLiveInfo) - writer(f.WrapInfo) - } - return -} - -func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab, pclntabSize int64, startLocations []uint32) { +func makeFtab(funcs []_func, maxpc uintptr) (ftab []funcTab, pclntabSize int64, startLocations []uint32) { // Allocate space for the pc->func table. This structure consists of a pc offset // and an offset to the func structure. After that, we have a single pc // value that marks the end of the last function in the binary. @@ -283,14 +191,13 @@ func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab, pclntabSize i } // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - ftab = append(ftab, funcTab{lastFunc.entry + uintptr(lastFuncSize), 0}) + ftab = append(ftab, funcTab{maxpc, 0}) return } // Pcln table format: [...]funcTab + [...]_Func -func makePclntable(size int64, startLocations []uint32, funcs []_func, lastFuncSize uint32, pcdataOffs [][]uint32, funcdataAddr uintptr, funcdataOffs [][]uint32) (pclntab []byte) { +func makePclntable(size int64, startLocations []uint32, funcs []_func, maxpc uintptr, pcdataOffs [][]uint32, funcdataAddr uintptr, funcdataOffs [][]uint32) (pclntab []byte) { pclntab = make([]byte, size, size) // write a map of pc->func info offsets @@ -301,8 +208,7 @@ func makePclntable(size int64, startLocations []uint32, funcs []_func, lastFuncS offs += 16 } // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - byteOrder.PutUint64(pclntab[offs:offs+8], uint64(lastFunc.entry)+uint64(lastFuncSize)) + byteOrder.PutUint64(pclntab[offs:offs+8], uint64(maxpc)) offs += 8 // write func info table @@ -374,21 +280,22 @@ func writeFindfunctab(out *[]byte, ftab []funcTab) (start int) { tab := make([]findfuncbucket, 0, nbuckets) var s, e = 0, 0 for i := 0; ifunc (binary search) func table - lastFuncsize := funcs[len(funcs)-1].TextSize - ftab, pclntSize, startLocations := makeFtab(_funcs, lastFuncsize) + ftab, pclntSize, startLocations := makeFtab(_funcs, mod.maxpc) mod.ftab = ftab // write pc->func (modmap) findfunc table @@ -455,15 +373,9 @@ func makeModuledata(name string, filenames []string, funcs []Func, text []byte) funcdataAddr := uintptr(rt.IndexByte(cache, fstart)) // make pclnt table - pclntab := makePclntable(pclntSize, startLocations, _funcs, lastFuncsize, pcdataOffs, funcdataAddr, funcdataOffs) + pclntab := makePclntable(pclntSize, startLocations, _funcs, mod.maxpc, pcdataOffs, funcdataAddr, funcdataOffs) mod.pclntable = pclntab - // assign addresses - mod.text = addr - mod.etext = addr + uintptr(size) - mod.minpc = addr - mod.maxpc = addr + uintptr(len(text)) - // make pc header mod.pcHeader = &pcHeader { magic : _Magic, @@ -487,7 +399,7 @@ func makeModuledata(name string, filenames []string, funcs []Func, text []byte) // makePctab generates pcdelta->valuedelta tables for functions, // and returns the table and the entry offset of every kind pcdata in the table. -func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { +func makePctab(funcs []Func, addr uintptr, cuOffset uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { _funcs = make([]_func, len(funcs)) // Pctab offsets of 0 are considered invalid in the runtime. We respect @@ -538,7 +450,7 @@ func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32 _f.deferreturn = f.DeferReturn // NOTICE: _func.pcdata is always as [PCDATA_UnsafePoint(0) : PCDATA_ArgLiveIndex(3)] _f.npcdata = uint32(_N_PCDATA) - _f.cuOffset = cuOffset[i] + _f.cuOffset = cuOffset _f.funcID = f.ID _f.nfuncdata = uint8(_N_FUNCDATA) } @@ -546,4 +458,4 @@ func makePctab(funcs []Func, addr uintptr, cuOffset []uint32, nameOffset []int32 return } -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} \ No newline at end of file +func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go index a2bac857a..84178ab85 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go118.go @@ -1,4 +1,5 @@ // go:build go1.18 && !go1.20 +//go:build go1.18 && !go1.20 // +build go1.18,!go1.20 /* @@ -20,10 +21,6 @@ package loader import ( - `encoding` - `os` - `unsafe` - `github.com/bytedance/sonic/internal/rt` ) @@ -31,21 +28,6 @@ const ( _Magic uint32 = 0xfffffff0 ) -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 moduledata struct { pcHeader *pcHeader funcnametab []byte @@ -129,413 +111,3 @@ type _func struct { // // funcdata [nfuncdata]uint32 } - -type funcTab struct { - entry uint32 - funcoff uint32 -} - -type bitVector struct { - n int32 // # of bits - bytedata *uint8 -} - -type ptabEntry struct { - name int32 - typ int32 -} - -type textSection struct { - vaddr uintptr // prelinked section vaddr - end uintptr // vaddr + section length - baseaddr uintptr // relocated section address -} - -type modulehash struct { - modulename string - linktimehash string - runtimehash *string -} - -// findfuncbucket is an array of these structures. -// Each bucket represents 4096 bytes of the text segment. -// Each subbucket represents 256 bytes of the text segment. -// To find a function given a pc, locate the bucket and subbucket for -// that pc. Add together the idx and subbucket value to obtain a -// function index. Then scan the functab array starting at that -// index to find the target function. -// This table uses 20 bytes for every 4096 bytes of code, or ~0.5% overhead. -type findfuncbucket struct { - idx uint32 - _SUBBUCKETS [16]byte -} - -// func name table format: -// nameOff[0] -> namePartA namePartB namePartC \x00 -// nameOff[1] -> namePartA namePartB namePartC \x00 -// ... -func makeFuncnameTab(funcs []Func) (tab []byte, offs []int32) { - offs = make([]int32, len(funcs)) - offset := 0 - - for i, f := range funcs { - offs[i] = int32(offset) - - a, b, c := funcNameParts(f.Name) - tab = append(tab, a...) - tab = append(tab, b...) - tab = append(tab, c...) - tab = append(tab, 0) - offset += len(a) + len(b) + len(c) + 1 - } - - return -} - -type compilationUnit struct { - fileNames []string -} - -// CU table format: -// cuOffsets[0] -> filetabOffset[0] filetabOffset[1] ... filetabOffset[len(CUs[0].fileNames)-1] -// cuOffsets[1] -> filetabOffset[len(CUs[0].fileNames)] ... filetabOffset[len(CUs[0].fileNames) + len(CUs[1].fileNames)-1] -// ... -// -// file name table format: -// filetabOffset[0] -> CUs[0].fileNames[0] \x00 -// ... -// filetabOffset[len(CUs[0]-1)] -> CUs[0].fileNames[len(CUs[0].fileNames)-1] \x00 -// ... -// filetabOffset[SUM(CUs,fileNames)-1] -> CUs[len(CU)-1].fileNames[len(CUs[len(CU)-1].fileNames)-1] \x00 -func makeFilenametab(cus []compilationUnit) (cutab []uint32, filetab []byte, cuOffsets []uint32) { - cuOffsets = make([]uint32, len(cus)) - cuOffset := 0 - fileOffset := 0 - - for i, cu := range cus { - cuOffsets[i] = uint32(cuOffset) - - for _, name := range cu.fileNames { - cutab = append(cutab, uint32(fileOffset)) - - fileOffset += len(name) + 1 - filetab = append(filetab, name...) - filetab = append(filetab, 0) - } - - cuOffset += len(cu.fileNames) - } - - return -} - -func writeFuncdata(out *[]byte, funcs []Func) (fstart int, funcdataOffs [][]uint32) { - fstart = len(*out) - *out = append(*out, byte(0)) - offs := uint32(1) - - funcdataOffs = make([][]uint32, len(funcs)) - for i, f := range funcs { - - var writer = func(fd encoding.BinaryMarshaler) { - var ab []byte - var err error - if fd != nil { - ab, err = fd.MarshalBinary() - if err != nil { - panic(err) - } - funcdataOffs[i] = append(funcdataOffs[i], offs) - } else { - ab = []byte{0} - funcdataOffs[i] = append(funcdataOffs[i], _INVALID_FUNCDATA_OFFSET) - } - *out = append(*out, ab...) - offs += uint32(len(ab)) - } - - writer(f.ArgsPointerMaps) - writer(f.LocalsPointerMaps) - writer(f.StackObjects) - writer(f.InlTree) - writer(f.OpenCodedDeferInfo) - writer(f.ArgInfo) - writer(f.ArgLiveInfo) - writer(f.WrapInfo) - } - return -} - -func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab) { - // Allocate space for the pc->func table. This structure consists of a pc offset - // and an offset to the func structure. After that, we have a single pc - // value that marks the end of the last function in the binary. - var size int64 = int64(len(funcs)*2*4 + 4) - var startLocations = make([]uint32, len(funcs)) - for i, f := range funcs { - size = rnd(size, int64(_PtrSize)) - //writePCToFunc - startLocations[i] = uint32(size) - size += int64(uint8(_FUNC_SIZE)+f.nfuncdata*4+uint8(f.npcdata)*4) - } - - ftab = make([]funcTab, 0, len(funcs)+1) - - // write a map of pc->func info offsets - for i, f := range funcs { - ftab = append(ftab, funcTab{uint32(f.entryOff), uint32(startLocations[i])}) - } - - // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - ftab = append(ftab, funcTab{uint32(lastFunc.entryOff + lastFuncSize), 0}) - - return -} - -// Pcln table format: [...]funcTab + [...]_Func -func makePclntable(funcs []_func, lastFuncSize uint32, pcdataOffs [][]uint32, funcdataOffs [][]uint32) (pclntab []byte) { - // Allocate space for the pc->func table. This structure consists of a pc offset - // and an offset to the func structure. After that, we have a single pc - // value that marks the end of the last function in the binary. - var size int64 = int64(len(funcs)*2*4 + 4) - var startLocations = make([]uint32, len(funcs)) - for i := range funcs { - size = rnd(size, int64(_PtrSize)) - //writePCToFunc - startLocations[i] = uint32(size) - size += int64(int(_FUNC_SIZE)+len(funcdataOffs[i])*4+len(pcdataOffs[i])*4) - } - - pclntab = make([]byte, size, size) - - // write a map of pc->func info offsets - offs := 0 - for i, f := range funcs { - byteOrder.PutUint32(pclntab[offs:offs+4], uint32(f.entryOff)) - byteOrder.PutUint32(pclntab[offs+4:offs+8], uint32(startLocations[i])) - offs += 8 - } - // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - byteOrder.PutUint32(pclntab[offs:offs+4], uint32(lastFunc.entryOff+lastFuncSize)) - - // write func info table - for i, f := range funcs { - off := startLocations[i] - - // write _func structure to pclntab - fb := rt.BytesFrom(unsafe.Pointer(&f), int(_FUNC_SIZE), int(_FUNC_SIZE)) - copy(pclntab[off:off+uint32(_FUNC_SIZE)], fb) - off += uint32(_FUNC_SIZE) - - // NOTICE: _func.pcdata always starts from PcUnsafePoint, which is index 3 - for j := 3; j < len(pcdataOffs[i]); j++ { - byteOrder.PutUint32(pclntab[off:off+4], uint32(pcdataOffs[i][j])) - off += 4 - } - - // funcdata refs as offsets from gofunc - for _, funcdata := range funcdataOffs[i] { - byteOrder.PutUint32(pclntab[off:off+4], uint32(funcdata)) - off += 4 - } - - } - - return -} - -// findfunc table used to map pc to belonging func, -// returns the index in the func table. -// -// All text section are divided into buckets sized _BUCKETSIZE(4K): -// every bucket is divided into _SUBBUCKETS sized _SUB_BUCKETSIZE(64), -// and it has a base idx to plus the offset stored in jth subbucket. -// see findfunc() in runtime/symtab.go -func writeFindfunctab(out *[]byte, ftab []funcTab) (start int) { - start = len(*out) - - max := ftab[len(ftab)-1].entry - min := ftab[0].entry - nbuckets := (max - min + _BUCKETSIZE - 1) / _BUCKETSIZE - n := (max - min + _SUB_BUCKETSIZE - 1) / _SUB_BUCKETSIZE - - tab := make([]findfuncbucket, 0, nbuckets) - var s, e = 0, 0 - for i := 0; i 0 { - size := int(unsafe.Sizeof(findfuncbucket{}))*len(tab) - *out = append(*out, rt.BytesFrom(unsafe.Pointer(&tab[0]), size, size)...) - } - return -} - -func makeModuledata(name string, filenames []string, funcs []Func, text []byte) (mod *moduledata) { - mod = new(moduledata) - mod.modulename = name - - // make filename table - cu := make([]string, 0, len(filenames)) - for _, f := range filenames { - cu = append(cu, f) - } - cutab, filetab, cuOffs := makeFilenametab([]compilationUnit{{cu}}) - mod.cutab = cutab - mod.filetab = filetab - - // make funcname table - funcnametab, nameOffs := makeFuncnameTab(funcs) - mod.funcnametab = funcnametab - - // make pcdata table - // NOTICE: _func only use offset to index pcdata, thus no need mmap() pcdata - pctab, pcdataOffs, _funcs := makePctab(funcs, cuOffs, nameOffs) - mod.pctab = pctab - - // write func data - // NOTICE: _func use mod.gofunc+offset to directly point funcdata, thus need cache funcdata - // TODO: estimate accurate capacity - cache := make([]byte, 0, len(funcs)*int(_PtrSize)) - fstart, funcdataOffs := writeFuncdata(&cache, funcs) - - // make pc->func (binary search) func table - lastFuncsize := funcs[len(funcs)-1].TextSize - ftab := makeFtab(_funcs, lastFuncsize) - mod.ftab = ftab - - // write pc->func (modmap) findfunc table - ffstart := writeFindfunctab(&cache, ftab) - - // make pclnt table - pclntab := makePclntable(_funcs, lastFuncsize, pcdataOffs, funcdataOffs) - mod.pclntable = pclntab - - // mmap() text and funcdata segements - p := os.Getpagesize() - size := int(rnd(int64(len(text)), int64(p))) - addr := mmap(size) - // copy the machine code - s := rt.BytesFrom(unsafe.Pointer(addr), len(text), size) - copy(s, text) - // make it executable - mprotect(addr, size) - - // assign addresses - mod.text = addr - mod.etext = addr + uintptr(size) - mod.minpc = addr - mod.maxpc = addr + uintptr(len(text)) - - // cache funcdata and findfuncbucket - moduleCache.Lock() - moduleCache.m[mod] = cache - moduleCache.Unlock() - mod.gofunc = uintptr(unsafe.Pointer(&cache[fstart])) - mod.findfunctab = uintptr(unsafe.Pointer(&cache[ffstart])) - - // make pc header - mod.pcHeader = &pcHeader { - magic : _Magic, - minLC : _MinLC, - ptrSize : _PtrSize, - nfunc : len(funcs), - nfiles: uint(len(cu)), - textStart: mod.text, - funcnameOffset: getOffsetOf(moduledata{}, "funcnametab"), - cuOffset: getOffsetOf(moduledata{}, "cutab"), - filetabOffset: getOffsetOf(moduledata{}, "filetab"), - pctabOffset: getOffsetOf(moduledata{}, "pctab"), - pclnOffset: getOffsetOf(moduledata{}, "pclntable"), - } - - // sepecial case: gcdata and gcbss must by non-empty - mod.gcdata = uintptr(unsafe.Pointer(&emptyByte)) - mod.gcbss = uintptr(unsafe.Pointer(&emptyByte)) - - return -} - -// makePctab generates pcdelta->valuedelta tables for functions, -// and returns the table and the entry offset of every kind pcdata in the table. -func makePctab(funcs []Func, cuOffset []uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { - _funcs = make([]_func, len(funcs)) - - // Pctab offsets of 0 are considered invalid in the runtime. We respect - // that by just padding a single byte at the beginning of runtime.pctab, - // that way no real offsets can be zero. - pctab = make([]byte, 1, 12*len(funcs)+1) - pcdataOffs = make([][]uint32, len(funcs)) - - for i, f := range funcs { - _f := &_funcs[i] - - var writer = func(pc *Pcdata) { - var ab []byte - var err error - if pc != nil { - ab, err = pc.MarshalBinary() - if err != nil { - panic(err) - } - pcdataOffs[i] = append(pcdataOffs[i], uint32(len(pctab))) - } else { - ab = []byte{0} - pcdataOffs[i] = append(pcdataOffs[i], _PCDATA_INVALID_OFFSET) - } - pctab = append(pctab, ab...) - } - - if f.Pcsp != nil { - _f.pcsp = uint32(len(pctab)) - } - writer(f.Pcsp) - if f.Pcfile != nil { - _f.pcfile = uint32(len(pctab)) - } - writer(f.Pcfile) - if f.Pcline != nil { - _f.pcln = uint32(len(pctab)) - } - writer(f.Pcline) - writer(f.PcUnsafePoint) - writer(f.PcStackMapIndex) - writer(f.PcInlTreeIndex) - writer(f.PcArgLiveIndex) - - _f.entryOff = f.EntryOff - _f.nameOff = nameOffset[i] - _f.args = f.ArgsSize - _f.deferreturn = f.DeferReturn - // NOTICE: _func.pcdata is always as [PCDATA_UnsafePoint(0) : PCDATA_ArgLiveIndex(3)] - _f.npcdata = uint32(_N_PCDATA) - _f.cuOffset = cuOffset[i] - _f.funcID = f.ID - _f.flag = f.Flag - _f.nfuncdata = uint8(_N_FUNCDATA) - } - - return -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go index 906fe375d..ed3e7d1a4 100644 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go120.go @@ -20,10 +20,6 @@ package loader import ( - `encoding` - `os` - `unsafe` - `github.com/bytedance/sonic/internal/rt` ) @@ -51,8 +47,6 @@ type moduledata struct { end, gcdata, gcbss uintptr types, etypes uintptr rodata uintptr - - // TODO: generate funcinfo object to memory gofunc uintptr // go.func.* is actual funcinfo object in image textsectmap []textSection // see runtime/symtab.go: textAddr() @@ -118,428 +112,3 @@ type _func struct { // // funcdata [nfuncdata]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 - end uintptr // vaddr + section length - baseaddr uintptr // relocated section address -} - -type modulehash struct { - modulename string - linktimehash string - runtimehash *string -} - -// findfuncbucket is an array of these structures. -// Each bucket represents 4096 bytes of the text segment. -// Each subbucket represents 256 bytes of the text segment. -// To find a function given a pc, locate the bucket and subbucket for -// that pc. Add together the idx and subbucket value to obtain a -// function index. Then scan the functab array starting at that -// index to find the target function. -// This table uses 20 bytes for every 4096 bytes of code, or ~0.5% overhead. -type findfuncbucket struct { - idx uint32 - _SUBBUCKETS [16]byte -} - -// func name table format: -// nameOff[0] -> namePartA namePartB namePartC \x00 -// nameOff[1] -> namePartA namePartB namePartC \x00 -// ... -func makeFuncnameTab(funcs []Func) (tab []byte, offs []int32) { - offs = make([]int32, len(funcs)) - offset := 0 - - for i, f := range funcs { - offs[i] = int32(offset) - - a, b, c := funcNameParts(f.Name) - tab = append(tab, a...) - tab = append(tab, b...) - tab = append(tab, c...) - tab = append(tab, 0) - offset += len(a) + len(b) + len(c) + 1 - } - - return -} - -type compilationUnit struct { - fileNames []string -} - -// CU table format: -// cuOffsets[0] -> filetabOffset[0] filetabOffset[1] ... filetabOffset[len(CUs[0].fileNames)-1] -// cuOffsets[1] -> filetabOffset[len(CUs[0].fileNames)] ... filetabOffset[len(CUs[0].fileNames) + len(CUs[1].fileNames)-1] -// ... -// -// file name table format: -// filetabOffset[0] -> CUs[0].fileNames[0] \x00 -// ... -// filetabOffset[len(CUs[0]-1)] -> CUs[0].fileNames[len(CUs[0].fileNames)-1] \x00 -// ... -// filetabOffset[SUM(CUs,fileNames)-1] -> CUs[len(CU)-1].fileNames[len(CUs[len(CU)-1].fileNames)-1] \x00 -func makeFilenametab(cus []compilationUnit) (cutab []uint32, filetab []byte, cuOffsets []uint32) { - cuOffsets = make([]uint32, len(cus)) - cuOffset := 0 - fileOffset := 0 - - for i, cu := range cus { - cuOffsets[i] = uint32(cuOffset) - - for _, name := range cu.fileNames { - cutab = append(cutab, uint32(fileOffset)) - - fileOffset += len(name) + 1 - filetab = append(filetab, name...) - filetab = append(filetab, 0) - } - - cuOffset += len(cu.fileNames) - } - - return -} - -func writeFuncdata(out *[]byte, funcs []Func) (fstart int, funcdataOffs [][]uint32) { - fstart = len(*out) - *out = append(*out, byte(0)) - offs := uint32(1) - - funcdataOffs = make([][]uint32, len(funcs)) - for i, f := range funcs { - - var writer = func(fd encoding.BinaryMarshaler) { - var ab []byte - var err error - if fd != nil { - ab, err = fd.MarshalBinary() - if err != nil { - panic(err) - } - funcdataOffs[i] = append(funcdataOffs[i], offs) - } else { - ab = []byte{0} - funcdataOffs[i] = append(funcdataOffs[i], _INVALID_FUNCDATA_OFFSET) - } - *out = append(*out, ab...) - offs += uint32(len(ab)) - } - - writer(f.ArgsPointerMaps) - writer(f.LocalsPointerMaps) - writer(f.StackObjects) - writer(f.InlTree) - writer(f.OpenCodedDeferInfo) - writer(f.ArgInfo) - writer(f.ArgLiveInfo) - writer(f.WrapInfo) - } - return -} - -func makeFtab(funcs []_func, lastFuncSize uint32) (ftab []funcTab) { - // Allocate space for the pc->func table. This structure consists of a pc offset - // and an offset to the func structure. After that, we have a single pc - // value that marks the end of the last function in the binary. - var size int64 = int64(len(funcs)*2*4 + 4) - var startLocations = make([]uint32, len(funcs)) - for i, f := range funcs { - size = rnd(size, int64(_PtrSize)) - //writePCToFunc - startLocations[i] = uint32(size) - size += int64(uint8(_FUNC_SIZE)+f.nfuncdata*4+uint8(f.npcdata)*4) - } - - ftab = make([]funcTab, 0, len(funcs)+1) - - // write a map of pc->func info offsets - for i, f := range funcs { - ftab = append(ftab, funcTab{uint32(f.entryOff), uint32(startLocations[i])}) - } - - // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - ftab = append(ftab, funcTab{uint32(lastFunc.entryOff + lastFuncSize), 0}) - - return -} - -// Pcln table format: [...]funcTab + [...]_Func -func makePclntable(funcs []_func, lastFuncSize uint32, pcdataOffs [][]uint32, funcdataOffs [][]uint32) (pclntab []byte) { - // Allocate space for the pc->func table. This structure consists of a pc offset - // and an offset to the func structure. After that, we have a single pc - // value that marks the end of the last function in the binary. - var size int64 = int64(len(funcs)*2*4 + 4) - var startLocations = make([]uint32, len(funcs)) - for i := range funcs { - size = rnd(size, int64(_PtrSize)) - //writePCToFunc - startLocations[i] = uint32(size) - size += int64(int(_FUNC_SIZE)+len(funcdataOffs[i])*4+len(pcdataOffs[i])*4) - } - - pclntab = make([]byte, size, size) - - // write a map of pc->func info offsets - offs := 0 - for i, f := range funcs { - byteOrder.PutUint32(pclntab[offs:offs+4], uint32(f.entryOff)) - byteOrder.PutUint32(pclntab[offs+4:offs+8], uint32(startLocations[i])) - offs += 8 - } - // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - byteOrder.PutUint32(pclntab[offs:offs+4], uint32(lastFunc.entryOff+lastFuncSize)) - - // write func info table - for i, f := range funcs { - off := startLocations[i] - - // write _func structure to pclntab - fb := rt.BytesFrom(unsafe.Pointer(&f), int(_FUNC_SIZE), int(_FUNC_SIZE)) - copy(pclntab[off:off+uint32(_FUNC_SIZE)], fb) - off += uint32(_FUNC_SIZE) - - // NOTICE: _func.pcdata always starts from PcUnsafePoint, which is index 3 - for j := 3; j < len(pcdataOffs[i]); j++ { - byteOrder.PutUint32(pclntab[off:off+4], uint32(pcdataOffs[i][j])) - off += 4 - } - - // funcdata refs as offsets from gofunc - for _, funcdata := range funcdataOffs[i] { - byteOrder.PutUint32(pclntab[off:off+4], uint32(funcdata)) - off += 4 - } - - } - - return -} - -// findfunc table used to map pc to belonging func, -// returns the index in the func table. -// -// All text section are divided into buckets sized _BUCKETSIZE(4K): -// every bucket is divided into _SUBBUCKETS sized _SUB_BUCKETSIZE(64), -// and it has a base idx to plus the offset stored in jth subbucket. -// see findfunc() in runtime/symtab.go -func writeFindfunctab(out *[]byte, ftab []funcTab) (start int) { - start = len(*out) - - max := ftab[len(ftab)-1].entry - min := ftab[0].entry - nbuckets := (max - min + _BUCKETSIZE - 1) / _BUCKETSIZE - n := (max - min + _SUB_BUCKETSIZE - 1) / _SUB_BUCKETSIZE - - tab := make([]findfuncbucket, 0, nbuckets) - var s, e = 0, 0 - for i := 0; i 0 { - size := int(unsafe.Sizeof(findfuncbucket{}))*len(tab) - *out = append(*out, rt.BytesFrom(unsafe.Pointer(&tab[0]), size, size)...) - } - return -} - -func makeModuledata(name string, filenames []string, funcs []Func, text []byte) (mod *moduledata) { - mod = new(moduledata) - mod.modulename = name - - // make filename table - cu := make([]string, 0, len(filenames)) - for _, f := range filenames { - cu = append(cu, f) - } - cutab, filetab, cuOffs := makeFilenametab([]compilationUnit{{cu}}) - mod.cutab = cutab - mod.filetab = filetab - - // make funcname table - funcnametab, nameOffs := makeFuncnameTab(funcs) - mod.funcnametab = funcnametab - - // make pcdata table - // NOTICE: _func only use offset to index pcdata, thus no need mmap() pcdata - pctab, pcdataOffs, _funcs := makePctab(funcs, cuOffs, nameOffs) - mod.pctab = pctab - - // write func data - // NOTICE: _func use mod.gofunc+offset to directly point funcdata, thus need cache funcdata - // TODO: estimate accurate capacity - cache := make([]byte, 0, len(funcs)*int(_PtrSize)) - fstart, funcdataOffs := writeFuncdata(&cache, funcs) - - // make pc->func (binary search) func table - lastFuncsize := funcs[len(funcs)-1].TextSize - ftab := makeFtab(_funcs, lastFuncsize) - mod.ftab = ftab - - // write pc->func (modmap) findfunc table - ffstart := writeFindfunctab(&cache, ftab) - - // make pclnt table - pclntab := makePclntable(_funcs, lastFuncsize, pcdataOffs, funcdataOffs) - mod.pclntable = pclntab - - // mmap() text and funcdata segements - p := os.Getpagesize() - size := int(rnd(int64(len(text)), int64(p))) - addr := mmap(size) - // copy the machine code - s := rt.BytesFrom(unsafe.Pointer(addr), len(text), size) - copy(s, text) - // make it executable - mprotect(addr, size) - - // assign addresses - mod.text = addr - mod.etext = addr + uintptr(size) - mod.minpc = addr - mod.maxpc = addr + uintptr(len(text)) - - // cache funcdata and findfuncbucket - moduleCache.Lock() - moduleCache.m[mod] = cache - moduleCache.Unlock() - mod.gofunc = uintptr(unsafe.Pointer(&cache[fstart])) - mod.findfunctab = uintptr(unsafe.Pointer(&cache[ffstart])) - - // make pc header - mod.pcHeader = &pcHeader { - magic : _Magic, - minLC : _MinLC, - ptrSize : _PtrSize, - nfunc : len(funcs), - nfiles: uint(len(cu)), - textStart: mod.text, - funcnameOffset: getOffsetOf(moduledata{}, "funcnametab"), - cuOffset: getOffsetOf(moduledata{}, "cutab"), - filetabOffset: getOffsetOf(moduledata{}, "filetab"), - pctabOffset: getOffsetOf(moduledata{}, "pctab"), - pclnOffset: getOffsetOf(moduledata{}, "pclntable"), - } - - // sepecial case: gcdata and gcbss must by non-empty - mod.gcdata = uintptr(unsafe.Pointer(&emptyByte)) - mod.gcbss = uintptr(unsafe.Pointer(&emptyByte)) - - return -} - -// makePctab generates pcdelta->valuedelta tables for functions, -// and returns the table and the entry offset of every kind pcdata in the table. -func makePctab(funcs []Func, cuOffset []uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { - _funcs = make([]_func, len(funcs)) - - // Pctab offsets of 0 are considered invalid in the runtime. We respect - // that by just padding a single byte at the beginning of runtime.pctab, - // that way no real offsets can be zero. - pctab = make([]byte, 1, 12*len(funcs)+1) - pcdataOffs = make([][]uint32, len(funcs)) - - for i, f := range funcs { - _f := &_funcs[i] - - var writer = func(pc *Pcdata) { - var ab []byte - var err error - if pc != nil { - ab, err = pc.MarshalBinary() - if err != nil { - panic(err) - } - pcdataOffs[i] = append(pcdataOffs[i], uint32(len(pctab))) - } else { - ab = []byte{0} - pcdataOffs[i] = append(pcdataOffs[i], _PCDATA_INVALID_OFFSET) - } - pctab = append(pctab, ab...) - } - - if f.Pcsp != nil { - _f.pcsp = uint32(len(pctab)) - } - writer(f.Pcsp) - if f.Pcfile != nil { - _f.pcfile = uint32(len(pctab)) - } - writer(f.Pcfile) - if f.Pcline != nil { - _f.pcln = uint32(len(pctab)) - } - writer(f.Pcline) - writer(f.PcUnsafePoint) - writer(f.PcStackMapIndex) - writer(f.PcInlTreeIndex) - writer(f.PcArgLiveIndex) - - _f.entryOff = f.EntryOff - _f.nameOff = nameOffset[i] - _f.args = f.ArgsSize - _f.deferreturn = f.DeferReturn - // NOTICE: _func.pcdata is always as [PCDATA_UnsafePoint(0) : PCDATA_ArgLiveIndex(3)] - _f.npcdata = uint32(_N_PCDATA) - _f.cuOffset = cuOffset[i] - _f.funcID = f.ID - _f.flag = f.Flag - _f.nfuncdata = uint8(_N_FUNCDATA) - } - - return -} - -func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go new file mode 100644 index 000000000..f50663e2a --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_go121.go @@ -0,0 +1,119 @@ +//go:build go1.21 && !go1.22 +// +build go1.21,!go1.22 + +/* + * 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` +) + +const ( + _Magic uint32 = 0xFFFFFFF1 +) + +type moduledata struct { + pcHeader *pcHeader + funcnametab []byte + cutab []uint32 + filetab []byte + pctab []byte + pclntable []byte + ftab []funcTab + findfunctab uintptr + minpc, maxpc uintptr // first func address, last func address + last func size + + text, etext uintptr // start/end of text, (etext-text) must be greater than MIN_FUNC + noptrdata, enoptrdata uintptr + data, edata uintptr + bss, ebss uintptr + noptrbss, enoptrbss uintptr + covctrs, ecovctrs uintptr + end, gcdata, gcbss uintptr + types, etypes uintptr + rodata uintptr + gofunc uintptr // go.func.* is actual funcinfo object in image + + textsectmap []textSection // see runtime/symtab.go: textAddr() + typelinks []int32 // offsets from types + itablinks []*rt.GoItab + + ptab []ptabEntry + + pluginpath string + pkghashes []modulehash + + // This slice records the initializing tasks that need to be + // done to start up the program. It is built by the linker. + inittasks []unsafe.Pointer + + modulename string + modulehashes []modulehash + + 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 _func struct { + entryOff uint32 // start pc, as offset from moduledata.text/pcHeader.textStart + nameOff int32 // function name, as index into moduledata.funcnametab. + + 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 + startLine int32 // line number of start of function (func keyword/TEXT directive) + funcID uint8 // set for certain special runtime functions + flag uint8 + _ [1]byte // pad + nfuncdata uint8 // + + // The end of the struct is followed immediately by two variable-length + // arrays that reference the pcdata and funcdata locations for this + // function. + + // pcdata contains the offset into moduledata.pctab for the start of + // that index's table. e.g., + // &moduledata.pctab[_func.pcdata[_PCDATA_UnsafePoint]] is the start of + // the unsafe point table. + // + // An offset of 0 indicates that there is no table. + // + // pcdata [npcdata]uint32 + + // funcdata contains the offset past moduledata.gofunc which contains a + // pointer to that index's funcdata. e.g., + // *(moduledata.gofunc + _func.funcdata[_FUNCDATA_ArgsPointerMaps]) is + // the argument pointer map. + // + // An offset of ^uint32(0) indicates that there is no entry. + // + // funcdata [nfuncdata]uint32 +} diff --git a/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go new file mode 100644 index 000000000..52c6097fb --- /dev/null +++ b/vendor/github.com/bytedance/sonic/loader/funcdata_latest.go @@ -0,0 +1,355 @@ +// go:build go1.18 && !go1.22 +// +build go1.18,!go1.22 + +/* + * 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 ( + `os` + `sort` + `unsafe` + + `github.com/bytedance/sonic/internal/rt` +) + +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 + end uintptr // vaddr + section length + baseaddr uintptr // relocated section address +} + +type modulehash struct { + modulename string + linktimehash string + runtimehash *string +} + +// findfuncbucket is an array of these structures. +// Each bucket represents 4096 bytes of the text segment. +// Each subbucket represents 256 bytes of the text segment. +// To find a function given a pc, locate the bucket and subbucket for +// that pc. Add together the idx and subbucket value to obtain a +// function index. Then scan the functab array starting at that +// index to find the target function. +// This table uses 20 bytes for every 4096 bytes of code, or ~0.5% overhead. +type findfuncbucket struct { + idx uint32 + _SUBBUCKETS [16]byte +} + +type compilationUnit struct { + fileNames []string +} + +func makeFtab(funcs []_func, maxpc uint32) (ftab []funcTab, pclntabSize int64, startLocations []uint32) { + // Allocate space for the pc->func table. This structure consists of a pc offset + // and an offset to the func structure. After that, we have a single pc + // value that marks the end of the last function in the binary. + pclntabSize = int64(len(funcs)*2*int(_PtrSize) + int(_PtrSize)) + startLocations = make([]uint32, len(funcs)) + for i, f := range funcs { + pclntabSize = rnd(pclntabSize, int64(_PtrSize)) + //writePCToFunc + startLocations[i] = uint32(pclntabSize) + pclntabSize += int64(uint8(_FUNC_SIZE)+f.nfuncdata*4+uint8(f.npcdata)*4) + } + + ftab = make([]funcTab, 0, len(funcs)+1) + + // write a map of pc->func info offsets + for i, f := range funcs { + ftab = append(ftab, funcTab{uint32(f.entryOff), uint32(startLocations[i])}) + } + + // Final entry of table is just end pc offset. + ftab = append(ftab, funcTab{maxpc, 0}) + return +} + +// Pcln table format: [...]funcTab + [...]_Func +func makePclntable(size int64, startLocations []uint32, funcs []_func, maxpc uint32, pcdataOffs [][]uint32, funcdataOffs [][]uint32) (pclntab []byte) { + // Allocate space for the pc->func table. This structure consists of a pc offset + // and an offset to the func structure. After that, we have a single pc + // value that marks the end of the last function in the binary. + pclntab = make([]byte, size, size) + + // write a map of pc->func info offsets + offs := 0 + for i, f := range funcs { + byteOrder.PutUint32(pclntab[offs:offs+4], uint32(f.entryOff)) + byteOrder.PutUint32(pclntab[offs+4:offs+8], uint32(startLocations[i])) + offs += 8 + } + // Final entry of table is just end pc offset. + byteOrder.PutUint32(pclntab[offs:offs+4], maxpc) + + // write func info table + for i := range funcs { + off := startLocations[i] + + // write _func structure to pclntab + fb := rt.BytesFrom(unsafe.Pointer(&funcs[i]), int(_FUNC_SIZE), int(_FUNC_SIZE)) + copy(pclntab[off:off+uint32(_FUNC_SIZE)], fb) + off += uint32(_FUNC_SIZE) + + // NOTICE: _func.pcdata always starts from PcUnsafePoint, which is index 3 + for j := 3; j < len(pcdataOffs[i]); j++ { + byteOrder.PutUint32(pclntab[off:off+4], uint32(pcdataOffs[i][j])) + off += 4 + } + + // funcdata refs as offsets from gofunc + for _, funcdata := range funcdataOffs[i] { + byteOrder.PutUint32(pclntab[off:off+4], uint32(funcdata)) + off += 4 + } + + } + + return +} + +// findfunc table used to map pc to belonging func, +// returns the index in the func table. +// +// All text section are divided into buckets sized _BUCKETSIZE(4K): +// every bucket is divided into _SUBBUCKETS sized _SUB_BUCKETSIZE(64), +// and it has a base idx to plus the offset stored in jth subbucket. +// see findfunc() in runtime/symtab.go +func writeFindfunctab(out *[]byte, ftab []funcTab) (start int) { + start = len(*out) + + max := ftab[len(ftab)-1].entry + min := ftab[0].entry + nbuckets := (max - min + _BUCKETSIZE - 1) / _BUCKETSIZE + n := (max - min + _SUB_BUCKETSIZE - 1) / _SUB_BUCKETSIZE + + tab := make([]findfuncbucket, 0, nbuckets) + var s, e = 0, 0 + for i := 0; i 0 { + size := int(unsafe.Sizeof(findfuncbucket{}))*len(tab) + *out = append(*out, rt.BytesFrom(unsafe.Pointer(&tab[0]), size, size)...) + } + return +} + +func makeModuledata(name string, filenames []string, funcsp *[]Func, text []byte) (mod *moduledata) { + mod = new(moduledata) + mod.modulename = name + + // sort funcs by entry + funcs := *funcsp + sort.Slice(funcs, func(i, j int) bool { + return funcs[i].EntryOff < funcs[j].EntryOff + }) + *funcsp = funcs + + // make filename table + cu := make([]string, 0, len(filenames)) + cu = append(cu, filenames...) + cutab, filetab, cuOffs := makeFilenametab([]compilationUnit{{cu}}) + mod.cutab = cutab + mod.filetab = filetab + + // make funcname table + funcnametab, nameOffs := makeFuncnameTab(funcs) + mod.funcnametab = funcnametab + + // mmap() text and funcdata segements + p := os.Getpagesize() + size := int(rnd(int64(len(text)), int64(p))) + addr := mmap(size) + // copy the machine code + s := rt.BytesFrom(unsafe.Pointer(addr), len(text), size) + copy(s, text) + // make it executable + mprotect(addr, size) + + // assign addresses + mod.text = addr + mod.etext = addr + uintptr(size) + mod.minpc = addr + mod.maxpc = addr + uintptr(len(text)) + + // make pcdata table + // NOTICE: _func only use offset to index pcdata, thus no need mmap() pcdata + cuOff := cuOffs[0] + pctab, pcdataOffs, _funcs := makePctab(funcs, cuOff, nameOffs) + mod.pctab = pctab + + // write func data + // NOTICE: _func use mod.gofunc+offset to directly point funcdata, thus need cache funcdata + // TODO: estimate accurate capacity + cache := make([]byte, 0, len(funcs)*int(_PtrSize)) + fstart, funcdataOffs := writeFuncdata(&cache, funcs) + + // make pc->func (binary search) func table + ftab, pclntSize, startLocations := makeFtab(_funcs, uint32(len(text))) + mod.ftab = ftab + + // write pc->func (modmap) findfunc table + ffstart := writeFindfunctab(&cache, ftab) + + // cache funcdata and findfuncbucket + moduleCache.Lock() + moduleCache.m[mod] = cache + moduleCache.Unlock() + mod.gofunc = uintptr(unsafe.Pointer(&cache[fstart])) + mod.findfunctab = uintptr(unsafe.Pointer(&cache[ffstart])) + + // make pclnt table + pclntab := makePclntable(pclntSize, startLocations, _funcs, uint32(len(text)), pcdataOffs, funcdataOffs) + mod.pclntable = pclntab + + // make pc header + mod.pcHeader = &pcHeader { + magic : _Magic, + minLC : _MinLC, + ptrSize : _PtrSize, + nfunc : len(funcs), + nfiles: uint(len(cu)), + textStart: mod.text, + funcnameOffset: getOffsetOf(moduledata{}, "funcnametab"), + cuOffset: getOffsetOf(moduledata{}, "cutab"), + filetabOffset: getOffsetOf(moduledata{}, "filetab"), + pctabOffset: getOffsetOf(moduledata{}, "pctab"), + pclnOffset: getOffsetOf(moduledata{}, "pclntable"), + } + + // sepecial case: gcdata and gcbss must by non-empty + mod.gcdata = uintptr(unsafe.Pointer(&emptyByte)) + mod.gcbss = uintptr(unsafe.Pointer(&emptyByte)) + + return +} + +// makePctab generates pcdelta->valuedelta tables for functions, +// and returns the table and the entry offset of every kind pcdata in the table. +func makePctab(funcs []Func, cuOffset uint32, nameOffset []int32) (pctab []byte, pcdataOffs [][]uint32, _funcs []_func) { + _funcs = make([]_func, len(funcs)) + + // Pctab offsets of 0 are considered invalid in the runtime. We respect + // that by just padding a single byte at the beginning of runtime.pctab, + // that way no real offsets can be zero. + pctab = make([]byte, 1, 12*len(funcs)+1) + pcdataOffs = make([][]uint32, len(funcs)) + + for i, f := range funcs { + _f := &_funcs[i] + + var writer = func(pc *Pcdata) { + var ab []byte + var err error + if pc != nil { + ab, err = pc.MarshalBinary() + if err != nil { + panic(err) + } + pcdataOffs[i] = append(pcdataOffs[i], uint32(len(pctab))) + } else { + ab = []byte{0} + pcdataOffs[i] = append(pcdataOffs[i], _PCDATA_INVALID_OFFSET) + } + pctab = append(pctab, ab...) + } + + if f.Pcsp != nil { + _f.pcsp = uint32(len(pctab)) + } + writer(f.Pcsp) + if f.Pcfile != nil { + _f.pcfile = uint32(len(pctab)) + } + writer(f.Pcfile) + if f.Pcline != nil { + _f.pcln = uint32(len(pctab)) + } + writer(f.Pcline) + writer(f.PcUnsafePoint) + writer(f.PcStackMapIndex) + writer(f.PcInlTreeIndex) + writer(f.PcArgLiveIndex) + + _f.entryOff = f.EntryOff + _f.nameOff = nameOffset[i] + _f.args = f.ArgsSize + _f.deferreturn = f.DeferReturn + // NOTICE: _func.pcdata is always as [PCDATA_UnsafePoint(0) : PCDATA_ArgLiveIndex(3)] + _f.npcdata = uint32(_N_PCDATA) + _f.cuOffset = cuOffset + _f.funcID = f.ID + _f.flag = f.Flag + _f.nfuncdata = uint8(_N_FUNCDATA) + } + + return +} + +func registerFunction(name string, pc uintptr, textSize uintptr, fp int, args int, size uintptr, argptrs uintptr, localptrs uintptr) {} diff --git a/vendor/github.com/bytedance/sonic/loader/loader.go b/vendor/github.com/bytedance/sonic/loader/loader.go index 929d8c23d..43eaeb459 100644 --- a/vendor/github.com/bytedance/sonic/loader/loader.go +++ b/vendor/github.com/bytedance/sonic/loader/loader.go @@ -34,4 +34,4 @@ type Loader struct { Name string // module name File string // file name Options -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/loader/loader_go116.go b/vendor/github.com/bytedance/sonic/loader/loader_latest.go similarity index 88% rename from vendor/github.com/bytedance/sonic/loader/loader_go116.go rename to vendor/github.com/bytedance/sonic/loader/loader_latest.go index ea30ec9a5..b6e3e75f8 100644 --- a/vendor/github.com/bytedance/sonic/loader/loader_go116.go +++ b/vendor/github.com/bytedance/sonic/loader/loader_latest.go @@ -1,5 +1,5 @@ -//go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 +//go:build go1.16 && !go1.22 +// +build go1.16,!go1.22 /* * Copyright 2021 ByteDance Inc. @@ -87,18 +87,27 @@ func (self Loader) LoadOne(text []byte, funcName string, frameSize int, argSize // 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) { + ids := make([]string, len(funcs)) + for i, f := range funcs { + ids[i] = f.Name + } // generate module data and allocate memory address - mod := makeModuledata(modulename, filenames, funcs, text) + mod := makeModuledata(modulename, filenames, &funcs, text) // verify and register the new module moduledataverify1(mod) registerModule(mod) + // // encapsulate function address out = make([]Function, len(funcs)) - for i, f := range funcs { - m := uintptr(mod.text + uintptr(f.EntryOff)) - out[i] = Function(&m) + for i, s := range ids { + for _, f := range funcs { + if f.Name == s { + m := uintptr(mod.text + uintptr(f.EntryOff)) + out[i] = Function(&m) + } + } } return -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/loader/mmap_unix.go b/vendor/github.com/bytedance/sonic/loader/mmap_unix.go index 50b80bf20..3ea944ed6 100644 --- a/vendor/github.com/bytedance/sonic/loader/mmap_unix.go +++ b/vendor/github.com/bytedance/sonic/loader/mmap_unix.go @@ -42,4 +42,4 @@ func mprotect(p uintptr, nb int) { if _, _, err := syscall.RawSyscall(syscall.SYS_MPROTECT, p, uintptr(nb), _RX); err != 0 { panic(err) } -} \ No newline at end of file +} diff --git a/vendor/github.com/bytedance/sonic/loader/pcdata.go b/vendor/github.com/bytedance/sonic/loader/pcdata.go index b5c62d17b..efab4dac3 100644 --- a/vendor/github.com/bytedance/sonic/loader/pcdata.go +++ b/vendor/github.com/bytedance/sonic/loader/pcdata.go @@ -16,6 +16,10 @@ package loader +import ( + `encoding/binary` +) + const ( _N_PCDATA = 4 @@ -49,40 +53,16 @@ const ( var emptyByte byte -func encodeValue(v int) []byte { - return encodeVariant(toZigzag(v)) -} - -func toZigzag(v int) int { - return (v << 1) ^ (v >> 31) -} - -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 -} - +// Pcvalue is the program count corresponding to the value Val +// WARN: we use relative value here (to function entry) type Pcvalue struct { - PC uint32 // PC offset from func entry - Val int32 + PC uint32 // program count relative to function entry + Val int32 // value relative to the value in function entry } +// Pcdata represents pc->value mapping table. +// WARN: we use ** [Pcdata[i].PC, Pcdata[i+1].PC) ** +// as the range where the Pcdata[i].Val is effective. type Pcdata []Pcvalue // see https://docs.google.com/document/d/1lyPIbmsYbXnpNj57a261hgOYVpNRcgydurVQIyZOz_o/pub @@ -90,11 +70,24 @@ func (self Pcdata) MarshalBinary() (data []byte, err error) { // delta value always starts from -1 sv := int32(_PCDATA_START_VAL) sp := uint32(0) + buf := make([]byte, binary.MaxVarintLen32) for _, v := range self { - data = append(data, encodeVariant(toZigzag(int(v.Val - sv)))...) - data = append(data, encodeVariant(int(v.PC - sp))...) + if v.PC < sp { + panic("PC must be in ascending order!") + } + dp := uint64(v.PC - sp) + dv := int64(v.Val - sv) + if dv == 0 || dp == 0 { + continue + } + n := binary.PutVarint(buf, dv) + data = append(data, buf[:n]...) + n2 := binary.PutUvarint(buf, dp) + data = append(data, buf[:n2]...) sp = v.PC sv = v.Val } + // put 0 to indicate ends + data = append(data, 0) return -} \ No newline at end of file +} 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 000000000..73ebc3518 --- /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 6cbb1ad41..1da238895 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.22 /* * Copyright 2021 ByteDance Inc. @@ -58,6 +58,9 @@ func (cfg Config) Froze() API { if cfg.ValidateString { api.encoderOpts |= encoder.ValidateString } + if cfg.NoValidateJSONMarshaler { + api.encoderOpts |= encoder.NoValidateJSONMarshaler + } // configure decoder options: if cfg.UseInt64 { @@ -139,23 +142,23 @@ func (cfg frozenConfig) Valid(data []byte) bool { // Opts are the compile options, for example, "option.WithCompileRecursiveDepth" is // a compile option to set the depth of recursive compile for the nested struct type. func Pretouch(vt reflect.Type, opts ...option.CompileOption) error { - if err := encoder.Pretouch(vt, opts...); err != nil { - return err - } - if err := decoder.Pretouch(vt, opts...); err != nil { - return err - } - // to pretouch the corresponding pointer type as well - if vt.Kind() == reflect.Ptr { - vt = vt.Elem() - } else { - vt = reflect.PtrTo(vt) - } - if err := encoder.Pretouch(vt, opts...); err != nil { - return err - } - if err := decoder.Pretouch(vt, opts...); err != nil { - return err - } - return nil + if err := encoder.Pretouch(vt, opts...); err != nil { + return err + } + if err := decoder.Pretouch(vt, opts...); err != nil { + return err + } + // to pretouch the corresponding pointer type as well + if vt.Kind() == reflect.Ptr { + vt = vt.Elem() + } else { + vt = reflect.PtrTo(vt) + } + if err := encoder.Pretouch(vt, opts...); err != nil { + return err + } + if err := decoder.Pretouch(vt, opts...); err != nil { + return err + } + return nil } diff --git a/vendor/github.com/bytedance/sonic/utf8/utf8.go b/vendor/github.com/bytedance/sonic/utf8/utf8.go index 59d2caefe..52c35fb28 100644 --- a/vendor/github.com/bytedance/sonic/utf8/utf8.go +++ b/vendor/github.com/bytedance/sonic/utf8/utf8.go @@ -68,4 +68,4 @@ func Validate(src []byte) bool { // ValidateString as Validate, but for string. func ValidateString(src string) bool { return native.ValidateUTF8Fast(&src) == 0 -} \ No newline at end of file +} diff --git a/vendor/github.com/chenzhuoyu/base64x/Makefile b/vendor/github.com/chenzhuoyu/base64x/Makefile index 436d8bafd..a0793f485 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 3d457176b..f0746fce4 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 a768c768d..68ba61331 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 83b58ea1f..7334b063b 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 a6f95575a..39a916123 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 7f7a58720..000000000 --- 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 f18de543e..3bcb09005 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 - -var ( - _subr__b64decode = __native_entry__() + 1563 - _subr__b64encode = __native_entry__() + 301 +import ( + `github.com/bytedance/sonic/loader` ) const ( - _stack__b64decode = 128 + _entry__b64decode = 1328 + _entry__b64encode = 256 +) + +const ( + _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 000000000..fcfb21942 --- /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 000000000..261eeb9e9 --- /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 000000000..c9e872e28 --- /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 000000000..7f4f7b5ce --- /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 000000000..860be87df --- /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 000000000..6022f007c --- /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 000000000..fde422ee6 --- /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 000000000..110bcebdb --- /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 000000000..03a98b85b --- /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 000000000..c427c8c09 --- /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 000000000..b33a586b4 --- /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 000000000..23a7cd1b9 --- /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 000000000..b5607e8f9 --- /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 000000000..c8fac785d --- /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 000000000..fc73a6f8b --- /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 000000000..675699eb0 --- /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 000000000..966090225 --- /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 000000000..06f85ac26 --- /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 000000000..9f80618ef --- /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 000000000..cd1188a2d --- /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 000000000..19a259951 --- /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/gin-contrib/cors/.gitignore b/vendor/github.com/gin-contrib/cors/.gitignore index b4ecae3ad..002df848c 100644 --- a/vendor/github.com/gin-contrib/cors/.gitignore +++ b/vendor/github.com/gin-contrib/cors/.gitignore @@ -21,3 +21,5 @@ _testmain.go *.prof coverage.out + +.idea diff --git a/vendor/github.com/gin-contrib/cors/.golangci.yml b/vendor/github.com/gin-contrib/cors/.golangci.yml index 5a0031c30..d59c99bd4 100644 --- a/vendor/github.com/gin-contrib/cors/.golangci.yml +++ b/vendor/github.com/gin-contrib/cors/.golangci.yml @@ -4,8 +4,6 @@ linters: fast: false enable: - bodyclose - - deadcode - - depguard - dogsled - dupl - errcheck @@ -29,13 +27,11 @@ linters: - nolintlint - rowserrcheck - staticcheck - - structcheck - stylecheck - typecheck - unconvert - unparam - unused - - varcheck - whitespace - gofumpt diff --git a/vendor/github.com/gin-contrib/cors/.goreleaser.yaml b/vendor/github.com/gin-contrib/cors/.goreleaser.yaml index aa5453cfc..d26795543 100644 --- a/vendor/github.com/gin-contrib/cors/.goreleaser.yaml +++ b/vendor/github.com/gin-contrib/cors/.goreleaser.yaml @@ -1,8 +1,7 @@ project_name: queue builds: - - - # If true, skip the build. + - # If true, skip the build. # Useful for library projects. # Default is false skip: true @@ -38,10 +37,10 @@ changelog: - title: Features regexp: "^.*feat[(\\w)]*:+.*$" order: 0 - - title: 'Bug fixes' + - title: "Bug fixes" regexp: "^.*fix[(\\w)]*:+.*$" order: 1 - - title: 'Enhancements' + - title: "Enhancements" regexp: "^.*chore[(\\w)]*:+.*$" order: 2 - title: Others @@ -52,6 +51,6 @@ changelog: # the changelog # Default is empty exclude: - - '^docs' - - 'CICD' + - "^docs" + - "CICD" - typo diff --git a/vendor/github.com/gin-contrib/cors/README.md b/vendor/github.com/gin-contrib/cors/README.md index 6289994d0..d43523295 100644 --- a/vendor/github.com/gin-contrib/cors/README.md +++ b/vendor/github.com/gin-contrib/cors/README.md @@ -75,7 +75,8 @@ func main() { router.Run() } ``` -note: while Default() allows all origins, DefaultConfig() does not and you will still have to use AllowAllOrigins + +Note: while Default() allows all origins, DefaultConfig() does not and you will still have to use AllowAllOrigins. ### Default() allows all origins @@ -90,3 +91,5 @@ func main() { router.Run() } ``` + +Using all origins disables the ability for Gin to set cookies for clients. When dealing with credentials, don't allow all origins. diff --git a/vendor/github.com/gin-contrib/cors/config.go b/vendor/github.com/gin-contrib/cors/config.go index 735c8c1ab..427cfc00b 100644 --- a/vendor/github.com/gin-contrib/cors/config.go +++ b/vendor/github.com/gin-contrib/cors/config.go @@ -8,13 +8,14 @@ import ( ) type cors struct { - allowAllOrigins bool - allowCredentials bool - allowOriginFunc func(string) bool - allowOrigins []string - normalHeaders http.Header - preflightHeaders http.Header - wildcardOrigins [][]string + allowAllOrigins bool + allowCredentials bool + allowOriginFunc func(string) bool + allowOrigins []string + normalHeaders http.Header + preflightHeaders http.Header + wildcardOrigins [][]string + optionsResponseStatusCode int } var ( @@ -48,14 +49,19 @@ func newCors(config Config) *cors { } } + if config.OptionsResponseStatusCode == 0 { + config.OptionsResponseStatusCode = http.StatusNoContent + } + return &cors{ - allowOriginFunc: config.AllowOriginFunc, - allowAllOrigins: config.AllowAllOrigins, - allowCredentials: config.AllowCredentials, - allowOrigins: normalize(config.AllowOrigins), - normalHeaders: generateNormalHeaders(config), - preflightHeaders: generatePreflightHeaders(config), - wildcardOrigins: config.parseWildcardRules(), + allowOriginFunc: config.AllowOriginFunc, + allowAllOrigins: config.AllowAllOrigins, + allowCredentials: config.AllowCredentials, + allowOrigins: normalize(config.AllowOrigins), + normalHeaders: generateNormalHeaders(config), + preflightHeaders: generatePreflightHeaders(config), + wildcardOrigins: config.parseWildcardRules(), + optionsResponseStatusCode: config.OptionsResponseStatusCode, } } @@ -80,7 +86,7 @@ func (cors *cors) applyCors(c *gin.Context) { if c.Request.Method == "OPTIONS" { cors.handlePreflight(c) - defer c.AbortWithStatus(http.StatusNoContent) // Using 204 is better than 200 when the request status is OPTIONS + defer c.AbortWithStatus(cors.optionsResponseStatusCode) } else { cors.handleNormal(c) } diff --git a/vendor/github.com/gin-contrib/cors/cors.go b/vendor/github.com/gin-contrib/cors/cors.go index f0e230ae4..b32522277 100644 --- a/vendor/github.com/gin-contrib/cors/cors.go +++ b/vendor/github.com/gin-contrib/cors/cors.go @@ -17,8 +17,8 @@ type Config struct { // Default value is [] AllowOrigins []string - // AllowOriginFunc is a custom function to validate the origin. It take the origin - // as argument and returns true if allowed or false otherwise. If this option is + // AllowOriginFunc is a custom function to validate the origin. It takes the origin + // as an argument and returns true if allowed or false otherwise. If this option is // set, the content of AllowOrigins is ignored. AllowOriginFunc func(origin string) bool @@ -26,6 +26,9 @@ type Config struct { // cross-domain requests. Default value is simple methods (GET, POST, PUT, PATCH, DELETE, HEAD, and OPTIONS) AllowMethods []string + // AllowPrivateNetwork indicates whether the response should include allow private network header + AllowPrivateNetwork bool + // AllowHeaders is list of non simple headers the client is allowed to use with // cross-domain requests. AllowHeaders []string @@ -53,6 +56,9 @@ type Config struct { // Allows usage of file:// schema (dangerous!) use it only when you 100% sure it's needed AllowFiles bool + + // Allows to pass custom OPTIONS response status code for old browsers / clients + OptionsResponseStatusCode int } // AddAllowMethods is allowed to add custom methods diff --git a/vendor/github.com/gin-contrib/cors/utils.go b/vendor/github.com/gin-contrib/cors/utils.go index 460ef1780..b98e90b8c 100644 --- a/vendor/github.com/gin-contrib/cors/utils.go +++ b/vendor/github.com/gin-contrib/cors/utils.go @@ -45,6 +45,11 @@ func generatePreflightHeaders(c Config) http.Header { value := strconv.FormatInt(int64(c.MaxAge/time.Second), 10) headers.Set("Access-Control-Max-Age", value) } + + if c.AllowPrivateNetwork { + headers.Set("Access-Control-Allow-Private-Network", "true") + } + if c.AllowAllOrigins { headers.Set("Access-Control-Allow-Origin", "*") } else { diff --git a/vendor/github.com/go-playground/validator/v10/Makefile b/vendor/github.com/go-playground/validator/v10/Makefile index ec3455bd5..09f171ba1 100644 --- a/vendor/github.com/go-playground/validator/v10/Makefile +++ b/vendor/github.com/go-playground/validator/v10/Makefile @@ -13,6 +13,6 @@ test: $(GOCMD) test -cover -race ./... bench: - $(GOCMD) test -bench=. -benchmem ./... + $(GOCMD) test -run=NONE -bench=. -benchmem ./... .PHONY: test lint linters-install \ No newline at end of file diff --git a/vendor/github.com/go-playground/validator/v10/README.md b/vendor/github.com/go-playground/validator/v10/README.md index 520661db6..8e80d52a5 100644 --- a/vendor/github.com/go-playground/validator/v10/README.md +++ b/vendor/github.com/go-playground/validator/v10/README.md @@ -1,7 +1,7 @@ Package validator ================= -[![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -![Project status](https://img.shields.io/badge/version-10.14.1-green.svg) +[![Join the chat at https://gitter.im/go-playground/validator](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/go-playground/validator?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) +![Project status](https://img.shields.io/badge/version-10.15.4-green.svg) [![Build Status](https://travis-ci.org/go-playground/validator.svg?branch=master)](https://travis-ci.org/go-playground/validator) [![Coverage Status](https://coveralls.io/repos/go-playground/validator/badge.svg?branch=master&service=github)](https://coveralls.io/github/go-playground/validator?branch=master) [![Go Report Card](https://goreportcard.com/badge/github.com/go-playground/validator)](https://goreportcard.com/report/github.com/go-playground/validator) @@ -67,6 +67,12 @@ Please see https://pkg.go.dev/github.com/go-playground/validator/v10 for detaile Baked-in Validations ------ +### Special Notes: +- If new to using validator it is highly recommended to initialize it using the `WithRequiredStructEnabled` option which is opt-in to new behaviour that will become the default behaviour in v11+. See documentation for more details. +```go +validate := validator.New(validator.WithRequiredStructEnabled()) +``` + ### Fields: | Tag | Description | @@ -158,6 +164,7 @@ Baked-in Validations | credit_card | Credit Card Number | | mongodb | MongoDB ObjectID | | cron | Cron | +| spicedb | SpiceDb ObjectID/Permission/Type | | datetime | Datetime | | e164 | e164 formatted phone number | | email | E-mail String @@ -259,71 +266,72 @@ Benchmarks ------ ###### Run on MacBook Pro (15-inch, 2017) go version go1.10.2 darwin/amd64 ```go +go version go1.21.0 darwin/arm64 goos: darwin -goarch: amd64 -pkg: github.com/go-playground/validator -BenchmarkFieldSuccess-8 20000000 83.6 ns/op 0 B/op 0 allocs/op -BenchmarkFieldSuccessParallel-8 50000000 26.8 ns/op 0 B/op 0 allocs/op -BenchmarkFieldFailure-8 5000000 291 ns/op 208 B/op 4 allocs/op -BenchmarkFieldFailureParallel-8 20000000 107 ns/op 208 B/op 4 allocs/op -BenchmarkFieldArrayDiveSuccess-8 2000000 623 ns/op 201 B/op 11 allocs/op -BenchmarkFieldArrayDiveSuccessParallel-8 10000000 237 ns/op 201 B/op 11 allocs/op -BenchmarkFieldArrayDiveFailure-8 2000000 859 ns/op 412 B/op 16 allocs/op -BenchmarkFieldArrayDiveFailureParallel-8 5000000 335 ns/op 413 B/op 16 allocs/op -BenchmarkFieldMapDiveSuccess-8 1000000 1292 ns/op 432 B/op 18 allocs/op -BenchmarkFieldMapDiveSuccessParallel-8 3000000 467 ns/op 432 B/op 18 allocs/op -BenchmarkFieldMapDiveFailure-8 1000000 1082 ns/op 512 B/op 16 allocs/op -BenchmarkFieldMapDiveFailureParallel-8 5000000 425 ns/op 512 B/op 16 allocs/op -BenchmarkFieldMapDiveWithKeysSuccess-8 1000000 1539 ns/op 480 B/op 21 allocs/op -BenchmarkFieldMapDiveWithKeysSuccessParallel-8 3000000 613 ns/op 480 B/op 21 allocs/op -BenchmarkFieldMapDiveWithKeysFailure-8 1000000 1413 ns/op 721 B/op 21 allocs/op -BenchmarkFieldMapDiveWithKeysFailureParallel-8 3000000 575 ns/op 721 B/op 21 allocs/op -BenchmarkFieldCustomTypeSuccess-8 10000000 216 ns/op 32 B/op 2 allocs/op -BenchmarkFieldCustomTypeSuccessParallel-8 20000000 82.2 ns/op 32 B/op 2 allocs/op -BenchmarkFieldCustomTypeFailure-8 5000000 274 ns/op 208 B/op 4 allocs/op -BenchmarkFieldCustomTypeFailureParallel-8 20000000 116 ns/op 208 B/op 4 allocs/op -BenchmarkFieldOrTagSuccess-8 2000000 740 ns/op 16 B/op 1 allocs/op -BenchmarkFieldOrTagSuccessParallel-8 3000000 474 ns/op 16 B/op 1 allocs/op -BenchmarkFieldOrTagFailure-8 3000000 471 ns/op 224 B/op 5 allocs/op -BenchmarkFieldOrTagFailureParallel-8 3000000 414 ns/op 224 B/op 5 allocs/op -BenchmarkStructLevelValidationSuccess-8 10000000 213 ns/op 32 B/op 2 allocs/op -BenchmarkStructLevelValidationSuccessParallel-8 20000000 91.8 ns/op 32 B/op 2 allocs/op -BenchmarkStructLevelValidationFailure-8 3000000 473 ns/op 304 B/op 8 allocs/op -BenchmarkStructLevelValidationFailureParallel-8 10000000 234 ns/op 304 B/op 8 allocs/op -BenchmarkStructSimpleCustomTypeSuccess-8 5000000 385 ns/op 32 B/op 2 allocs/op -BenchmarkStructSimpleCustomTypeSuccessParallel-8 10000000 161 ns/op 32 B/op 2 allocs/op -BenchmarkStructSimpleCustomTypeFailure-8 2000000 640 ns/op 424 B/op 9 allocs/op -BenchmarkStructSimpleCustomTypeFailureParallel-8 5000000 318 ns/op 440 B/op 10 allocs/op -BenchmarkStructFilteredSuccess-8 2000000 597 ns/op 288 B/op 9 allocs/op -BenchmarkStructFilteredSuccessParallel-8 10000000 266 ns/op 288 B/op 9 allocs/op -BenchmarkStructFilteredFailure-8 3000000 454 ns/op 256 B/op 7 allocs/op -BenchmarkStructFilteredFailureParallel-8 10000000 214 ns/op 256 B/op 7 allocs/op -BenchmarkStructPartialSuccess-8 3000000 502 ns/op 256 B/op 6 allocs/op -BenchmarkStructPartialSuccessParallel-8 10000000 225 ns/op 256 B/op 6 allocs/op -BenchmarkStructPartialFailure-8 2000000 702 ns/op 480 B/op 11 allocs/op -BenchmarkStructPartialFailureParallel-8 5000000 329 ns/op 480 B/op 11 allocs/op -BenchmarkStructExceptSuccess-8 2000000 793 ns/op 496 B/op 12 allocs/op -BenchmarkStructExceptSuccessParallel-8 10000000 193 ns/op 240 B/op 5 allocs/op -BenchmarkStructExceptFailure-8 2000000 639 ns/op 464 B/op 10 allocs/op -BenchmarkStructExceptFailureParallel-8 5000000 300 ns/op 464 B/op 10 allocs/op -BenchmarkStructSimpleCrossFieldSuccess-8 3000000 417 ns/op 72 B/op 3 allocs/op -BenchmarkStructSimpleCrossFieldSuccessParallel-8 10000000 163 ns/op 72 B/op 3 allocs/op -BenchmarkStructSimpleCrossFieldFailure-8 2000000 645 ns/op 304 B/op 8 allocs/op -BenchmarkStructSimpleCrossFieldFailureParallel-8 5000000 285 ns/op 304 B/op 8 allocs/op -BenchmarkStructSimpleCrossStructCrossFieldSuccess-8 3000000 588 ns/op 80 B/op 4 allocs/op -BenchmarkStructSimpleCrossStructCrossFieldSuccessParallel-8 10000000 221 ns/op 80 B/op 4 allocs/op -BenchmarkStructSimpleCrossStructCrossFieldFailure-8 2000000 868 ns/op 320 B/op 9 allocs/op -BenchmarkStructSimpleCrossStructCrossFieldFailureParallel-8 5000000 337 ns/op 320 B/op 9 allocs/op -BenchmarkStructSimpleSuccess-8 5000000 260 ns/op 0 B/op 0 allocs/op -BenchmarkStructSimpleSuccessParallel-8 20000000 90.6 ns/op 0 B/op 0 allocs/op -BenchmarkStructSimpleFailure-8 2000000 619 ns/op 424 B/op 9 allocs/op -BenchmarkStructSimpleFailureParallel-8 5000000 296 ns/op 424 B/op 9 allocs/op -BenchmarkStructComplexSuccess-8 1000000 1454 ns/op 128 B/op 8 allocs/op -BenchmarkStructComplexSuccessParallel-8 3000000 579 ns/op 128 B/op 8 allocs/op -BenchmarkStructComplexFailure-8 300000 4140 ns/op 3041 B/op 53 allocs/op -BenchmarkStructComplexFailureParallel-8 1000000 2127 ns/op 3041 B/op 53 allocs/op -BenchmarkOneof-8 10000000 140 ns/op 0 B/op 0 allocs/op -BenchmarkOneofParallel-8 20000000 70.1 ns/op 0 B/op 0 allocs/op +goarch: arm64 +pkg: github.com/go-playground/validator/v10 +BenchmarkFieldSuccess-8 33142266 35.94 ns/op 0 B/op 0 allocs/op +BenchmarkFieldSuccessParallel-8 200816191 6.568 ns/op 0 B/op 0 allocs/op +BenchmarkFieldFailure-8 6779707 175.1 ns/op 200 B/op 4 allocs/op +BenchmarkFieldFailureParallel-8 11044147 108.4 ns/op 200 B/op 4 allocs/op +BenchmarkFieldArrayDiveSuccess-8 6054232 194.4 ns/op 97 B/op 5 allocs/op +BenchmarkFieldArrayDiveSuccessParallel-8 12523388 94.07 ns/op 97 B/op 5 allocs/op +BenchmarkFieldArrayDiveFailure-8 3587043 334.3 ns/op 300 B/op 10 allocs/op +BenchmarkFieldArrayDiveFailureParallel-8 5816665 200.8 ns/op 300 B/op 10 allocs/op +BenchmarkFieldMapDiveSuccess-8 2217910 540.1 ns/op 288 B/op 14 allocs/op +BenchmarkFieldMapDiveSuccessParallel-8 4446698 258.7 ns/op 288 B/op 14 allocs/op +BenchmarkFieldMapDiveFailure-8 2392759 504.6 ns/op 376 B/op 13 allocs/op +BenchmarkFieldMapDiveFailureParallel-8 4244199 286.9 ns/op 376 B/op 13 allocs/op +BenchmarkFieldMapDiveWithKeysSuccess-8 2005857 592.1 ns/op 288 B/op 14 allocs/op +BenchmarkFieldMapDiveWithKeysSuccessParallel-8 4400850 296.9 ns/op 288 B/op 14 allocs/op +BenchmarkFieldMapDiveWithKeysFailure-8 1850227 643.8 ns/op 553 B/op 16 allocs/op +BenchmarkFieldMapDiveWithKeysFailureParallel-8 3293233 375.1 ns/op 553 B/op 16 allocs/op +BenchmarkFieldCustomTypeSuccess-8 12174412 98.25 ns/op 32 B/op 2 allocs/op +BenchmarkFieldCustomTypeSuccessParallel-8 34389907 35.49 ns/op 32 B/op 2 allocs/op +BenchmarkFieldCustomTypeFailure-8 7582524 156.6 ns/op 184 B/op 3 allocs/op +BenchmarkFieldCustomTypeFailureParallel-8 13019902 92.79 ns/op 184 B/op 3 allocs/op +BenchmarkFieldOrTagSuccess-8 3427260 349.4 ns/op 16 B/op 1 allocs/op +BenchmarkFieldOrTagSuccessParallel-8 15144128 81.25 ns/op 16 B/op 1 allocs/op +BenchmarkFieldOrTagFailure-8 5913546 201.9 ns/op 216 B/op 5 allocs/op +BenchmarkFieldOrTagFailureParallel-8 9810212 113.7 ns/op 216 B/op 5 allocs/op +BenchmarkStructLevelValidationSuccess-8 13456327 87.66 ns/op 16 B/op 1 allocs/op +BenchmarkStructLevelValidationSuccessParallel-8 41818888 27.77 ns/op 16 B/op 1 allocs/op +BenchmarkStructLevelValidationFailure-8 4166284 272.6 ns/op 264 B/op 7 allocs/op +BenchmarkStructLevelValidationFailureParallel-8 7594581 152.1 ns/op 264 B/op 7 allocs/op +BenchmarkStructSimpleCustomTypeSuccess-8 6508082 182.6 ns/op 32 B/op 2 allocs/op +BenchmarkStructSimpleCustomTypeSuccessParallel-8 23078605 54.78 ns/op 32 B/op 2 allocs/op +BenchmarkStructSimpleCustomTypeFailure-8 3118352 381.0 ns/op 416 B/op 9 allocs/op +BenchmarkStructSimpleCustomTypeFailureParallel-8 5300738 224.1 ns/op 432 B/op 10 allocs/op +BenchmarkStructFilteredSuccess-8 4761807 251.1 ns/op 216 B/op 5 allocs/op +BenchmarkStructFilteredSuccessParallel-8 8792598 128.6 ns/op 216 B/op 5 allocs/op +BenchmarkStructFilteredFailure-8 5202573 232.1 ns/op 216 B/op 5 allocs/op +BenchmarkStructFilteredFailureParallel-8 9591267 121.4 ns/op 216 B/op 5 allocs/op +BenchmarkStructPartialSuccess-8 5188512 231.6 ns/op 224 B/op 4 allocs/op +BenchmarkStructPartialSuccessParallel-8 9179776 123.1 ns/op 224 B/op 4 allocs/op +BenchmarkStructPartialFailure-8 3071212 392.5 ns/op 440 B/op 9 allocs/op +BenchmarkStructPartialFailureParallel-8 5344261 223.7 ns/op 440 B/op 9 allocs/op +BenchmarkStructExceptSuccess-8 3184230 375.0 ns/op 424 B/op 8 allocs/op +BenchmarkStructExceptSuccessParallel-8 10090130 108.9 ns/op 208 B/op 3 allocs/op +BenchmarkStructExceptFailure-8 3347226 357.7 ns/op 424 B/op 8 allocs/op +BenchmarkStructExceptFailureParallel-8 5654923 209.5 ns/op 424 B/op 8 allocs/op +BenchmarkStructSimpleCrossFieldSuccess-8 5232265 229.1 ns/op 56 B/op 3 allocs/op +BenchmarkStructSimpleCrossFieldSuccessParallel-8 17436674 64.75 ns/op 56 B/op 3 allocs/op +BenchmarkStructSimpleCrossFieldFailure-8 3128613 383.6 ns/op 272 B/op 8 allocs/op +BenchmarkStructSimpleCrossFieldFailureParallel-8 6994113 168.8 ns/op 272 B/op 8 allocs/op +BenchmarkStructSimpleCrossStructCrossFieldSuccess-8 3506487 340.9 ns/op 64 B/op 4 allocs/op +BenchmarkStructSimpleCrossStructCrossFieldSuccessParallel-8 13431300 91.77 ns/op 64 B/op 4 allocs/op +BenchmarkStructSimpleCrossStructCrossFieldFailure-8 2410566 500.9 ns/op 288 B/op 9 allocs/op +BenchmarkStructSimpleCrossStructCrossFieldFailureParallel-8 6344510 188.2 ns/op 288 B/op 9 allocs/op +BenchmarkStructSimpleSuccess-8 8922726 133.8 ns/op 0 B/op 0 allocs/op +BenchmarkStructSimpleSuccessParallel-8 55291153 23.63 ns/op 0 B/op 0 allocs/op +BenchmarkStructSimpleFailure-8 3171553 378.4 ns/op 416 B/op 9 allocs/op +BenchmarkStructSimpleFailureParallel-8 5571692 212.0 ns/op 416 B/op 9 allocs/op +BenchmarkStructComplexSuccess-8 1683750 714.5 ns/op 224 B/op 5 allocs/op +BenchmarkStructComplexSuccessParallel-8 4578046 257.0 ns/op 224 B/op 5 allocs/op +BenchmarkStructComplexFailure-8 481585 2547 ns/op 3041 B/op 48 allocs/op +BenchmarkStructComplexFailureParallel-8 965764 1577 ns/op 3040 B/op 48 allocs/op +BenchmarkOneof-8 17380881 68.50 ns/op 0 B/op 0 allocs/op +BenchmarkOneofParallel-8 8084733 153.5 ns/op 0 B/op 0 allocs/op ``` Complementary Software diff --git a/vendor/github.com/go-playground/validator/v10/baked_in.go b/vendor/github.com/go-playground/validator/v10/baked_in.go index e676f1d16..0b6233070 100644 --- a/vendor/github.com/go-playground/validator/v10/baked_in.go +++ b/vendor/github.com/go-playground/validator/v10/baked_in.go @@ -23,7 +23,7 @@ import ( "golang.org/x/text/language" "github.com/gabriel-vasile/mimetype" - "github.com/leodido/go-urn" + urn "github.com/leodido/go-urn" ) // Func accepts a FieldLevel interface for all validation needs. The return @@ -230,6 +230,7 @@ var ( "luhn_checksum": hasLuhnChecksum, "mongodb": isMongoDB, "cron": isCron, + "spicedb": isSpiceDB, } ) @@ -372,9 +373,9 @@ func isMAC(fl FieldLevel) bool { // isCIDRv4 is the validation function for validating if the field's value is a valid v4 CIDR address. func isCIDRv4(fl FieldLevel) bool { - ip, _, err := net.ParseCIDR(fl.Field().String()) + ip, net, err := net.ParseCIDR(fl.Field().String()) - return err == nil && ip.To4() != nil + return err == nil && ip.To4() != nil && net.IP.Equal(ip) } // isCIDRv6 is the validation function for validating if the field's value is a valid v6 CIDR address. @@ -1294,8 +1295,13 @@ func isEq(fl FieldLevel) bool { return field.Uint() == p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) + + return field.Float() == p + + case reflect.Float64: + p := asFloat64(param) return field.Float() == p @@ -1561,6 +1567,10 @@ func isFilePath(fl FieldLevel) bool { field := fl.Field() + // Not valid if it is a directory. + if isDir(fl) { + return false + } // If it exists, it obviously is valid. // This is done first to avoid code duplication and unnecessary additional logic. if exists = isFile(fl); exists { @@ -1710,7 +1720,7 @@ func hasValue(fl FieldLevel) bool { if fl.(*validate).fldIsPointer && field.Interface() != nil { return true } - return field.IsValid() && field.Interface() != reflect.Zero(field.Type()).Interface() + return field.IsValid() && !field.IsZero() } } @@ -1734,7 +1744,7 @@ func requireCheckFieldKind(fl FieldLevel, param string, defaultNotFoundValue boo if nullable && field.Interface() != nil { return false } - return field.IsValid() && field.Interface() == reflect.Zero(field.Type()).Interface() + return field.IsValid() && field.IsZero() } } @@ -1755,8 +1765,11 @@ func requireCheckFieldValue( case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr: return field.Uint() == asUint(value) - case reflect.Float32, reflect.Float64: - return field.Float() == asFloat(value) + case reflect.Float32: + return field.Float() == asFloat32(value) + + case reflect.Float64: + return field.Float() == asFloat64(value) case reflect.Slice, reflect.Map, reflect.Array: return int64(field.Len()) == asInt(value) @@ -2055,8 +2068,13 @@ func isGte(fl FieldLevel) bool { return field.Uint() >= p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) + + return field.Float() >= p + + case reflect.Float64: + p := asFloat64(param) return field.Float() >= p @@ -2101,10 +2119,16 @@ func isGt(fl FieldLevel) bool { return field.Uint() > p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) return field.Float() > p + + case reflect.Float64: + p := asFloat64(param) + + return field.Float() > p + case reflect.Struct: if field.Type().ConvertibleTo(timeType) { @@ -2143,8 +2167,13 @@ func hasLengthOf(fl FieldLevel) bool { return field.Uint() == p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) + + return field.Float() == p + + case reflect.Float64: + p := asFloat64(param) return field.Float() == p } @@ -2276,8 +2305,13 @@ func isLte(fl FieldLevel) bool { return field.Uint() <= p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) + + return field.Float() <= p + + case reflect.Float64: + p := asFloat64(param) return field.Float() <= p @@ -2322,8 +2356,13 @@ func isLt(fl FieldLevel) bool { return field.Uint() < p - case reflect.Float32, reflect.Float64: - p := asFloat(param) + case reflect.Float32: + p := asFloat32(param) + + return field.Float() < p + + case reflect.Float64: + p := asFloat64(param) return field.Float() < p @@ -2808,6 +2847,23 @@ func isMongoDB(fl FieldLevel) bool { return mongodbRegex.MatchString(val) } +// isSpiceDB is the validation function for validating if the current field's value is valid for use with Authzed SpiceDB in the indicated way +func isSpiceDB(fl FieldLevel) bool { + val := fl.Field().String() + param := fl.Param() + + switch param { + case "permission": + return spicedbPermissionRegex.MatchString(val) + case "type": + return spicedbTypeRegex.MatchString(val) + case "id", "": + return spicedbIDRegex.MatchString(val) + } + + panic("Unrecognized parameter: " + param) +} + // isCreditCard is the validation function for validating if the current field's value is a valid credit card number func isCreditCard(fl FieldLevel) bool { val := fl.Field().String() diff --git a/vendor/github.com/go-playground/validator/v10/doc.go b/vendor/github.com/go-playground/validator/v10/doc.go index f5aa9e523..c4dbb595f 100644 --- a/vendor/github.com/go-playground/validator/v10/doc.go +++ b/vendor/github.com/go-playground/validator/v10/doc.go @@ -247,7 +247,7 @@ Example #2 This validates that the value is not the data types default zero value. For numbers ensures value is not zero. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions -ensures the value is not nil. +ensures the value is not nil. For structs ensures value is not the zero value when using WithRequiredStructEnabled. Usage: required @@ -256,7 +256,7 @@ ensures the value is not nil. The field under validation must be present and not empty only if all the other specified fields are equal to the value following the specified field. For strings ensures value is not "". For slices, maps, pointers, -interfaces, channels and functions ensures the value is not nil. +interfaces, channels and functions ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_if @@ -273,7 +273,7 @@ Examples: The field under validation must be present and not empty unless all the other specified fields are equal to the value following the specified field. For strings ensures value is not "". For slices, maps, pointers, -interfaces, channels and functions ensures the value is not nil. +interfaces, channels and functions ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_unless @@ -290,7 +290,7 @@ Examples: The field under validation must be present and not empty only if any of the other specified fields are present. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions -ensures the value is not nil. +ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_with @@ -307,7 +307,7 @@ Examples: The field under validation must be present and not empty only if all of the other specified fields are present. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions -ensures the value is not nil. +ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_with_all @@ -321,7 +321,7 @@ Example: The field under validation must be present and not empty only when any of the other specified fields are not present. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions -ensures the value is not nil. +ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_without @@ -338,7 +338,7 @@ Examples: The field under validation must be present and not empty only when all of the other specified fields are not present. For strings ensures value is not "". For slices, maps, pointers, interfaces, channels and functions -ensures the value is not nil. +ensures the value is not nil. For structs ensures value is not the zero value. Usage: required_without_all @@ -352,7 +352,7 @@ Example: The field under validation must not be present or not empty only if all the other specified fields are equal to the value following the specified field. For strings ensures value is not "". For slices, maps, pointers, -interfaces, channels and functions ensures the value is not nil. +interfaces, channels and functions ensures the value is not nil. For structs ensures value is not the zero value. Usage: excluded_if @@ -369,7 +369,7 @@ Examples: The field under validation must not be present or empty unless all the other specified fields are equal to the value following the specified field. For strings ensures value is not "". For slices, maps, pointers, -interfaces, channels and functions ensures the value is not nil. +interfaces, channels and functions ensures the value is not nil. For structs ensures value is not the zero value. Usage: excluded_unless @@ -879,8 +879,6 @@ This is done using os.Stat and github.com/gabriel-vasile/mimetype Usage: image -# URL String - # File Path This validates that a string value contains a valid file path but does not @@ -1384,6 +1382,12 @@ This validates that a string value contains a valid cron expression. Usage: cron +# SpiceDb ObjectID/Permission/Object Type + +This validates that a string is valid for use with SpiceDb for the indicated purpose. If no purpose is given, a purpose of 'id' is assumed. + + Usage: spicedb=id|permission|type + # Alias Validators and Tags Alias Validators and Tags diff --git a/vendor/github.com/go-playground/validator/v10/options.go b/vendor/github.com/go-playground/validator/v10/options.go new file mode 100644 index 000000000..1dea56fd7 --- /dev/null +++ b/vendor/github.com/go-playground/validator/v10/options.go @@ -0,0 +1,16 @@ +package validator + +// Option represents a configurations option to be applied to validator during initialization. +type Option func(*Validate) + +// WithRequiredStructEnabled enables required tag on non-pointer structs to be applied instead of ignored. +// +// This was made opt-in behaviour in order to maintain backward compatibility with the behaviour previous +// to being able to apply struct level validations on struct fields directly. +// +// It is recommended you enabled this as it will be the default behaviour in v11+ +func WithRequiredStructEnabled() Option { + return func(v *Validate) { + v.requiredStructEnabled = true + } +} diff --git a/vendor/github.com/go-playground/validator/v10/regexes.go b/vendor/github.com/go-playground/validator/v10/regexes.go index ba450b3d0..6c8f98560 100644 --- a/vendor/github.com/go-playground/validator/v10/regexes.go +++ b/vendor/github.com/go-playground/validator/v10/regexes.go @@ -68,6 +68,9 @@ const ( cveRegexString = `^CVE-(1999|2\d{3})-(0[^0]\d{2}|0\d[^0]\d{1}|0\d{2}[^0]|[1-9]{1}\d{3,})$` // CVE Format Id https://cve.mitre.org/cve/identifiers/syntaxchange.html mongodbRegexString = "^[a-f\\d]{24}$" cronRegexString = `(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)|((((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|\*) ?){5,7})` + spicedbIDRegexString = `^(([a-zA-Z0-9/_|\-=+]{1,})|\*)$` + spicedbPermissionRegexString = "^([a-z][a-z0-9_]{1,62}[a-z0-9])?$" + spicedbTypeRegexString = "^([a-z][a-z0-9_]{1,61}[a-z0-9]/)?[a-z][a-z0-9_]{1,62}[a-z0-9]$" ) var ( @@ -134,4 +137,7 @@ var ( cveRegex = regexp.MustCompile(cveRegexString) mongodbRegex = regexp.MustCompile(mongodbRegexString) cronRegex = regexp.MustCompile(cronRegexString) + spicedbIDRegex = regexp.MustCompile(spicedbIDRegexString) + spicedbPermissionRegex = regexp.MustCompile(spicedbPermissionRegexString) + spicedbTypeRegex = regexp.MustCompile(spicedbTypeRegexString) ) diff --git a/vendor/github.com/go-playground/validator/v10/util.go b/vendor/github.com/go-playground/validator/v10/util.go index 3925cfe1c..4bd947bdf 100644 --- a/vendor/github.com/go-playground/validator/v10/util.go +++ b/vendor/github.com/go-playground/validator/v10/util.go @@ -261,13 +261,19 @@ func asUint(param string) uint64 { return i } -// asFloat returns the parameter as a float64 +// asFloat64 returns the parameter as a float64 // or panics if it can't convert -func asFloat(param string) float64 { - +func asFloat64(param string) float64 { i, err := strconv.ParseFloat(param, 64) panicIf(err) + return i +} +// asFloat64 returns the parameter as a float64 +// or panics if it can't convert +func asFloat32(param string) float64 { + i, err := strconv.ParseFloat(param, 32) + panicIf(err) return i } diff --git a/vendor/github.com/go-playground/validator/v10/validator.go b/vendor/github.com/go-playground/validator/v10/validator.go index 6f6d53ada..342c4ec24 100644 --- a/vendor/github.com/go-playground/validator/v10/validator.go +++ b/vendor/github.com/go-playground/validator/v10/validator.go @@ -99,6 +99,8 @@ func (v *validate) traverseField(ctx context.Context, parent reflect.Value, curr current, kind, v.fldIsPointer = v.extractTypeInternal(current, false) + var isNestedStruct bool + switch kind { case reflect.Ptr, reflect.Interface, reflect.Invalid: @@ -160,86 +162,61 @@ func (v *validate) traverseField(ctx context.Context, parent reflect.Value, curr } } - case reflect.Struct: - - typ = current.Type() - - if !typ.ConvertibleTo(timeType) { - - if ct != nil { - - if ct.typeof == typeStructOnly { - goto CONTINUE - } else if ct.typeof == typeIsDefault { - // set Field Level fields - v.slflParent = parent - v.flField = current - v.cf = cf - v.ct = ct - - if !ct.fn(ctx, v) { - v.str1 = string(append(ns, cf.altName...)) - - if v.v.hasTagNameFunc { - v.str2 = string(append(structNs, cf.name...)) - } else { - v.str2 = v.str1 - } - - v.errs = append(v.errs, - &fieldError{ - v: v.v, - tag: ct.aliasTag, - actualTag: ct.tag, - ns: v.str1, - structNs: v.str2, - fieldLen: uint8(len(cf.altName)), - structfieldLen: uint8(len(cf.name)), - value: current.Interface(), - param: ct.param, - kind: kind, - typ: typ, - }, - ) - return - } - } - - ct = ct.next - } - - if ct != nil && ct.typeof == typeNoStructLevel { - return - } - - CONTINUE: - // if len == 0 then validating using 'Var' or 'VarWithValue' - // Var - doesn't make much sense to do it that way, should call 'Struct', but no harm... - // VarWithField - this allows for validating against each field within the struct against a specific value - // pretty handy in certain situations - if len(cf.name) > 0 { - ns = append(append(ns, cf.altName...), '.') - structNs = append(append(structNs, cf.name...), '.') - } - - v.validateStruct(ctx, parent, current, typ, ns, structNs, ct) + if kind == reflect.Invalid { return } - } - if ct == nil || !ct.hasTag { - return + case reflect.Struct: + isNestedStruct = !current.Type().ConvertibleTo(timeType) + // For backward compatibility before struct level validation tags were supported + // as there were a number of projects relying on `required` not failing on non-pointer + // structs. Since it's basically nonsensical to use `required` with a non-pointer struct + // are explicitly skipping the required validation for it. This WILL be removed in the + // next major version. + if isNestedStruct && !v.v.requiredStructEnabled && ct != nil && ct.tag == requiredTag { + ct = ct.next + } } typ = current.Type() OUTER: for { - if ct == nil { + if ct == nil || !ct.hasTag || (isNestedStruct && len(cf.name) == 0) { + // isNestedStruct check here + if isNestedStruct { + // if len == 0 then validating using 'Var' or 'VarWithValue' + // Var - doesn't make much sense to do it that way, should call 'Struct', but no harm... + // VarWithField - this allows for validating against each field within the struct against a specific value + // pretty handy in certain situations + if len(cf.name) > 0 { + ns = append(append(ns, cf.altName...), '.') + structNs = append(append(structNs, cf.name...), '.') + } + + v.validateStruct(ctx, parent, current, typ, ns, structNs, ct) + } return } switch ct.typeof { + case typeNoStructLevel: + return + + case typeStructOnly: + if isNestedStruct { + // if len == 0 then validating using 'Var' or 'VarWithValue' + // Var - doesn't make much sense to do it that way, should call 'Struct', but no harm... + // VarWithField - this allows for validating against each field within the struct against a specific value + // pretty handy in certain situations + if len(cf.name) > 0 { + ns = append(append(ns, cf.altName...), '.') + structNs = append(append(structNs, cf.name...), '.') + } + + v.validateStruct(ctx, parent, current, typ, ns, structNs, ct) + } + return case typeOmitEmpty: @@ -366,7 +343,7 @@ OUTER: ct = ct.next if ct == nil { - return + continue OUTER } if ct.typeof != typeOr { diff --git a/vendor/github.com/go-playground/validator/v10/validator_instance.go b/vendor/github.com/go-playground/validator/v10/validator_instance.go index d9dbf0ce8..a4dbdd098 100644 --- a/vendor/github.com/go-playground/validator/v10/validator_instance.go +++ b/vendor/github.com/go-playground/validator/v10/validator_instance.go @@ -79,19 +79,20 @@ type internalValidationFuncWrapper struct { // Validate contains the validator settings and cache type Validate struct { - tagName string - pool *sync.Pool - hasCustomFuncs bool - hasTagNameFunc bool - tagNameFunc TagNameFunc - structLevelFuncs map[reflect.Type]StructLevelFuncCtx - customFuncs map[reflect.Type]CustomTypeFunc - aliases map[string]string - validations map[string]internalValidationFuncWrapper - transTagFunc map[ut.Translator]map[string]TranslationFunc // map[]map[]TranslationFunc - rules map[reflect.Type]map[string]string - tagCache *tagCache - structCache *structCache + tagName string + pool *sync.Pool + tagNameFunc TagNameFunc + structLevelFuncs map[reflect.Type]StructLevelFuncCtx + customFuncs map[reflect.Type]CustomTypeFunc + aliases map[string]string + validations map[string]internalValidationFuncWrapper + transTagFunc map[ut.Translator]map[string]TranslationFunc // map[]map[]TranslationFunc + rules map[reflect.Type]map[string]string + tagCache *tagCache + structCache *structCache + hasCustomFuncs bool + hasTagNameFunc bool + requiredStructEnabled bool } // New returns a new instance of 'validate' with sane defaults. @@ -99,7 +100,7 @@ type Validate struct { // It caches information about your struct and validations, // in essence only parsing your validation tags once per struct type. // Using multiple instances neglects the benefit of caching. -func New() *Validate { +func New(options ...Option) *Validate { tc := new(tagCache) tc.m.Store(make(map[string]*cTag)) @@ -146,6 +147,9 @@ func New() *Validate { }, } + for _, o := range options { + o(v) + } return v } diff --git a/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml b/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml index 3aa1840ec..1d8b69e65 100644 --- a/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml +++ b/vendor/github.com/pelletier/go-toml/v2/.goreleaser.yaml @@ -18,6 +18,7 @@ builds: - linux_amd64 - linux_arm64 - linux_arm + - linux_riscv64 - windows_amd64 - windows_arm64 - windows_arm @@ -37,6 +38,7 @@ builds: - linux_amd64 - linux_arm64 - linux_arm + - linux_riscv64 - windows_amd64 - windows_arm64 - windows_arm @@ -55,6 +57,7 @@ builds: targets: - linux_amd64 - linux_arm64 + - linux_riscv64 - linux_arm - windows_amd64 - windows_arm64 diff --git a/vendor/github.com/pelletier/go-toml/v2/LICENSE b/vendor/github.com/pelletier/go-toml/v2/LICENSE index 6839d51cd..991e2ae96 100644 --- a/vendor/github.com/pelletier/go-toml/v2/LICENSE +++ b/vendor/github.com/pelletier/go-toml/v2/LICENSE @@ -1,6 +1,7 @@ The MIT License (MIT) -Copyright (c) 2013 - 2022 Thomas Pelletier, Eric Anderton +go-toml v2 +Copyright (c) 2021 - 2023 Thomas Pelletier Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendor/github.com/pelletier/go-toml/v2/README.md b/vendor/github.com/pelletier/go-toml/v2/README.md index d53f43971..63b92f3b0 100644 --- a/vendor/github.com/pelletier/go-toml/v2/README.md +++ b/vendor/github.com/pelletier/go-toml/v2/README.md @@ -45,16 +45,15 @@ to check for typos. [See example in the documentation][strict]. ### Contextualized errors -When most decoding errors occur, go-toml returns [`DecodeError`][decode-err]), +When most decoding errors occur, go-toml returns [`DecodeError`][decode-err], which contains a human readable contextualized version of the error. For example: ``` -2| key1 = "value1" -3| key2 = "missing2" - | ~~~~ missing field -4| key3 = "missing3" -5| key4 = "value4" +1| [server] +2| path = 100 + | ~~~ cannot decode TOML integer into struct field toml_test.Server.Path of type string +3| port = 50 ``` [decode-err]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#DecodeError @@ -73,6 +72,26 @@ representation. [tlt]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#LocalTime [tldt]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#LocalDateTime +### Commented config + +Since TOML is often used for configuration files, go-toml can emit documents +annotated with [comments and commented-out values][comments-example]. For +example, it can generate the following file: + +```toml +# Host IP to connect to. +host = '127.0.0.1' +# Port of the remote server. +port = 4242 + +# Encryption parameters (optional) +# [TLS] +# cipher = 'AEAD-AES128-GCM-SHA256' +# version = 'TLS 1.3' +``` + +[comments-example]: https://pkg.go.dev/github.com/pelletier/go-toml/v2#example-Marshal-Commented + ## Getting started Given the following struct, let's see how to read it and write it as TOML: @@ -497,27 +516,20 @@ is not necessary anymore. V1 used to provide multiple struct tags: `comment`, `commented`, `multiline`, `toml`, and `omitempty`. To behave more like the standard library, v2 has merged -`toml`, `multiline`, and `omitempty`. For example: +`toml`, `multiline`, `commented`, and `omitempty`. For example: ```go type doc struct { // v1 - F string `toml:"field" multiline:"true" omitempty:"true"` + F string `toml:"field" multiline:"true" omitempty:"true" commented:"true"` // v2 - F string `toml:"field,multiline,omitempty"` + F string `toml:"field,multiline,omitempty,commented"` } ``` Has a result, the `Encoder.SetTag*` methods have been removed, as there is just one tag now. - -#### `commented` tag has been removed - -There is no replacement for the `commented` tag. This feature would be better -suited in a proper document model for go-toml v2, which has been [cut from -scope][nodoc] at the moment. - #### `Encoder.ArraysWithOneElementPerLine` has been renamed The new name is `Encoder.SetArraysMultiline`. The behavior should be the same. diff --git a/vendor/github.com/pelletier/go-toml/v2/ci.sh b/vendor/github.com/pelletier/go-toml/v2/ci.sh index 05c76f297..9ae8b7537 100644 --- a/vendor/github.com/pelletier/go-toml/v2/ci.sh +++ b/vendor/github.com/pelletier/go-toml/v2/ci.sh @@ -79,6 +79,7 @@ cover() { go test -covermode=atomic -coverpkg=./... -coverprofile=coverage.out.tmp ./... cat coverage.out.tmp | grep -v fuzz | grep -v testsuite | grep -v tomltestgen | grep -v gotoml-test-decoder > coverage.out go tool cover -func=coverage.out + echo "Coverage profile for ${branch}: ${dir}/coverage.out" >&2 popd if [ "${branch}" != "HEAD" ]; then diff --git a/vendor/github.com/pelletier/go-toml/v2/decode.go b/vendor/github.com/pelletier/go-toml/v2/decode.go index 3a860d0f6..f0ec3b170 100644 --- a/vendor/github.com/pelletier/go-toml/v2/decode.go +++ b/vendor/github.com/pelletier/go-toml/v2/decode.go @@ -318,7 +318,7 @@ func parseFloat(b []byte) (float64, error) { if cleaned[0] == '+' || cleaned[0] == '-' { start = 1 } - if cleaned[start] == '0' && isDigit(cleaned[start+1]) { + if cleaned[start] == '0' && len(cleaned) > start+1 && isDigit(cleaned[start+1]) { return 0, unstable.NewParserError(b, "float integer part cannot have leading zeroes") } diff --git a/vendor/github.com/pelletier/go-toml/v2/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go index 6ab1d8238..6fe78533c 100644 --- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go @@ -148,6 +148,9 @@ func (enc *Encoder) SetIndentTables(indent bool) *Encoder { // // The "omitempty" option prevents empty values or groups from being emitted. // +// The "commented" option prefixes the value and all its children with a comment +// symbol. +// // In addition to the "toml" tag struct tag, a "comment" tag can be used to emit // a TOML comment before the value being annotated. Comments are ignored inside // inline tables. For array tables, the comment is only present before the first @@ -180,6 +183,7 @@ func (enc *Encoder) Encode(v interface{}) error { type valueOptions struct { multiline bool omitempty bool + commented bool comment string } @@ -205,6 +209,9 @@ type encoderCtx struct { // Indentation level indent int + // Prefix the current value with a comment. + commented bool + // Options coming from struct tags options valueOptions } @@ -273,7 +280,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() { @@ -357,6 +364,7 @@ func (enc *Encoder) encodeKv(b []byte, ctx encoderCtx, options valueOptions, v r if !ctx.inline { b = enc.encodeComment(ctx.indent, options.comment, b) + b = enc.commented(ctx.commented, b) b = enc.indent(ctx.indent, b) } @@ -378,6 +386,13 @@ func (enc *Encoder) encodeKv(b []byte, ctx encoderCtx, options valueOptions, v r return b, nil } +func (enc *Encoder) commented(commented bool, b []byte) []byte { + if commented { + return append(b, "# "...) + } + return b +} + func isEmptyValue(v reflect.Value) bool { switch v.Kind() { case reflect.Struct: @@ -526,6 +541,8 @@ func (enc *Encoder) encodeTableHeader(ctx encoderCtx, b []byte) ([]byte, error) b = enc.encodeComment(ctx.indent, ctx.options.comment, b) + b = enc.commented(ctx.commented, b) + b = enc.indent(ctx.indent, b) b = append(b, '[') @@ -704,6 +721,7 @@ func walkStruct(ctx encoderCtx, t *table, v reflect.Value) { options := valueOptions{ multiline: opts.multiline, omitempty: opts.omitempty, + commented: opts.commented, comment: fieldType.Tag.Get("comment"), } @@ -763,6 +781,7 @@ type tagOptions struct { multiline bool inline bool omitempty bool + commented bool } func parseTag(tag string) (string, tagOptions) { @@ -790,6 +809,8 @@ func parseTag(tag string) (string, tagOptions) { opts.inline = true case "omitempty": opts.omitempty = true + case "commented": + opts.commented = true } } @@ -825,8 +846,10 @@ func (enc *Encoder) encodeTable(b []byte, ctx encoderCtx, t table) ([]byte, erro hasNonEmptyKV = true ctx.setKey(kv.Key) + ctx2 := ctx + ctx2.commented = kv.Options.commented || ctx2.commented - b, err = enc.encodeKv(b, ctx, kv.Options, kv.Value) + b, err = enc.encodeKv(b, ctx2, kv.Options, kv.Value) if err != nil { return nil, err } @@ -851,8 +874,10 @@ func (enc *Encoder) encodeTable(b []byte, ctx encoderCtx, t table) ([]byte, erro ctx.setKey(table.Key) ctx.options = table.Options + ctx2 := ctx + ctx2.commented = ctx2.commented || ctx.options.commented - b, err = enc.encode(b, ctx, table.Value) + b, err = enc.encode(b, ctx2, table.Value) if err != nil { return nil, err } @@ -930,7 +955,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 @@ -970,6 +995,9 @@ func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect. ctx.shiftKey() scratch := make([]byte, 0, 64) + + scratch = enc.commented(ctx.commented, scratch) + scratch = append(scratch, "[["...) for i, k := range ctx.parentKey { @@ -985,6 +1013,10 @@ func (enc *Encoder) encodeSliceAsArrayTable(b []byte, ctx encoderCtx, v reflect. b = enc.encodeComment(ctx.indent, ctx.options.comment, b) + if enc.indentTables { + ctx.indent++ + } + for i := 0; i < v.Len(); i++ { if i != 0 { b = append(b, "\n"...) diff --git a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go index 393503431..868c74c15 100644 --- a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go @@ -149,12 +149,16 @@ type errorContext struct { } func (d *decoder) typeMismatchError(toml string, target reflect.Type) error { + return fmt.Errorf("toml: %s", d.typeMismatchString(toml, target)) +} + +func (d *decoder) typeMismatchString(toml string, target reflect.Type) string { if d.errorContext != nil && d.errorContext.Struct != nil { ctx := d.errorContext f := ctx.Struct.FieldByIndex(ctx.Field) - return fmt.Errorf("toml: cannot decode TOML %s into struct field %s.%s of type %s", toml, ctx.Struct, f.Name, f.Type) + return fmt.Sprintf("cannot decode TOML %s into struct field %s.%s of type %s", toml, ctx.Struct, f.Name, f.Type) } - return fmt.Errorf("toml: cannot decode TOML %s into a Go value of type %s", toml, target) + return fmt.Sprintf("cannot decode TOML %s into a Go value of type %s", toml, target) } func (d *decoder) expr() *unstable.Node { @@ -963,7 +967,7 @@ func (d *decoder) unmarshalInteger(value *unstable.Node, v reflect.Value) error case reflect.Interface: r = reflect.ValueOf(i) default: - return d.typeMismatchError("integer", v.Type()) + return unstable.NewParserError(d.p.Raw(value.Raw), d.typeMismatchString("integer", v.Type())) } if !r.Type().AssignableTo(v.Type()) { @@ -982,7 +986,7 @@ func (d *decoder) unmarshalString(value *unstable.Node, v reflect.Value) error { case reflect.Interface: v.Set(reflect.ValueOf(string(value.Data))) default: - return unstable.NewParserError(d.p.Raw(value.Raw), "cannot store TOML string into a Go %s", v.Kind()) + return unstable.NewParserError(d.p.Raw(value.Raw), d.typeMismatchString("string", v.Type())) } return nil @@ -1170,10 +1174,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/github.com/pelletier/go-toml/v2/unstable/parser.go b/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go index a8eb05294..50358a44f 100644 --- a/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go +++ b/vendor/github.com/pelletier/go-toml/v2/unstable/parser.go @@ -1013,6 +1013,7 @@ func (p *Parser) parseIntOrFloatOrDateTime(b []byte) (reference, []byte, error) return p.builder.Push(Node{ Kind: Float, Data: b[:3], + Raw: p.Range(b[:3]), }), b[3:], nil case 'n': if !scanFollowsNan(b) { @@ -1022,6 +1023,7 @@ func (p *Parser) parseIntOrFloatOrDateTime(b []byte) (reference, []byte, error) return p.builder.Push(Node{ Kind: Float, Data: b[:3], + Raw: p.Range(b[:3]), }), b[3:], nil case '+', '-': return p.scanIntOrFloat(b) @@ -1146,6 +1148,7 @@ func (p *Parser) scanIntOrFloat(b []byte) (reference, []byte, error) { return p.builder.Push(Node{ Kind: Integer, Data: b[:i], + Raw: p.Range(b[:i]), }), b[i:], nil } @@ -1169,6 +1172,7 @@ func (p *Parser) scanIntOrFloat(b []byte) (reference, []byte, error) { return p.builder.Push(Node{ Kind: Float, Data: b[:i+3], + Raw: p.Range(b[:i+3]), }), b[i+3:], nil } @@ -1180,6 +1184,7 @@ func (p *Parser) scanIntOrFloat(b []byte) (reference, []byte, error) { return p.builder.Push(Node{ Kind: Float, Data: b[:i+3], + Raw: p.Range(b[:i+3]), }), b[i+3:], nil } @@ -1202,6 +1207,7 @@ func (p *Parser) scanIntOrFloat(b []byte) (reference, []byte, error) { return p.builder.Push(Node{ Kind: kind, Data: b[:i], + Raw: p.Range(b[:i]), }), b[i:], nil } diff --git a/vendor/golang.org/x/arch/x86/x86asm/gnu.go b/vendor/golang.org/x/arch/x86/x86asm/gnu.go index 75cff72b0..8eba1fd0c 100644 --- a/vendor/golang.org/x/arch/x86/x86asm/gnu.go +++ b/vendor/golang.org/x/arch/x86/x86asm/gnu.go @@ -10,7 +10,7 @@ import ( ) // GNUSyntax returns the GNU assembler syntax for the instruction, as defined by GNU binutils. -// This general form is often called ``AT&T syntax'' as a reference to AT&T System V Unix. +// This general form is often called “AT&T syntax” as a reference to AT&T System V Unix. func GNUSyntax(inst Inst, pc uint64, symname SymLookup) string { // Rewrite instruction to mimic GNU peculiarities. // Note that inst has been passed by value and contains diff --git a/vendor/golang.org/x/arch/x86/x86asm/inst.go b/vendor/golang.org/x/arch/x86/x86asm/inst.go index 4632b5064..e98f1a841 100644 --- a/vendor/golang.org/x/arch/x86/x86asm/inst.go +++ b/vendor/golang.org/x/arch/x86/x86asm/inst.go @@ -144,7 +144,7 @@ type Arg interface { // the interface value instead of requiring an allocation. // A Reg is a single register. -// The zero Reg value has no name but indicates ``no register.'' +// The zero Reg value has no name but indicates “no register.” type Reg uint8 const ( diff --git a/vendor/golang.org/x/arch/x86/x86asm/plan9x.go b/vendor/golang.org/x/arch/x86/x86asm/plan9x.go index de417946a..9e866d87b 100644 --- a/vendor/golang.org/x/arch/x86/x86asm/plan9x.go +++ b/vendor/golang.org/x/arch/x86/x86asm/plan9x.go @@ -83,6 +83,12 @@ func GoSyntax(inst Inst, pc uint64, symname SymLookup) string { } } + if inst.Op == CMP { + // Use reads-left-to-right ordering for comparisons. + // See issue 60920. + args[0], args[1] = args[1], args[0] + } + if args != nil { op += " " + strings.Join(args, ", ") } diff --git a/vendor/modules.txt b/vendor/modules.txt index 651d7d6e0..5e65a302d 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -83,18 +83,18 @@ github.com/beorn7/perks/quantile ## explicit; go 1.14 github.com/buckket/go-blurhash github.com/buckket/go-blurhash/base83 -# github.com/bytedance/sonic v1.9.1 -## explicit; go 1.15 +# github.com/bytedance/sonic v1.10.1 +## 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 @@ -112,9 +112,13 @@ github.com/cenkalti/backoff/v4 # 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/cilium/ebpf v0.9.1 ## explicit; go 1.17 github.com/cilium/ebpf @@ -182,8 +186,8 @@ github.com/gabriel-vasile/mimetype github.com/gabriel-vasile/mimetype/internal/charset github.com/gabriel-vasile/mimetype/internal/json github.com/gabriel-vasile/mimetype/internal/magic -# github.com/gin-contrib/cors v1.4.0 -## explicit; go 1.13 +# github.com/gin-contrib/cors v1.5.0 +## explicit; go 1.18 github.com/gin-contrib/cors # github.com/gin-contrib/gzip v0.0.6 ## explicit; go 1.13 @@ -230,7 +234,7 @@ github.com/go-playground/locales/currency # github.com/go-playground/universal-translator v0.18.1 ## explicit; go 1.18 github.com/go-playground/universal-translator -# github.com/go-playground/validator/v10 v10.14.1 +# github.com/go-playground/validator/v10 v10.15.5 ## explicit; go 1.18 github.com/go-playground/validator/v10 # github.com/go-xmlfmt/xmlfmt v0.0.0-20211206191508-7fd73a941850 @@ -412,7 +416,7 @@ github.com/oklog/ulid # github.com/opencontainers/runtime-spec v1.0.2 ## explicit github.com/opencontainers/runtime-spec/specs-go -# github.com/pelletier/go-toml/v2 v2.0.8 +# github.com/pelletier/go-toml/v2 v2.1.0 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 github.com/pelletier/go-toml/v2/internal/characters @@ -837,7 +841,7 @@ go.opentelemetry.io/proto/otlp/trace/v1 go.uber.org/automaxprocs/internal/cgroups go.uber.org/automaxprocs/internal/runtime go.uber.org/automaxprocs/maxprocs -# golang.org/x/arch v0.3.0 +# golang.org/x/arch v0.5.0 ## explicit; go 1.17 golang.org/x/arch/x86/x86asm # golang.org/x/crypto v0.15.0