diff --git a/.gitignore b/.gitignore index ae8c77b..03426c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,3 @@ -# ---> Go -# If you prefer the allow list template instead of the deny list, see community template: -# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore -# # Binaries for programs and plugins *.exe *.exe~ @@ -9,21 +5,19 @@ *.so *.dylib -# Test binary, built with `go test -c` +# Test binary, built with go test -c *.test # Output of the go coverage tool, specifically when used with LiteIDE *.out -# Dependency directories (remove the comment below to include it) -# vendor/ +# Dependency directories +vendor/ -# Go workspace file -go.work -go.work.sum +# IDE-specific files +.idea/ +*.swp +*.swo -# env file -.env - -.idea -.vscode +# Environment files +.env \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..6dcde32 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +# Makefile for pig-farm-controller + +# 默认目标 +.PHONY: help +help: + @echo "Usage: make [target]" + @echo + @echo "Targets:" + @echo " run Run the application" + @echo " build Build the application" + @echo " clean Clean generated files" + @echo " help Show this help message" + +# 运行应用 +.PHONY: run +run: + go run main.go + +# 构建应用 +.PHONY: build +build: + go build -o bin/pig-farm-controller . + +# 清理生成文件 +.PHONY: clean +clean: + rm -f bin/pig-farm-controller \ No newline at end of file diff --git a/go.mod b/go.mod index 5f0f071..a340a1c 100644 --- a/go.mod +++ b/go.mod @@ -10,35 +10,37 @@ require ( ) require ( - github.com/bytedance/sonic v1.9.1 // indirect - github.com/chenzhuoyu/base64x v0.0.0-20221115062448-fe3a3abad311 // indirect + github.com/bytedance/sonic v1.10.0 // indirect + github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d // indirect + github.com/chenzhuoyu/iasm v0.9.0 // indirect github.com/gabriel-vasile/mimetype v1.4.2 // indirect github.com/gin-contrib/sse v0.1.0 // 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.0 // indirect github.com/goccy/go-json v0.10.2 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect github.com/jackc/pgx/v5 v5.4.3 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/cpuid/v2 v2.2.4 // indirect + github.com/klauspost/cpuid/v2 v2.2.5 // indirect github.com/kr/text v0.2.0 // indirect github.com/leodido/go-urn v1.2.4 // indirect github.com/mattn/go-isatty v0.0.19 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.0.9 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.11 // indirect - golang.org/x/arch v0.3.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/arch v0.4.0 // indirect + golang.org/x/crypto v0.28.0 // indirect + golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.26.0 // indirect - golang.org/x/text v0.13.0 // indirect - google.golang.org/protobuf v1.30.0 // indirect + golang.org/x/text v0.19.0 // indirect + google.golang.org/protobuf v1.31.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 726c0fe..85f87f8 100644 --- a/go.sum +++ b/go.sum @@ -1,9 +1,13 @@ 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.0 h1:qtNZduETEIWJVIyDl01BeNxur2rW9OwTQ/yBqFRkKEk= +github.com/bytedance/sonic v1.10.0/go.mod h1:iZcSUejdk5aukTND/Eu/ivjQuEL0Cu9/rf50Hi0u/g4= 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/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= @@ -25,8 +29,9 @@ github.com/go-playground/validator/v10 v10.14.0/go.mod h1:9iXMNT7sEkjXb0I+enO7QX github.com/goccy/go-json v0.10.2 h1:CrxCmQqYDkv1z7lO7Wbh2HN93uovUHgrECaO5ZrCXAU= github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= @@ -41,8 +46,9 @@ github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/ github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk= -github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= +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/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= @@ -56,8 +62,8 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/pelletier/go-toml/v2 v2.0.9 h1:uH2qQXheeefCCkuBBSLi7jCiSmj3VRh2+Goq2N7Xxu0= +github.com/pelletier/go-toml/v2 v2.0.9/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ= @@ -71,30 +77,29 @@ 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 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -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/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.11 h1:BMaWp1Bb6fHwEtbplGBGJ498wD+LKlNSl25MjdZY4dU= github.com/ugorji/go/codec v1.2.11/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= 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/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/net v0.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/sys v0.0.0-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/arch v0.4.0 h1:A8WCeEWhLwPBKNbFi5Wv5UTCBx5zzubnXDlMOFAzFMc= +golang.org/x/arch v0.4.0/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= -google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -107,4 +112,5 @@ gorm.io/driver/postgres v1.5.7 h1:8ptbNJTDbEmhdr62uReG5BGkdQyeasu/FZHxI0IMGnM= gorm.io/driver/postgres v1.5.7/go.mod h1:3e019WlBaYI5o5LIdNV+LyxCMNtLOQETBXL2h4chKpA= gorm.io/gorm v1.25.7 h1:VsD6acwRjz2zFxGO50gPO6AkNs7KKnvfzUjHQhZDz/A= gorm.io/gorm v1.25.7/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= diff --git a/internal/api/api.go b/internal/api/api.go index 9ed41df..9947898 100644 --- a/internal/api/api.go +++ b/internal/api/api.go @@ -117,6 +117,13 @@ func (a *API) setupRoutes() { } // healthHandler 健康检查处理函数 +// @Summary 健康检查 +// @Description 检查API服务是否正常运行 +// @Tags health +// @Accept json +// @Produce json +// @Success 200 {object} map[string]interface{} +// @Router /health [get] func (a *API) healthHandler(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "status": "ok", diff --git a/internal/core/application.go b/internal/core/application.go index 41ca00a..496367d 100644 --- a/internal/core/application.go +++ b/internal/core/application.go @@ -27,6 +27,9 @@ type Application struct { // Config 应用配置 Config *config.Config + + // logger 日志组件实例 + logger *logs.Logger } // NewApplication 创建并返回一个新的核心应用实例 @@ -50,12 +53,11 @@ func NewApplication(cfg *config.Config) *Application { taskExecutor := task.NewExecutor(5) return &Application{ - Storage: store, Storage: store, API: apiInstance, TaskExecutor: taskExecutor, Config: cfg, - logger: logger, + logger: logs.NewLogger(), } } diff --git a/internal/task/task.go b/internal/task/task.go index 7c89171..5ecb5bb 100644 --- a/internal/task/task.go +++ b/internal/task/task.go @@ -194,7 +194,7 @@ func (e *Executor) SubmitTask(task Task) { func (e *Executor) worker(id int) { defer e.wg.Done() - e.logger.Info(fmt.Sprintf("Worker %d started", id)) + e.logger.Info(fmt.Sprintf("Worker (id = %d) started", id)) for { select { diff --git a/main.go b/main.go index dc0a0e9..84504d7 100644 --- a/main.go +++ b/main.go @@ -1,5 +1,10 @@ // Package main 是猪场控制系统的入口点 // 负责初始化核心应用并管理其生命周期 +// @title 猪场管理系统API +// @version 1.0 +// @description 猪场管理系统API文档 +// @host localhost:8086 +// @BasePath / package main import ( diff --git a/vendor/github.com/bytedance/sonic/Makefile b/vendor/github.com/bytedance/sonic/Makefile index 8cc0acf..c672c31 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 cdb32a5..4277201 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,6 +76,10 @@ BenchmarkSetOne_Jsoniter-16 79475 ns/op 163.8 BenchmarkSetOne_Parallel_Sonic-16 850.9 ns/op 15305.31 MB/s 1584 B/op 17 allocs/op BenchmarkSetOne_Parallel_Sjson-16 18194 ns/op 715.77 MB/s 52247 B/op 9 allocs/op BenchmarkSetOne_Parallel_Jsoniter-16 33560 ns/op 388.05 MB/s 45892 B/op 964 allocs/op +BenchmarkLoadNode/LoadAll()-16 11384 ns/op 1143.93 MB/s 6307 B/op 25 allocs/op +BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.68 MB/s 7145 B/op 25 allocs/op +BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op +BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` - [Small](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 keys, 3 layers) ![small benchmarks](./docs/imgs/bench-small.png) @@ -282,6 +286,42 @@ println(string(buf) == string(exp)) // true - iteration: `Values()`, `Properties()`, `ForEach()`, `SortKeys()` - modification: `Set()`, `SetByIndex()`, `Add()` +### Ast.Visitor +Sonic provides an advanced API for fully parsing JSON into non-standard types (neither `struct` not `map[string]interface{}`) without using any intermediate representation (`ast.Node` or `interface{}`). For example, you might have the following types which are like `interface{}` but actually not `interface{}`: +```go +type UserNode interface {} + +// the following types implement the UserNode interface. +type ( + UserNull struct{} + UserBool struct{ Value bool } + UserInt64 struct{ Value int64 } + UserFloat64 struct{ Value float64 } + UserString struct{ Value string } + UserObject struct{ Value map[string]UserNode } + UserArray struct{ Value []UserNode } +) +``` +Sonic provides the following API to return **the preorder traversal of a JSON AST**. The `ast.Visitor` is a SAX style interface which is used in some C++ JSON library. You should implement `ast.Visitor` by yourself and pass it to `ast.Preorder()` method. In your visitor you can make your custom types to represent JSON values. There may be an O(n) space container (such as stack) in your visitor to record the object / array hierarchy. +```go +func Preorder(str string, visitor Visitor, opts *VisitorOptions) error + +type Visitor interface { + OnNull() error + OnBool(v bool) error + OnString(v string) error + OnInt64(v int64, n json.Number) error + OnFloat64(v float64, n json.Number) error + OnObjectBegin(capacity int) error + OnObjectKey(key string) error + OnObjectEnd() error + OnArrayBegin(capacity int) error + OnArrayEnd() error +} +``` + +See [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) for detailed usage. We also implement a demo visitor for `UserNode` in [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go). + ## Compatibility Sonic **DOES NOT** ensure to support all environments, due to the difficulty of developing high-performance codes. For developers who use sonic to build their applications in different environments, we have the following suggestions: @@ -311,7 +351,7 @@ func init() { err := sonic.Pretouch(reflect.TypeOf(v)) // with more CompileOption... - err := sonic.Pretouch(reflect.TypeOf(v), + err := sonic.Pretouch(reflect.TypeOf(v), // If the type is too deep nesting (nesting depth > option.DefaultMaxInlineDepth), // you can set compile recursive loops in Pretouch for better stability in JIT. option.WithCompileRecursiveDepth(loop), @@ -358,5 +398,14 @@ Why? Because `ast.Node` stores its children using `array`: **CAUTION:** `ast.Node` **DOESN'T** ensure concurrent security directly, due to its **lazy-load** design. However, you can call `Node.Load()`/`Node.LoadAll()` to achieve that, which may bring performance reduction while it still works faster than converting to `map` or `interface{}` +### Ast.Node or Ast.Visitor? +For generic data, `ast.Node` should be enough for your needs in most cases. + +However, `ast.Node` is designed for partially processing JSON string. It has some special designs such as lazy-load which might not be suitable for directly parsing the whole JSON string like `Unmarshal()`. Although `ast.Node` is better then `map` or `interface{}`, it's also a kind of intermediate representation after all if your final types are customized and you have to convert the above types to your custom types after parsing. + +For better performance, in previous case the `ast.Visitor` will be the better choice. It performs JSON decoding like `Unmarshal()` and you can directly use your final types to represents a JSON AST without any intermediate representations. + +But `ast.Visitor` is not a very handy API. You might need to write a lot of code to implement your visitor and carefully maintain the tree hierarchy during decoding. Please read the comments in [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) carefully if you decide to use this API. + ## Community Sonic is a subproject of [CloudWeGo](https://www.cloudwego.io/). We are committed to building a cloud native ecosystem. diff --git a/vendor/github.com/bytedance/sonic/README_ZH_CN.md b/vendor/github.com/bytedance/sonic/README_ZH_CN.md index 43fd1d6..dc5cfb5 100644 --- a/vendor/github.com/bytedance/sonic/README_ZH_CN.md +++ b/vendor/github.com/bytedance/sonic/README_ZH_CN.md @@ -6,8 +6,8 @@ ## 依赖 -- Go 1.15~1.20 -- Linux/MacOS/Windows +- Go 1.16~1.20 +- Linux / MacOS / Windows(需要 Go1.17 以上) - Amd64 架构 ## 特色 @@ -79,6 +79,10 @@ BenchmarkSetOne_Jsoniter-16 79475 ns/op 163.8 BenchmarkSetOne_Parallel_Sonic-16 850.9 ns/op 15305.31 MB/s 1584 B/op 17 allocs/op BenchmarkSetOne_Parallel_Sjson-16 18194 ns/op 715.77 MB/s 52247 B/op 9 allocs/op BenchmarkSetOne_Parallel_Jsoniter-16 33560 ns/op 388.05 MB/s 45892 B/op 964 allocs/op +BenchmarkLoadNode/LoadAll()-16 11384 ns/op 1143.93 MB/s 6307 B/op 25 allocs/op +BenchmarkLoadNode_Parallel/LoadAll()-16 5493 ns/op 2370.68 MB/s 7145 B/op 25 allocs/op +BenchmarkLoadNode/Interface()-16 17722 ns/op 734.85 MB/s 13323 B/op 88 allocs/op +BenchmarkLoadNode_Parallel/Interface()-16 10330 ns/op 1260.70 MB/s 15178 B/op 88 allocs/op ``` - [小型](https://github.com/bytedance/sonic/blob/main/testdata/small.go) (400B, 11 个键, 3 层) ![small benchmarks](./docs/imgs/bench-small.png) @@ -298,6 +302,41 @@ println(string(buf) == string(exp)) // true - 迭代: `Values()`, `Properties()`, `ForEach()`, `SortKeys()` - 修改: `Set()`, `SetByIndex()`, `Add()` +### `Ast.Visitor` +Sonic 提供了一个高级的 API 用于直接全量解析 JSON 到非标准容器里 (既不是 `struct` 也不是 `map[string]interface{}`) 且不需要借助任何中间表示 (`ast.Node` 或 `interface{}`)。举个例子,你可能定义了下述的类型,它们看起来像 `interface{}`,但实际上并不是: +```go +type UserNode interface {} + +// the following types implement the UserNode interface. +type ( + UserNull struct{} + UserBool struct{ Value bool } + UserInt64 struct{ Value int64 } + UserFloat64 struct{ Value float64 } + UserString struct{ Value string } + UserObject struct{ Value map[string]UserNode } + UserArray struct{ Value []UserNode } +) +``` +Sonic 提供了下述的 API 来返回 **“对 JSON AST 的前序遍历”**。`ast.Visitor` 是一个 SAX 风格的接口,这在某些 C++ 的 JSON 解析库中被使用到。你需要自己实现一个 `ast.Visitor`,将它传递给 `ast.Preorder()` 方法。在你的实现中你可以使用自定义的类型来表示 JSON 的值。在你的 `ast.Visitor` 中,可能需要有一个 O(n) 空间复杂度的容器(比如说栈)来记录 object / array 的层级。 +```go +func Preorder(str string, visitor Visitor, opts *VisitorOptions) error + +type Visitor interface { + OnNull() error + OnBool(v bool) error + OnString(v string) error + OnInt64(v int64, n json.Number) error + OnFloat64(v float64, n json.Number) error + OnObjectBegin(capacity int) error + OnObjectKey(key string) error + OnObjectEnd() error + OnArrayBegin(capacity int) error + OnArrayEnd() error +} +``` +详细用法参看 [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go),我们还为 `UserNode` 实现了一个示例 `ast.Visitor`,你可以在 [ast/visitor_test.go](https://github.com/bytedance/sonic/blob/main/ast/visitor_test.go) 中找到它。 + ## 兼容性 由于开发高性能代码的困难性, Sonic **不**保证对所有环境的支持。对于在不同环境中使用 Sonic 构建应用程序的开发者,我们有以下建议: @@ -327,7 +366,7 @@ func init() { err := sonic.Pretouch(reflect.TypeOf(v)) // with more CompileOption... - err := sonic.Pretouch(reflect.TypeOf(v), + err := sonic.Pretouch(reflect.TypeOf(v), // If the type is too deep nesting (nesting depth > option.DefaultMaxInlineDepth), // you can set compile recursive loops in Pretouch for better stability in JIT. option.WithCompileRecursiveDepth(loop), @@ -377,6 +416,15 @@ go someFunc(user) **注意**:由于 `ast.Node` 的惰性加载设计,其**不能**直接保证并发安全性,但你可以调用 `Node.Load()` / `Node.LoadAll()` 来实现并发安全。尽管可能会带来性能损失,但仍比转换成 `map` 或 `interface{}` 更为高效。 +### 使用 `ast.Node` 还是 `ast.Visitor`? +对于泛型数据的解析,`ast.Node` 在大多数场景上应该能够满足你的需求。 + +然而,`ast.Node` 是一种针对部分解析 JSON 而设计的泛型容器,它包含一些特殊设计,比如惰性加载,如果你希望像 `Unmarshal()` 那样直接解析整个 JSON,这些设计可能并不合适。尽管 `ast.Node` 相较于 `map` 或 `interface{}` 来说是更好的一种泛型容器,但它毕竟也是一种中间表示,如果你的最终类型是自定义的,你还得在解析完成后将上述类型转化成你自定义的类型。 + +在上述场景中,如果想要有更极致的性能,`ast.Visitor` 会是更好的选择。它采用和 `Unmarshal()` 类似的形式解析 JSON,并且你可以直接使用你的最终类型去表示 JSON AST,而不需要经过额外的任何中间表示。 + +但是,`ast.Visitor` 并不是一个很易用的 API。你可能需要写大量的代码去实现自己的 `ast.Visitor`,并且需要在解析过程中仔细维护树的层级。如果你决定要使用这个 API,请先仔细阅读 [ast/visitor.go](https://github.com/bytedance/sonic/blob/main/ast/visitor.go) 中的注释。 + ## 社区 Sonic 是 [CloudWeGo](https://www.cloudwego.io/) 下的一个子项目。我们致力于构建云原生生态系统。 diff --git a/vendor/github.com/bytedance/sonic/api.go b/vendor/github.com/bytedance/sonic/api.go index a042476..fa738f2 100644 --- a/vendor/github.com/bytedance/sonic/api.go +++ b/vendor/github.com/bytedance/sonic/api.go @@ -183,4 +183,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 3047f59..da6738e 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 b18b5ae..7b475eb 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/decode.go b/vendor/github.com/bytedance/sonic/ast/decode.go index 6a5f6fe..3e08bfc 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 1187e30..263ae5a 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 f4c441a..00a0446 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 03a25b4..3c4187a 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 6b5ad8a..444c8fe 100644 --- a/vendor/github.com/bytedance/sonic/ast/node.go +++ b/vendor/github.com/bytedance/sonic/ast/node.go @@ -51,12 +51,12 @@ 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) ) @@ -66,8 +66,8 @@ var ( ) type Node struct { - v int64 t types.ValueType + l uint p unsafe.Pointer } @@ -82,9 +82,9 @@ func (self *Node) UnmarshalJSON(data []byte) (err error) { // 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 +102,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 +114,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 +126,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 @@ -156,7 +147,7 @@ func (self *Node) Raw() (string, error) { 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 { @@ -181,14 +172,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 +220,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 +274,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 +316,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 +363,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 +385,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 +417,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 +436,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 +485,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 +500,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 +516,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,19 +524,16 @@ 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. @@ -561,20 +548,15 @@ func (self *Node) Set(key string, node Node) (bool, error) { } p := self.Get(key) + if !p.Exists() { - l := self.len() - c := self.cap() - if l == c { - // TODO: maybe change append size in future - c += _DEFAULT_NODE_CAP - mem := unsafe_NewArray(_PAIR_TYPE, c) - memmove(mem, self.p, _PAIR_SIZE * uintptr(l)) - self.p = mem + // self must be fully-loaded here + if self.len() == 0 { + *self = newObject(new(linkedPairs)) } - v := self.pairAt(l) - v.Key = key - v.Value = node - self.setCapAndLen(c, l+1) + s := (*linkedPairs)(self.p) + s.Add(Pair{key, node}) + self.l++ return false, nil } else if err := p.Check(); err != nil { @@ -590,7 +572,8 @@ 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") p, i := self.skipKey(key) @@ -629,12 +612,16 @@ func (self *Node) SetAnyByIndex(index int, val interface{}) (bool, error) { } // UnsetByIndex remove the node of given index +// WARN: After conducting `UnsetXX()`, the node's length WON'T change func (self *Node) UnsetByIndex(index int) (bool, error) { var p *Node it := self.itype() 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 @@ -665,26 +652,17 @@ func (self *Node) Add(node Node) error { return nil } - if err := self.should(types.V_ARRAY, "an array"); err != nil { - return err - } - if err := self.skipAllIndex(); err != nil { + s, err := self.unsafeArray() + if err != nil { return err } - var p rt.GoSlice - p.Cap = self.cap() - p.Len = self.len() - p.Ptr = self.p - - s := *(*[]Node)(unsafe.Pointer(&p)) - s = append(s, node) - - self.p = unsafe.Pointer(&s[0]) - self.setCapAndLen(cap(s), len(s)) + s.Add(node) + self.l++ return nil } + // SetAny wraps val with V_ANY node, and Add() the node. func (self *Node) AddAny(val interface{}) error { return self.Add(NewAny(val)) @@ -730,6 +708,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 +733,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,25 +819,39 @@ 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) { +// +// 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() +// } + +func (self *Node) unsafeMap() (*linkedPairs, error) { if err := self.should(types.V_OBJECT, "an object"); err != nil { return nil, err } if err := self.skipAllKey(); err != nil { return nil, err } - 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() + ps, err := self.unsafeMap() if err != nil { return err } - PairSlice(ps).Sort() + ps.Sort() if recurse { var sc Scanner sc = func(path Sequence, node *Node) bool { @@ -936,15 +932,30 @@ 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) { +// +// 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.should(types.V_ARRAY, "an array"); err != nil { return nil, err } 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 +972,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 +1016,8 @@ func (self *Node) InterfaceUseNumber() (interface{}, error) { case types.V_FALSE : return false, nil case types.V_ARRAY : return self.toGenericArrayUseNumber() case types.V_OBJECT : return self.toGenericObjectUseNumber() - case types.V_STRING : return rt.StrFrom(self.p, self.v), nil - case _V_NUMBER : return toNumber(self), nil + case types.V_STRING : return self.toString(), nil + case _V_NUMBER : return self.toNumber(), nil case _V_ARRAY_LAZY : if err := self.loadAllIndex(); err != nil { return nil, err @@ -1114,13 +1125,14 @@ var ( _PAIR_TYPE = rt.UnpackEface(Pair{}).Type ) -func (self *Node) setCapAndLen(cap int, len int) { - if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { - self.v = int64(len&_LEN_MASK | cap<<_CAP_BITS) - } else { - panic("value does not have a length") - } -} +// func (self *Node) setCapAndLen(cap int, len int) { +// if self.t == types.V_ARRAY || self.t == types.V_OBJECT || self.t == _V_ARRAY_LAZY || self.t == _V_OBJECT_LAZY { +// self.l = uint32(len) +// self.c = uint32(cap) +// } else { +// panic("value does not have a length") +// } +// } func (self *Node) unsafe_next() *Node { return (*Node)(unsafe.Pointer(uintptr(unsafe.Pointer(self)) + _NODE_SIZE)) @@ -1153,37 +1165,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 +1194,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 +1209,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 +1223,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 +1306,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 +1320,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 +1328,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 +1371,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 +1393,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 +1429,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 +1451,27 @@ func (self *Node) toGenericObjectUseNumber() (map[string]interface{}, error) { func (self *Node) toGenericObjectUseNode() (map[string]Node, error) { var nb = self.len() - var out = make(map[string]Node, nb) if nb == 0 { - return out, nil + return map[string]Node{}, nil } - var p = (*Pair)(self.p) - out[p.Key] = p.Value - if err := p.Value.Check(); err != nil { - return nil, err + var s = (*linkedPairs)(self.p) + var out = make(map[string]Node, nb) + s.ToMap(out) + + /* all done */ + return out, nil +} + +func (self *Node) toGenericObjectUsePair() ([]Pair, error) { + var nb = self.len() + if nb == 0 { + return []Pair{}, nil } - 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([]Pair, nb) + s.ToSlice(out) /* all done */ return out, nil @@ -1536,15 +1483,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 +1511,6 @@ func NewAny(any interface{}) Node { default: return Node{ t: _V_ANY, - v: 0, p: unsafe.Pointer(&any), } } @@ -1585,7 +1528,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 +1542,6 @@ func NewBool(v bool) Node { t = types.V_TRUE } return Node{ - v: 0, p: nil, t: t, } @@ -1610,26 +1551,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 +1585,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 +1597,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 +1667,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 +1690,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 0a8e7b0..cb16f20 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 0a9f145..0000000 --- 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 bd6fff6..6f83052 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/bench-arm.sh b/vendor/github.com/bytedance/sonic/bench-arm.sh deleted file mode 100644 index b47d627..0000000 --- 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 1d4c357..0000000 --- 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 701986b..0000000 --- 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 d1905da..0000000 --- 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 015aa62..ec414c0 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 2ef1995..7c28455 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 e6b9463..466d842 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 @@ -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 fa107c7..0ef336b 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. @@ -105,4 +105,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 afa80d5..222eea5 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 @@ -212,23 +216,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/decoder/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go116.go deleted file mode 100644 index a2618bb..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go116.go +++ /dev/null @@ -1,2013 +0,0 @@ -// +build go1.15,!go1.17 - -/* - * 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 decoder - -import ( - `encoding/json` - `fmt` - `math` - `reflect` - `strconv` - `unsafe` - - `github.com/bytedance/sonic/internal/caching` - `github.com/bytedance/sonic/internal/jit` - `github.com/bytedance/sonic/internal/native` - `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 - * - * State Registers: - * - * %rbx : stack base - * %r12 : input pointer - * %r13 : input length - * %r14 : input cursor - * %r15 : value pointer - * - * Error Registers: - * - * %r10 : error type register - * %r11 : error pointer register - */ - -/** Function Prototype & Stack Map - * - * func (s string, ic int, vp unsafe.Pointer, sb *_Stack, fv uint64, sv string) (rc int, err error) - * - * s.buf : (FP) - * s.len : 8(FP) - * ic : 16(FP) - * vp : 24(FP) - * sb : 32(FP) - * fv : 40(FP) - * sv : 56(FP) - * err.vt : 72(FP) - * err.vp : 80(FP) - */ - -const ( - _FP_args = 96 // 96 bytes to pass arguments and return values for this function - _FP_fargs = 80 // 80 bytes for passing arguments to other Go functions - _FP_saves = 40 // 40 bytes for saving the registers before CALL instructions - _FP_locals = 144 // 144 bytes for local variables -) - -const ( - _FP_offs = _FP_fargs + _FP_saves + _FP_locals - _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer - _FP_base = _FP_size + 8 // 8 bytes for the return address -) - -const ( - _IM_null = 0x6c6c756e // 'null' - _IM_true = 0x65757274 // 'true' - _IM_alse = 0x65736c61 // 'alse' ('false' without the 'f') -) - -const ( - _BM_space = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') -) - -const ( - _MODE_JSON = 1 << 3 // base64 mode -) - -const ( - _LB_error = "_error" - _LB_im_error = "_im_error" - _LB_eof_error = "_eof_error" - _LB_type_error = "_type_error" - _LB_field_error = "_field_error" - _LB_range_error = "_range_error" - _LB_stack_error = "_stack_error" - _LB_base64_error = "_base64_error" - _LB_unquote_error = "_unquote_error" - _LB_parsing_error = "_parsing_error" - _LB_parsing_error_v = "_parsing_error_v" - _LB_mismatch_error = "_mismatch_error" -) - -const ( - _LB_char_0_error = "_char_0_error" - _LB_char_1_error = "_char_1_error" - _LB_char_2_error = "_char_2_error" - _LB_char_3_error = "_char_3_error" - _LB_char_4_error = "_char_4_error" - _LB_char_m2_error = "_char_m2_error" - _LB_char_m3_error = "_char_m3_error" -) - -const ( - _LB_skip_one = "_skip_one" - _LB_skip_key_value = "_skip_key_value" -) - -var ( - _AX = jit.Reg("AX") - _CX = jit.Reg("CX") - _DX = jit.Reg("DX") - _DI = jit.Reg("DI") - _SI = jit.Reg("SI") - _BP = jit.Reg("BP") - _SP = jit.Reg("SP") - _R8 = jit.Reg("R8") - _R9 = jit.Reg("R9") - _X0 = jit.Reg("X0") - _X1 = jit.Reg("X1") -) - -var ( - _ST = jit.Reg("BX") - _IP = jit.Reg("R12") - _IL = jit.Reg("R13") - _IC = jit.Reg("R14") - _VP = jit.Reg("R15") -) - -var ( - _R10 = jit.Reg("R10") // used for gcWriteBarrier - _DF = jit.Reg("R10") // reuse R10 in generic decoder for flags - _ET = jit.Reg("R10") - _EP = jit.Reg("R11") -) - -var ( - _ARG_s = _ARG_sp - _ARG_sp = jit.Ptr(_SP, _FP_base) - _ARG_sl = jit.Ptr(_SP, _FP_base + 8) - _ARG_ic = jit.Ptr(_SP, _FP_base + 16) - _ARG_vp = jit.Ptr(_SP, _FP_base + 24) - _ARG_sb = jit.Ptr(_SP, _FP_base + 32) - _ARG_fv = jit.Ptr(_SP, _FP_base + 40) -) - -var ( - _VAR_sv = _VAR_sv_p - _VAR_sv_p = jit.Ptr(_SP, _FP_base + 48) - _VAR_sv_n = jit.Ptr(_SP, _FP_base + 56) - _VAR_vk = jit.Ptr(_SP, _FP_base + 64) -) - -var ( - _RET_rc = jit.Ptr(_SP, _FP_base + 72) - _RET_et = jit.Ptr(_SP, _FP_base + 80) - _RET_ep = jit.Ptr(_SP, _FP_base + 88) -) - -var ( - _VAR_st = _VAR_st_Vt - _VAR_sr = jit.Ptr(_SP, _FP_fargs + _FP_saves) -) - - -var ( - _VAR_st_Vt = jit.Ptr(_SP, _FP_fargs + _FP_saves + 0) - _VAR_st_Dv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) - _VAR_st_Iv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) - _VAR_st_Ep = jit.Ptr(_SP, _FP_fargs + _FP_saves + 24) - _VAR_st_Db = jit.Ptr(_SP, _FP_fargs + _FP_saves + 32) - _VAR_st_Dc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 40) -) - -var ( - _VAR_ss_AX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 48) - _VAR_ss_CX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 56) - _VAR_ss_SI = jit.Ptr(_SP, _FP_fargs + _FP_saves + 64) - _VAR_ss_R8 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 72) - _VAR_ss_R9 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 80) -) - -var ( - _VAR_bs_p = jit.Ptr(_SP, _FP_fargs + _FP_saves + 88) - _VAR_bs_n = jit.Ptr(_SP, _FP_fargs + _FP_saves + 96) - _VAR_bs_LR = jit.Ptr(_SP, _FP_fargs + _FP_saves + 104) -) - -var _VAR_fl = jit.Ptr(_SP, _FP_fargs + _FP_saves + 112) - -var ( - _VAR_et = jit.Ptr(_SP, _FP_fargs + _FP_saves + 120) // save dismatched type - _VAR_ic = jit.Ptr(_SP, _FP_fargs + _FP_saves + 128) // save dismatched position - _VAR_pc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 136) // save skip return pc -) - -type _Assembler struct { - jit.BaseAssembler - p _Program - name string -} - -func newAssembler(p _Program) *_Assembler { - return new(_Assembler).Init(p) -} - -/** Assembler Interface **/ - -func (self *_Assembler) Load() _Decoder { - return ptodec(self.BaseAssembler.Load("decode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) -} - -func (self *_Assembler) Init(p _Program) *_Assembler { - self.p = p - self.BaseAssembler.Init(self.compile) - return self -} - -func (self *_Assembler) compile() { - self.prologue() - self.instrs() - self.epilogue() - self.copy_string() - self.escape_string() - self.escape_string_twice() - self.skip_one() - self.skip_key_value() - self.mismatch_error() - self.type_error() - self.field_error() - self.range_error() - self.stack_error() - self.base64_error() - self.parsing_error() -} - -/** Assembler Stages **/ - -var _OpFuncTab = [256]func(*_Assembler, *_Instr) { - _OP_any : (*_Assembler)._asm_OP_any, - _OP_dyn : (*_Assembler)._asm_OP_dyn, - _OP_str : (*_Assembler)._asm_OP_str, - _OP_bin : (*_Assembler)._asm_OP_bin, - _OP_bool : (*_Assembler)._asm_OP_bool, - _OP_num : (*_Assembler)._asm_OP_num, - _OP_i8 : (*_Assembler)._asm_OP_i8, - _OP_i16 : (*_Assembler)._asm_OP_i16, - _OP_i32 : (*_Assembler)._asm_OP_i32, - _OP_i64 : (*_Assembler)._asm_OP_i64, - _OP_u8 : (*_Assembler)._asm_OP_u8, - _OP_u16 : (*_Assembler)._asm_OP_u16, - _OP_u32 : (*_Assembler)._asm_OP_u32, - _OP_u64 : (*_Assembler)._asm_OP_u64, - _OP_f32 : (*_Assembler)._asm_OP_f32, - _OP_f64 : (*_Assembler)._asm_OP_f64, - _OP_unquote : (*_Assembler)._asm_OP_unquote, - _OP_nil_1 : (*_Assembler)._asm_OP_nil_1, - _OP_nil_2 : (*_Assembler)._asm_OP_nil_2, - _OP_nil_3 : (*_Assembler)._asm_OP_nil_3, - _OP_deref : (*_Assembler)._asm_OP_deref, - _OP_index : (*_Assembler)._asm_OP_index, - _OP_is_null : (*_Assembler)._asm_OP_is_null, - _OP_is_null_quote : (*_Assembler)._asm_OP_is_null_quote, - _OP_map_init : (*_Assembler)._asm_OP_map_init, - _OP_map_key_i8 : (*_Assembler)._asm_OP_map_key_i8, - _OP_map_key_i16 : (*_Assembler)._asm_OP_map_key_i16, - _OP_map_key_i32 : (*_Assembler)._asm_OP_map_key_i32, - _OP_map_key_i64 : (*_Assembler)._asm_OP_map_key_i64, - _OP_map_key_u8 : (*_Assembler)._asm_OP_map_key_u8, - _OP_map_key_u16 : (*_Assembler)._asm_OP_map_key_u16, - _OP_map_key_u32 : (*_Assembler)._asm_OP_map_key_u32, - _OP_map_key_u64 : (*_Assembler)._asm_OP_map_key_u64, - _OP_map_key_f32 : (*_Assembler)._asm_OP_map_key_f32, - _OP_map_key_f64 : (*_Assembler)._asm_OP_map_key_f64, - _OP_map_key_str : (*_Assembler)._asm_OP_map_key_str, - _OP_map_key_utext : (*_Assembler)._asm_OP_map_key_utext, - _OP_map_key_utext_p : (*_Assembler)._asm_OP_map_key_utext_p, - _OP_array_skip : (*_Assembler)._asm_OP_array_skip, - _OP_array_clear : (*_Assembler)._asm_OP_array_clear, - _OP_array_clear_p : (*_Assembler)._asm_OP_array_clear_p, - _OP_slice_init : (*_Assembler)._asm_OP_slice_init, - _OP_slice_append : (*_Assembler)._asm_OP_slice_append, - _OP_object_skip : (*_Assembler)._asm_OP_object_skip, - _OP_object_next : (*_Assembler)._asm_OP_object_next, - _OP_struct_field : (*_Assembler)._asm_OP_struct_field, - _OP_unmarshal : (*_Assembler)._asm_OP_unmarshal, - _OP_unmarshal_p : (*_Assembler)._asm_OP_unmarshal_p, - _OP_unmarshal_text : (*_Assembler)._asm_OP_unmarshal_text, - _OP_unmarshal_text_p : (*_Assembler)._asm_OP_unmarshal_text_p, - _OP_lspace : (*_Assembler)._asm_OP_lspace, - _OP_match_char : (*_Assembler)._asm_OP_match_char, - _OP_check_char : (*_Assembler)._asm_OP_check_char, - _OP_load : (*_Assembler)._asm_OP_load, - _OP_save : (*_Assembler)._asm_OP_save, - _OP_drop : (*_Assembler)._asm_OP_drop, - _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, - _OP_recurse : (*_Assembler)._asm_OP_recurse, - _OP_goto : (*_Assembler)._asm_OP_goto, - _OP_switch : (*_Assembler)._asm_OP_switch, - _OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0, - _OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err, - _OP_go_skip : (*_Assembler)._asm_OP_go_skip, - _OP_add : (*_Assembler)._asm_OP_add, - _OP_check_empty : (*_Assembler)._asm_OP_check_empty, -} - -func (self *_Assembler) instr(v *_Instr) { - if fn := _OpFuncTab[v.op()]; fn != nil { - fn(self, v) - } else { - panic(fmt.Sprintf("invalid opcode: %d", v.op())) - } -} - -func (self *_Assembler) instrs() { - for i, v := range self.p { - self.Mark(i) - self.instr(&v) - self.debug_instr(i, &v) - } -} - -func (self *_Assembler) epilogue() { - self.Mark(len(self.p)) - self.Emit("XORL", _EP, _EP) // XORL EP, EP - self.Emit("MOVQ", _VAR_et, _ET) // MOVQ VAR_et, ET - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ", _LB_mismatch_error) // JNZ _LB_mismatch_error - self.Link(_LB_error) // _error: - self.Emit("MOVQ", _IC, _RET_rc) // MOVQ IC, rc<>+40(FP) - self.Emit("MOVQ", _ET, _RET_et) // MOVQ ET, et<>+48(FP) - self.Emit("MOVQ", _EP, _RET_ep) // MOVQ EP, ep<>+56(FP) - self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP - self.Emit("RET") // RET -} - -func (self *_Assembler) prologue() { - self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP - self.Emit("MOVQ", _ARG_sp, _IP) // MOVQ s.p<>+0(FP), IP - self.Emit("MOVQ", _ARG_sl, _IL) // MOVQ s.l<>+8(FP), IL - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC - self.Emit("MOVQ", _ARG_vp, _VP) // MOVQ vp<>+24(FP), VP - self.Emit("MOVQ", _ARG_sb, _ST) // MOVQ vp<>+32(FP), ST - // initialize digital buffer first - self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_st_Dc) // MOVQ $_MaxDigitNums, ss.Dcap - self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX - self.Emit("MOVQ", _AX, _VAR_st_Db) // MOVQ AX, ss.Dbuf - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _AX, _VAR_et) // MOVQ AX, ss.Dp -} - -/** Function Calling Helpers **/ - -var _REG_go = []obj.Addr { - _ST, - _VP, - _IP, - _IL, - _IC, -} - -func (self *_Assembler) save(r ...obj.Addr) { - for i, v := range r { - if i > _FP_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) - } - } -} - -func (self *_Assembler) load(r ...obj.Addr) { - for i, v := range r { - if i > _FP_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) - } - } -} - -func (self *_Assembler) call(fn obj.Addr) { - self.Emit("MOVQ", fn, _AX) // MOVQ ${fn}, AX - self.Rjmp("CALL", _AX) // CALL AX -} - -func (self *_Assembler) call_go(fn obj.Addr) { - self.save(_REG_go...) // SAVE $REG_go - self.call(fn) // CALL ${fn} - self.load(_REG_go...) // LOAD $REG_go -} - -func (self *_Assembler) call_sf(fn obj.Addr) { - self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI - self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) - self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI - self.Emit("LEAQ", jit.Ptr(_ST, _FsmOffset), _DX) // LEAQ _FsmOffset(ST), DX - self.Emit("MOVQ", _ARG_fv, _CX) - self.call(fn) // CALL ${fn} - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC -} - -func (self *_Assembler) call_vf(fn obj.Addr) { - self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI - self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) - self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI - self.Emit("LEAQ", _VAR_st, _DX) // LEAQ st, DX - self.call(fn) // CALL ${fn} - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC -} - -/** Assembler Error Handlers **/ - -var ( - _F_convT64 = jit.Func(convT64) - _F_error_wrap = jit.Func(error_wrap) - _F_error_type = jit.Func(error_type) - _F_error_field = jit.Func(error_field) - _F_error_value = jit.Func(error_value) - _F_error_mismatch = jit.Func(error_mismatch) -) - -var ( - _I_int8 , _T_int8 = rtype(reflect.TypeOf(int8(0))) - _I_int16 , _T_int16 = rtype(reflect.TypeOf(int16(0))) - _I_int32 , _T_int32 = rtype(reflect.TypeOf(int32(0))) - _I_uint8 , _T_uint8 = rtype(reflect.TypeOf(uint8(0))) - _I_uint16 , _T_uint16 = rtype(reflect.TypeOf(uint16(0))) - _I_uint32 , _T_uint32 = rtype(reflect.TypeOf(uint32(0))) - _I_float32 , _T_float32 = rtype(reflect.TypeOf(float32(0))) -) - -var ( - _T_error = rt.UnpackType(errorType) - _I_base64_CorruptInputError = jit.Itab(_T_error, base64CorruptInputError) -) - -var ( - _V_stackOverflow = jit.Imm(int64(uintptr(unsafe.Pointer(&stackOverflow)))) - _I_json_UnsupportedValueError = jit.Itab(_T_error, reflect.TypeOf(new(json.UnsupportedValueError))) - _I_json_MismatchTypeError = jit.Itab(_T_error, reflect.TypeOf(new(MismatchTypeError))) -) - -func (self *_Assembler) type_error() { - self.Link(_LB_type_error) // _type_error: - self.Emit("MOVQ", _ET, jit.Ptr(_SP, 0)) // MOVQ ET, (SP) - self.call_go(_F_error_type) // CALL_GO error_type - self.Emit("MOVQ", jit.Ptr(_SP, 8), _ET) // MOVQ 8(SP), ET - self.Emit("MOVQ", jit.Ptr(_SP, 16), _EP) // MOVQ 16(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - - -func (self *_Assembler) mismatch_error() { - self.Link(_LB_mismatch_error) // _type_error: - self.Emit("MOVQ", _VAR_et, _ET) // MOVQ _VAR_et, ET - self.Emit("MOVQ", _VAR_ic, _EP) // MOVQ _VAR_ic, EP - self.Emit("MOVQ", _I_json_MismatchTypeError, _AX) // MOVQ _I_json_MismatchTypeError, AX - self.Emit("CMPQ", _ET, _AX) // CMPQ ET, AX - self.Sjmp("JE" , _LB_error) // JE _LB_error - self.Emit("MOVQ", _ARG_sp, _AX) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ", _ARG_sl, _CX) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.Emit("MOVQ", _VAR_ic, _AX) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.Emit("MOVQ", _VAR_et, _CX) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) - self.call_go(_F_error_mismatch) // CALL_GO error_type - self.Emit("MOVQ", jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ", jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) _asm_OP_dismatch_err(p *_Instr) { - self.Emit("MOVQ", _IC, _VAR_ic) - self.Emit("MOVQ", jit.Type(p.vt()), _ET) - self.Emit("MOVQ", _ET, _VAR_et) -} - -func (self *_Assembler) _asm_OP_go_skip(p *_Instr) { - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Xref(p.vi(), 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one -} - -func (self *_Assembler) skip_one() { - self.Link(_LB_skip_one) // _skip: - self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 - self.Rjmp("JMP" , _R9) // JMP (R9) -} - - -func (self *_Assembler) skip_key_value() { - self.Link(_LB_skip_key_value) // _skip: - // skip the key - self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - // match char ':' - self.lspace("_global_1") - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(':')) - self.Sjmp("JNE" , _LB_parsing_error_v) // JNE _parse_error_v - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC - self.lspace("_global_2") - // skip the value - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - // jump back to specified address - self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 - self.Rjmp("JMP" , _R9) // JMP (R9) -} - -func (self *_Assembler) field_error() { - self.Link(_LB_field_error) // _field_error: - self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) - self.call_go(_F_error_field) // CALL_GO error_field - self.Emit("MOVQ" , jit.Ptr(_SP, 16), _ET) // MOVQ 16(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 24), _EP) // MOVQ 24(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) range_error() { - self.Link(_LB_range_error) // _range_error: - self.slice_from(_VAR_st_Ep, 0) // SLICE st.Ep, $0 - self.Emit("MOVQ", _DI, jit.Ptr(_SP, 0)) // MOVQ DI, (SP) - self.Emit("MOVQ", _SI, jit.Ptr(_SP, 8)) // MOVQ SI, 8(SP) - self.Emit("MOVQ", _ET, jit.Ptr(_SP, 16)) // MOVQ ET, 16(SP) - self.Emit("MOVQ", _EP, jit.Ptr(_SP, 24)) // MOVQ EP, 24(SP) - self.call_go(_F_error_value) // CALL_GO error_value - self.Emit("MOVQ", jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ", jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) stack_error() { - self.Link(_LB_stack_error) // _stack_error: - self.Emit("MOVQ", _V_stackOverflow, _EP) // MOVQ ${_V_stackOverflow}, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ ${_I_json_UnsupportedValueError}, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) base64_error() { - self.Link(_LB_base64_error) - self.Emit("NEGQ", _AX) // NEGQ AX - self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.call_go(_F_convT64) // CALL_GO convT64 - self.Emit("MOVQ", jit.Ptr(_SP, 8), _EP) // MOVQ 8(SP), EP - self.Emit("MOVQ", _I_base64_CorruptInputError, _ET) // MOVQ ${itab(base64.CorruptInputError)}, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) parsing_error() { - self.Link(_LB_eof_error) // _eof_error: - self.Emit("MOVQ" , _IL, _IC) // MOVQ IL, IC - self.Emit("MOVL" , jit.Imm(int64(types.ERR_EOF)), _EP) // MOVL ${types.ERR_EOF}, EP - self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error - self.Link(_LB_unquote_error) // _unquote_error: - self.Emit("SUBQ" , _VAR_sr, _SI) // SUBQ sr, SI - self.Emit("SUBQ" , _SI, _IC) // SUBQ IL, IC - self.Link(_LB_parsing_error_v) // _parsing_error_v: - self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP - self.Emit("NEGQ" , _EP) // NEGQ EP - self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error - self.Link(_LB_char_m3_error) // _char_m3_error: - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Link(_LB_char_m2_error) // _char_m2_error: - self.Emit("SUBQ" , jit.Imm(2), _IC) // SUBQ $2, IC - self.Sjmp("JMP" , _LB_char_0_error) // JMP _char_0_error - self.Link(_LB_im_error) // _im_error: - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPB CX, (IP)(IC) - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 1)) // CMPB CX, 1(IP)(IC) - self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error - self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 2)) // CMPB CX, 2(IP)(IC) - self.Sjmp("JNE" , _LB_char_2_error) // JNE _char_2_error - self.Sjmp("JMP" , _LB_char_3_error) // JNE _char_3_error - self.Link(_LB_char_4_error) // _char_4_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_3_error) // _char_3_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_2_error) // _char_2_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_1_error) // _char_1_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_0_error) // _char_0_error: - self.Emit("MOVL" , jit.Imm(int64(types.ERR_INVALID_CHAR)), _EP) // MOVL ${types.ERR_INVALID_CHAR}, EP - self.Link(_LB_parsing_error) // _parsing_error: - self.Emit("MOVOU", _ARG_s, _X0) // MOVOU s, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) - self.Emit("MOVQ" , _IC, jit.Ptr(_SP, 16)) // MOVQ IC, 16(SP) - self.Emit("MOVQ" , _EP, jit.Ptr(_SP, 24)) // MOVQ EP, 24(SP) - self.call_go(_F_error_wrap) // CALL_GO error_wrap - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -/** Memory Management Routines **/ - -var ( - _T_byte = jit.Type(byteType) - _F_mallocgc = jit.Func(mallocgc) -) - -func (self *_Assembler) malloc(nb obj.Addr, ret obj.Addr) { - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _T_byte, _CX) // MOVQ ${type(byte)}, CX - self.Emit("MOVQ", nb, jit.Ptr(_SP, 0)) // MOVQ ${nb}, (SP) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.call_go(_F_mallocgc) // CALL_GO mallocgc - self.Emit("MOVQ", jit.Ptr(_SP, 24), ret) // MOVQ 24(SP), ${ret} -} - -func (self *_Assembler) valloc(vt reflect.Type, ret obj.Addr) { - self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ", jit.Type(vt), _AX) // MOVQ ${vt}, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.Emit("MOVB", jit.Imm(1), jit.Ptr(_SP, 16)) // MOVB $1, 16(SP) - self.call_go(_F_mallocgc) // CALL_GO mallocgc - self.Emit("MOVQ", jit.Ptr(_SP, 24), ret) // MOVQ 24(SP), ${ret} -} - -func (self *_Assembler) vfollow(vt reflect.Type) { - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} - self.valloc(vt, _AX) // VALLOC ${vt}, AX - self.WritePtrAX(1, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Link("_end_{n}") // _end_{n}: - self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP -} - -/** Value Parsing Routines **/ - -var ( - _F_vstring = jit.Imm(int64(native.S_vstring)) - _F_vnumber = jit.Imm(int64(native.S_vnumber)) - _F_vsigned = jit.Imm(int64(native.S_vsigned)) - _F_vunsigned = jit.Imm(int64(native.S_vunsigned)) -) - -func (self *_Assembler) check_err(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ" , _VAR_st_Vt, _AX) // MOVQ st.Vt, AX - self.Emit("TESTQ", _AX, _AX) // CMPQ AX, ${native.V_STRING} - // try to skip the value - if vt != nil { - self.Sjmp("JNS" , "_check_err_{n}") // JNE _parsing_error_v - self.Emit("MOVQ", jit.Type(vt), _ET) - self.Emit("MOVQ", _ET, _VAR_et) - if pin2 != -1 { - self.Emit("SUBQ", jit.Imm(1), _BP) - self.Emit("MOVQ", _BP, _VAR_ic) - self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 - self.Xref(pin2, 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_key_value) - } else { - self.Emit("MOVQ", _BP, _VAR_ic) - self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref(pin, 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - } - self.Link("_check_err_{n}") - } else { - self.Sjmp("JS" , _LB_parsing_error_v) // JNE _parsing_error_v - } -} - -func (self *_Assembler) check_eof(d int64) { - if d == 1 { - self.Emit("CMPQ", _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - } else { - self.Emit("LEAQ", jit.Ptr(_IC, d), _AX) // LEAQ ${d}(IC), AX - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - } -} - -func (self *_Assembler) parse_string() { // parse_string has a validate flag params in the last - self.Emit("MOVQ", _ARG_fv, _CX) - self.call_vf(_F_vstring) - self.check_err(nil, "", -1) -} - -func (self *_Assembler) parse_number(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BP) - self.call_vf(_F_vnumber) // call vnumber - self.check_err(vt, pin, pin2) -} - -func (self *_Assembler) parse_signed(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BP) - self.call_vf(_F_vsigned) - self.check_err(vt, pin, pin2) -} - -func (self *_Assembler) parse_unsigned(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BP) - self.call_vf(_F_vunsigned) - self.check_err(vt, pin, pin2) -} - -// Pointer: DI, Size: SI, Return: R9 -func (self *_Assembler) copy_string() { - self.Link("_copy_string") - self.Emit("MOVQ", _DI, _VAR_bs_p) - self.Emit("MOVQ", _SI, _VAR_bs_n) - self.Emit("MOVQ", _R9, _VAR_bs_LR) - self.malloc(_SI, _AX) - self.Emit("MOVQ", _AX, _VAR_sv_p) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) - self.Emit("MOVQ", _VAR_bs_p, _DI) - self.Emit("MOVQ", _DI, jit.Ptr(_SP, 8)) - self.Emit("MOVQ", _VAR_bs_n, _SI) - self.Emit("MOVQ", _SI, jit.Ptr(_SP, 16)) - self.call_go(_F_memmove) - self.Emit("MOVQ", _VAR_sv_p, _DI) - self.Emit("MOVQ", _VAR_bs_n, _SI) - self.Emit("MOVQ", _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -// Pointer: DI, Size: SI, Return: R9 -func (self *_Assembler) escape_string() { - self.Link("_escape_string") - self.Emit("MOVQ" , _DI, _VAR_bs_p) - self.Emit("MOVQ" , _SI, _VAR_bs_n) - self.Emit("MOVQ" , _R9, _VAR_bs_LR) - self.malloc(_SI, _DX) // MALLOC SI, DX - self.Emit("MOVQ" , _DX, _VAR_sv_p) - self.Emit("MOVQ" , _VAR_bs_p, _DI) - self.Emit("MOVQ" , _VAR_bs_n, _SI) - self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX - self.Emit("XORL" , _R8, _R8) // XORL R8, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, fv - self.Emit("SETCC", _R8) // SETCC R8 - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 - self.call(_F_unquote) // CALL unquote - self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI - self.Emit("ADDQ" , jit.Imm(1), _SI) // ADDQ $1, SI - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error - self.Emit("MOVQ" , _AX, _SI) - self.Emit("MOVQ" , _VAR_sv_p, _DI) - self.Emit("MOVQ" , _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -func (self *_Assembler) escape_string_twice() { - self.Link("_escape_string_twice") - self.Emit("MOVQ" , _DI, _VAR_bs_p) - self.Emit("MOVQ" , _SI, _VAR_bs_n) - self.Emit("MOVQ" , _R9, _VAR_bs_LR) - self.malloc(_SI, _DX) // MALLOC SI, DX - self.Emit("MOVQ" , _DX, _VAR_sv_p) - self.Emit("MOVQ" , _VAR_bs_p, _DI) - self.Emit("MOVQ" , _VAR_bs_n, _SI) - self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX - self.Emit("MOVL" , jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, AX - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("SETCC", _AX) // SETCC AX - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _AX) // SHLQ ${types.B_UNICODE_REPLACE}, AX - self.Emit("ORQ" , _AX, _R8) // ORQ AX, R8 - self.call(_F_unquote) // CALL unquote - self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI - self.Emit("ADDQ" , jit.Imm(3), _SI) // ADDQ $3, SI - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error - self.Emit("MOVQ" , _AX, _SI) - self.Emit("MOVQ" , _VAR_sv_p, _DI) - self.Emit("MOVQ" , _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -/** Range Checking Routines **/ - -var ( - _V_max_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_max_f32)))) - _V_min_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_min_f32)))) -) - -var ( - _Vp_max_f32 = new(float64) - _Vp_min_f32 = new(float64) -) - -func init() { - *_Vp_max_f32 = math.MaxFloat32 - *_Vp_min_f32 = -math.MaxFloat32 -} - -func (self *_Assembler) range_single() { - self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD 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.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 -} - -func (self *_Assembler) range_signed(i *rt.GoItab, t *rt.GoType, a int64, b int64) { - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ", jit.Gitab(i), _ET) // MOVQ ${i}, ET - self.Emit("MOVQ", jit.Gtype(t), _EP) // MOVQ ${t}, EP - self.Emit("CMPQ", _AX, jit.Imm(a)) // CMPQ AX, ${a} - self.Sjmp("JL" , _LB_range_error) // JL _range_error - self.Emit("CMPQ", _AX, jit.Imm(b)) // CMPQ AX, ${B} - self.Sjmp("JG" , _LB_range_error) // JG _range_error -} - -func (self *_Assembler) range_unsigned(i *rt.GoItab, t *rt.GoType, v uint64) { - self.Emit("MOVQ" , _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET - self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_range_error) // JS _range_error - self.Emit("CMPQ" , _AX, jit.Imm(int64(v))) // CMPQ AX, ${a} - self.Sjmp("JA" , _LB_range_error) // JA _range_error -} - -/** String Manipulating Routines **/ - -var ( - _F_unquote = jit.Imm(int64(native.S_unquote)) -) - -func (self *_Assembler) slice_from(p obj.Addr, d int64) { - self.Emit("MOVQ", p, _SI) // MOVQ ${p}, SI - self.slice_from_r(_SI, d) // SLICE_R SI, ${d} -} - -func (self *_Assembler) slice_from_r(p obj.Addr, d int64) { - self.Emit("LEAQ", jit.Sib(_IP, p, 1, 0), _DI) // LEAQ (IP)(${p}), DI - self.Emit("NEGQ", p) // NEGQ ${p} - self.Emit("LEAQ", jit.Sib(_IC, p, 1, d), _SI) // LEAQ d(IC)(${p}), SI -} - -func (self *_Assembler) unquote_once(p obj.Addr, n obj.Addr, stack bool, copy bool) { - self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 - self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 - self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_once_write_{n}", 4) - self.Sjmp("JMP" , "_escape_string") - self.Link("_noescape_{n}") // _noescape_{n}: - if copy { - self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_unquote_once_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_once_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - } - self.Link("_unquote_once_write_{n}") - self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} - if stack { - self.Emit("MOVQ", _DI, p) - } else { - self.WriteRecNotAX(10, _DI, p, false, false) - } -} - -func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) { - self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 - self.Sjmp("JE" , _LB_eof_error) // JE _eof_error - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -3), jit.Imm('\\')) // CMPB -3(IP)(IC), $'\\' - self.Sjmp("JNE" , _LB_char_m3_error) // JNE _char_m3_error - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -2), jit.Imm('"')) // CMPB -2(IP)(IC), $'"' - self.Sjmp("JNE" , _LB_char_m2_error) // JNE _char_m2_error - self.slice_from(_VAR_st_Iv, -3) // SLICE st.Iv, $-3 - self.Emit("MOVQ" , _SI, _AX) // MOVQ SI, AX - self.Emit("ADDQ" , _VAR_st_Iv, _AX) // ADDQ st.Iv, AX - self.Emit("CMPQ" , _VAR_st_Ep, _AX) // CMPQ st.Ep, AX - self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_twice_write_{n}", 4) - self.Sjmp("JMP" , "_escape_string_twice") - self.Link("_noescape_{n}") // _noescape_{n}: - self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_unquote_twice_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_twice_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - self.Link("_unquote_twice_write_{n}") - self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} - if stack { - self.Emit("MOVQ", _DI, p) - } else { - self.WriteRecNotAX(12, _DI, p, false, false) - } -} - -/** Memory Clearing Routines **/ - -var ( - _F_memclrHasPointers = jit.Func(memclrHasPointers) - _F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers) -) - -func (self *_Assembler) mem_clear_fn(ptrfree bool) { - if !ptrfree { - self.call_go(_F_memclrHasPointers) - } else { - self.call_go(_F_memclrNoHeapPointers) - } -} - -func (self *_Assembler) mem_clear_rem(size int64, ptrfree bool) { - self.Emit("MOVQ", jit.Imm(size), _CX) // MOVQ ${size}, CX - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _AX) // MOVQ (ST)(AX), AX - self.Emit("SUBQ", _VP, _AX) // SUBQ VP, AX - self.Emit("ADDQ", _AX, _CX) // ADDQ AX, CX - self.Emit("MOVQ", _VP, jit.Ptr(_SP, 0)) // MOVQ VP, (SP) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.mem_clear_fn(ptrfree) // CALL_GO memclr{Has,NoHeap}Pointers -} - -/** Map Assigning Routines **/ - -var ( - _F_mapassign = jit.Func(mapassign) - _F_mapassign_fast32 = jit.Func(mapassign_fast32) - _F_mapassign_faststr = jit.Func(mapassign_faststr) - _F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr) -) - -var ( - _F_decodeJsonUnmarshaler obj.Addr - _F_decodeTextUnmarshaler obj.Addr -) - -func init() { - _F_decodeJsonUnmarshaler = jit.Func(decodeJsonUnmarshaler) - _F_decodeTextUnmarshaler = jit.Func(decodeTextUnmarshaler) -} - -func (self *_Assembler) mapaccess_ptr(t reflect.Type) { - if rt.MapType(rt.UnpackType(t)).IndirectElem() { - self.vfollow(t.Elem()) - } -} - -func (self *_Assembler) mapassign_std(t reflect.Type, v obj.Addr) { - self.Emit("LEAQ", v, _AX) // LEAQ ${v}, AX - self.mapassign_call(t, _F_mapassign) // MAPASSIGN ${t}, mapassign -} - -func (self *_Assembler) mapassign_str_fast(t reflect.Type, p obj.Addr, n obj.Addr) { - self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) - self.Emit("MOVQ", p, jit.Ptr(_SP, 16)) // MOVQ ${p}, 16(SP) - self.Emit("MOVQ", n, jit.Ptr(_SP, 24)) // MOVQ ${n}, 24(SP) - self.call_go(_F_mapassign_faststr) // CALL_GO ${fn} - self.Emit("MOVQ", jit.Ptr(_SP, 32), _VP) // MOVQ 32(SP), VP - self.mapaccess_ptr(t) -} - -func (self *_Assembler) mapassign_call(t reflect.Type, fn obj.Addr) { - self.Emit("MOVQ", jit.Type(t), _SI) // MOVQ ${t}, SI - self.Emit("MOVQ", _SI, jit.Ptr(_SP, 0)) // MOVQ SI, (SP) - self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.call_go(fn) // CALL_GO ${fn} - self.Emit("MOVQ", jit.Ptr(_SP, 24), _VP) // MOVQ 24(SP), VP -} - -func (self *_Assembler) mapassign_fastx(t reflect.Type, fn obj.Addr) { - self.mapassign_call(t, fn) - self.mapaccess_ptr(t) -} - -func (self *_Assembler) mapassign_utext(t reflect.Type, addressable bool) { - pv := false - vk := t.Key() - tk := t.Key() - - /* deref pointer if needed */ - if vk.Kind() == reflect.Ptr { - pv = true - vk = vk.Elem() - } - - /* addressable value with pointer receiver */ - if addressable { - pv = false - tk = reflect.PtrTo(tk) - } - - /* allocate the key, and call the unmarshaler */ - self.valloc(vk, _DI) // VALLOC ${vk}, DI - // must spill vk pointer since next call_go may invoke GC - self.Emit("MOVQ" , _DI, _VAR_vk) - self.Emit("MOVQ" , jit.Type(tk), _AX) // MOVQ ${tk}, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , _DI, jit.Ptr(_SP, 8)) // MOVQ DI, 8(SP) - self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 16)) // MOVOU X0, 16(SP) - self.call_go(_F_decodeTextUnmarshaler) // CALL_GO decodeTextUnmarshaler - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.Emit("MOVQ" , _VAR_vk, _AX) - - /* select the correct assignment function */ - if !pv { - self.mapassign_call(t, _F_mapassign) - } else { - self.mapassign_fastx(t, _F_mapassign_fast64ptr) - } -} - -/** External Unmarshaler Routines **/ - -var ( - _F_skip_one = jit.Imm(int64(native.S_skip_one)) - _F_skip_number = jit.Imm(int64(native.S_skip_number)) -) - -func (self *_Assembler) unmarshal_json(t reflect.Type, deref bool) { - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - self.slice_from_r(_AX, 0) // SLICE_R AX, $0 - self.Emit("MOVQ" , _DI, _VAR_sv_p) // MOVQ DI, sv.p - self.Emit("MOVQ" , _SI, _VAR_sv_n) // MOVQ SI, sv.n - self.unmarshal_func(t, _F_decodeJsonUnmarshaler, deref) // UNMARSHAL json, ${t}, ${deref} -} - -func (self *_Assembler) unmarshal_text(t reflect.Type, deref bool) { - self.parse_string() // PARSE STRING - self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - self.unmarshal_func(t, _F_decodeTextUnmarshaler, deref) // UNMARSHAL text, ${t}, ${deref} -} - -func (self *_Assembler) unmarshal_func(t reflect.Type, fn obj.Addr, deref bool) { - pt := t - vk := t.Kind() - - /* allocate the field if needed */ - if deref && vk == reflect.Ptr { - self.Emit("MOVQ" , _VP, _AX) // MOVQ VP, AX - self.Emit("MOVQ" , jit.Ptr(_AX, 0), _AX) // MOVQ (AX), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_deref_{n}") // JNZ _deref_{n} - self.valloc(t.Elem(), _AX) // VALLOC ${t.Elem()}, AX - self.WritePtrAX(3, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Link("_deref_{n}") // _deref_{n}: - } - - /* set value type */ - self.Emit("MOVQ", jit.Type(pt), _CX) // MOVQ ${pt}, CX - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 0)) // MOVQ CX, (SP) - - /* set value pointer */ - if deref && vk == reflect.Ptr { - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - } else { - self.Emit("MOVQ", _VP, jit.Ptr(_SP, 8)) // MOVQ VP, 8(SP) - } - - /* set the source string and call the unmarshaler */ - self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 16)) // MOVOU X0, 16(SP) - self.call_go(fn) // CALL_GO ${fn} - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -/** Dynamic Decoding Routine **/ - -var ( - _F_decodeTypedPointer obj.Addr -) - -func init() { - _F_decodeTypedPointer = jit.Func(decodeTypedPointer) -} - -func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) { - self.Emit("MOVQ" , _ARG_fv, _CX) // MOVQ fv, CX - self.Emit("MOVOU", _ARG_sp, _X0) // MOVOU sp, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 0)) // MOVOU X0, (SP) - self.Emit("MOVQ" , _IC, jit.Ptr(_SP, 16)) // MOVQ IC, 16(SP) - self.Emit("MOVQ" , vt, jit.Ptr(_SP, 24)) // MOVQ ${vt}, 24(SP) - self.Emit("MOVQ" , vp, jit.Ptr(_SP, 32)) // MOVQ ${vp}, 32(SP) - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 40)) // MOVQ ST, 40(SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 48)) // MOVQ CX, 48(SP) - self.call_go(_F_decodeTypedPointer) // CALL_GO decodeTypedPointer - self.Emit("MOVQ" , jit.Ptr(_SP, 64), _ET) // MOVQ 64(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 72), _EP) // MOVQ 72(SP), EP - self.Emit("MOVQ" , jit.Ptr(_SP, 56), _IC) // MOVQ 56(SP), IC - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JE", "_decode_dynamic_end_{n}") // JE, _decode_dynamic_end_{n} - self.Emit("MOVQ", _I_json_MismatchTypeError, _AX) // MOVQ _I_json_MismatchTypeError, AX - self.Emit("CMPQ", _ET, _AX) // CMPQ ET, AX - self.Sjmp("JNE" , _LB_error) // JNE LB_error - self.Emit("MOVQ", _EP, _VAR_ic) // MOVQ EP, VAR_ic - self.Emit("MOVQ", _ET, _VAR_et) // MOVQ ET, VAR_et - self.Link("_decode_dynamic_end_{n}") - -} - -/** OpCode Assembler Functions **/ - -var ( - _F_memequal = jit.Func(memequal) - _F_memmove = jit.Func(memmove) - _F_growslice = jit.Func(growslice) - _F_makeslice = jit.Func(makeslice) - _F_makemap_small = jit.Func(makemap_small) - _F_mapassign_fast64 = jit.Func(mapassign_fast64) -) - -var ( - _F_lspace = jit.Imm(int64(native.S_lspace)) - _F_strhash = jit.Imm(int64(caching.S_strhash)) -) - -var ( - _F_b64decode = jit.Imm(int64(_subr__b64decode)) - _F_decodeValue = jit.Imm(int64(_subr_decode_value)) -) - -var ( - _F_skip_array = jit.Imm(int64(native.S_skip_array)) - _F_skip_object = jit.Imm(int64(native.S_skip_object)) -) - -var ( - _F_FieldMap_GetCaseInsensitive obj.Addr - _Empty_Slice = make([]byte, 0) - _Zero_Base = int64(uintptr(((*rt.GoSlice)(unsafe.Pointer(&_Empty_Slice))).Ptr)) -) - -const ( - _MODE_AVX2 = 1 << 2 -) - -const ( - _Fe_ID = int64(unsafe.Offsetof(caching.FieldEntry{}.ID)) - _Fe_Name = int64(unsafe.Offsetof(caching.FieldEntry{}.Name)) - _Fe_Hash = int64(unsafe.Offsetof(caching.FieldEntry{}.Hash)) -) - -const ( - _Vk_Ptr = int64(reflect.Ptr) - _Gt_KindFlags = int64(unsafe.Offsetof(rt.GoType{}.KindFlags)) -) - -func init() { - _F_FieldMap_GetCaseInsensitive = jit.Func((*caching.FieldMap).GetCaseInsensitive) -} - -func (self *_Assembler) _asm_OP_any(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX - self.Emit("TESTQ" , _CX, _CX) // TESTQ CX, CX - self.Sjmp("JZ" , "_decode_{n}") // JZ _decode_{n} - self.Emit("CMPQ" , _CX, _VP) // CMPQ CX, VP - self.Sjmp("JE" , "_decode_{n}") // JE _decode_{n} - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX - self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX - self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} - self.Sjmp("JNE" , "_decode_{n}") // JNE _decode_{n} - self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI - self.decode_dynamic(_AX, _DI) // DECODE AX, DI - self.Sjmp("JMP" , "_decode_end_{n}") // JMP _decode_end_{n} - self.Link("_decode_{n}") // _decode_{n}: - self.Emit("MOVQ" , _ARG_fv, _DF) // MOVQ fv, DF - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) - self.call(_F_decodeValue) // CALL decodeValue - self.Emit("TESTQ" , _EP, _EP) // TESTQ EP, EP - self.Sjmp("JNZ" , _LB_parsing_error) // JNZ _parsing_error - self.Link("_decode_end_{n}") // _decode_end_{n}: -} - -func (self *_Assembler) _asm_OP_dyn(p *_Instr) { - self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET - self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0 - self.Sjmp("JE" , _LB_type_error) // JE _type_error - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("MOVQ" , jit.Ptr(_AX, 8), _AX) // MOVQ 8(AX), AX - self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX - self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX - self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} - self.Sjmp("JNE" , _LB_type_error) // JNE _type_error - self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI - self.decode_dynamic(_AX, _DI) // DECODE AX, DI - self.Link("_decode_end_{n}") // _decode_end_{n}: -} - -func (self *_Assembler) _asm_OP_str(_ *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP) -} - -func (self *_Assembler) _asm_OP_bin(_ *_Instr) { - self.parse_string() // PARSE STRING - self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 - self.Emit("MOVQ" , _DI, jit.Ptr(_VP, 0)) // MOVQ DI, (VP) - self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) - self.Emit("SHRQ" , jit.Imm(2), _SI) // SHRQ $2, SI - self.Emit("LEAQ" , jit.Sib(_SI, _SI, 2, 0), _SI) // LEAQ (SI)(SI*2), SI - self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) - self.malloc(_SI, _SI) // MALLOC SI, SI - - // TODO: due to base64x's bug, only use AVX mode now - self.Emit("MOVL", jit.Imm(_MODE_JSON), _CX) // MOVL $_MODE_JSON, CX - - /* call the decoder */ - self.Emit("XORL" , _DX, _DX) // XORL DX, DX - self.Emit("MOVQ" , _VP, _DI) // MOVQ VP, DI - - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _R9) // MOVQ SI, (VP) - self.WriteRecNotAX(4, _SI, jit.Ptr(_VP, 0), true, false) // XCHGQ SI, (VP) - self.Emit("MOVQ" , _R9, _SI) - - self.Emit("XCHGQ", _DX, jit.Ptr(_VP, 8)) // XCHGQ DX, 8(VP) - self.call(_F_b64decode) // CALL b64decode - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_base64_error) // JS _base64_error - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) -} - -func (self *_Assembler) _asm_OP_bool(_ *_Instr) { - self.Emit("LEAQ", jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('f')) // CMPB (IP)(IC), $'f' - self.Sjmp("JE" , "_false_{n}") // JE _false_{n} - self.Emit("MOVL", jit.Imm(_IM_true), _CX) // MOVL $"true", CX - self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) - self.Sjmp("JE" , "_bool_true_{n}") - - // try to skip the value - self.Emit("MOVQ", _IC, _VAR_ic) - self.Emit("MOVQ", _T_bool, _ET) - self.Emit("MOVQ", _ET, _VAR_et) - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_end_{n}", 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - - self.Link("_bool_true_{n}") - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.Emit("MOVB", jit.Imm(1), jit.Ptr(_VP, 0)) // MOVB $1, (VP) - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_false_{n}") // _false_{n}: - self.Emit("ADDQ", jit.Imm(1), _AX) // ADDQ $1, AX - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - self.Emit("MOVL", jit.Imm(_IM_alse), _CX) // MOVL $"alse", CX - self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) - self.Sjmp("JNE" , _LB_im_error) // JNE _im_error - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_num(_ *_Instr) { - self.Emit("MOVQ", jit.Imm(0), _VAR_fl) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) - self.Emit("MOVQ", _IC, _BP) - self.Sjmp("JNE", "_skip_number_{n}") - self.Emit("MOVQ", jit.Imm(1), _VAR_fl) - self.Emit("ADDQ", jit.Imm(1), _IC) - self.Link("_skip_number_{n}") - - /* call skip_number */ - self.call_sf(_F_skip_number) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNS" , "_num_next_{n}") - - /* call skip one */ - self.Emit("MOVQ", _BP, _VAR_ic) - self.Emit("MOVQ", _T_number, _ET) - self.Emit("MOVQ", _ET, _VAR_et) - self.Byte(0x4c, 0x8d, 0x0d) - self.Sref("_num_end_{n}", 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - - /* assgin string */ - self.Link("_num_next_{n}") - self.slice_from_r(_AX, 0) - self.Emit("BTQ", jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_num_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_num_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - self.Link("_num_write_{n}") - self.Emit("MOVQ", _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) - self.WriteRecNotAX(13, _DI, jit.Ptr(_VP, 0), false, false) - - /* check if quoted */ - self.Emit("CMPQ", _VAR_fl, jit.Imm(1)) - self.Sjmp("JNE", "_num_end_{n}") - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) - self.Sjmp("JNE", _LB_char_0_error) - self.Emit("ADDQ", jit.Imm(1), _IC) - self.Link("_num_end_{n}") -} - -func (self *_Assembler) _asm_OP_i8(ins *_Instr) { - var pin = "_i8_end_{n}" - self.parse_signed(int8Type, pin, -1) // PARSE int8 - self.range_signed(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 - self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i16(ins *_Instr) { - var pin = "_i16_end_{n}" - self.parse_signed(int16Type, pin, -1) // PARSE int16 - self.range_signed(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 - self.Emit("MOVW", _AX, jit.Ptr(_VP, 0)) // MOVW AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i32(ins *_Instr) { - var pin = "_i32_end_{n}" - self.parse_signed(int32Type, pin, -1) // PARSE int32 - self.range_signed(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 - self.Emit("MOVL", _AX, jit.Ptr(_VP, 0)) // MOVL AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i64(ins *_Instr) { - var pin = "_i64_end_{n}" - self.parse_signed(int64Type, pin, -1) // PARSE int64 - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u8(ins *_Instr) { - var pin = "_u8_end_{n}" - self.parse_unsigned(uint8Type, pin, -1) // PARSE uint8 - self.range_unsigned(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 - self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u16(ins *_Instr) { - var pin = "_u16_end_{n}" - self.parse_unsigned(uint16Type, pin, -1) // PARSE uint16 - self.range_unsigned(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 - self.Emit("MOVW", _AX, jit.Ptr(_VP, 0)) // MOVW AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u32(ins *_Instr) { - var pin = "_u32_end_{n}" - self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32 - self.range_unsigned(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 - self.Emit("MOVL", _AX, jit.Ptr(_VP, 0)) // MOVL AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u64(ins *_Instr) { - var pin = "_u64_end_{n}" - self.parse_unsigned(uint64Type, pin, -1) // PARSE uint64 - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_f32(ins *_Instr) { - var pin = "_f32_end_{n}" - self.parse_number(float32Type, pin, -1) // PARSE NUMBER - self.range_single() // RANGE float32 - self.Emit("MOVSS", _X0, jit.Ptr(_VP, 0)) // MOVSS X0, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_f64(ins *_Instr) { - var pin = "_f64_end_{n}" - self.parse_number(float64Type, pin, -1) // PARSE NUMBER - self.Emit("MOVSD", _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 - self.Emit("MOVSD", _X0, jit.Ptr(_VP, 0)) // MOVSD X0, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_unquote(ins *_Instr) { - self.check_eof(2) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('\\')) // CMPB (IP)(IC), $'\\' - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 1), jit.Imm('"')) // CMPB 1(IP)(IC), $'"' - self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error - self.Emit("ADDQ", jit.Imm(2), _IC) // ADDQ $2, IC - self.parse_string() // PARSE STRING - self.unquote_twice(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false) // UNQUOTE twice, (VP), 8(VP) -} - -func (self *_Assembler) _asm_OP_nil_1(_ *_Instr) { - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) -} - -func (self *_Assembler) _asm_OP_nil_2(_ *_Instr) { - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) -} - -func (self *_Assembler) _asm_OP_nil_3(_ *_Instr) { - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU X0, 16(VP) -} - -func (self *_Assembler) _asm_OP_deref(p *_Instr) { - self.vfollow(p.vt()) -} - -func (self *_Assembler) _asm_OP_index(p *_Instr) { - self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ ${p.vi()}, AX - self.Emit("ADDQ", _AX, _VP) // ADDQ _AX, _VP -} - -func (self *_Assembler) _asm_OP_is_null(p *_Instr) { - self.Emit("LEAQ" , jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , "_not_null_{n}") // JA _not_null_{n} - self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} - self.Link("_not_null_{n}") // _not_null_{n}: -} - -func (self *_Assembler) _asm_OP_is_null_quote(p *_Instr) { - self.Emit("LEAQ" , jit.Ptr(_IC, 5), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , "_not_null_quote_{n}") // JA _not_null_quote_{n} - self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" - self.Sjmp("JNE" , "_not_null_quote_{n}") // JNE _not_null_quote_{n} - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 4), jit.Imm('"')) // CMPB 4(IP)(IC), $'"' - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} - self.Link("_not_null_quote_{n}") // _not_null_quote_{n}: -} - -func (self *_Assembler) _asm_OP_map_init(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} - self.call_go(_F_makemap_small) // CALL_GO makemap_small - self.Emit("MOVQ" , jit.Ptr(_SP, 0), _AX) // MOVQ (SP), AX - self.WritePtrAX(6, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Link("_end_{n}") // _end_{n}: - self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP -} - -func (self *_Assembler) _asm_OP_map_key_i8(p *_Instr) { - self.parse_signed(int8Type, "", p.vi()) // PARSE int8 - self.range_signed(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int8, mapassign, st.Iv -} - -func (self *_Assembler) _asm_OP_map_key_i16(p *_Instr) { - self.parse_signed(int16Type, "", p.vi()) // PARSE int16 - self.range_signed(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int16, mapassign, st.Iv -} - -func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) { - self.parse_signed(int32Type, "", p.vi()) // PARSE int32 - self.range_signed(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv - } else { - self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN int32, mapassign_fast32 - } -} - -func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) { - self.parse_signed(int64Type, "", p.vi()) // PARSE int64 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv - } else { - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN int64, mapassign_fast64 - } -} - -func (self *_Assembler) _asm_OP_map_key_u8(p *_Instr) { - self.parse_unsigned(uint8Type, "", p.vi()) // PARSE uint8 - self.range_unsigned(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint8, vt.Iv -} - -func (self *_Assembler) _asm_OP_map_key_u16(p *_Instr) { - self.parse_unsigned(uint16Type, "", p.vi()) // PARSE uint16 - self.range_unsigned(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint16, vt.Iv -} - -func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) { - self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32 - self.range_unsigned(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv - } else { - self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN uint32, mapassign_fast32 - } -} - -func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) { - self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv - } else { - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN uint64, mapassign_fast64 - } -} - -func (self *_Assembler) _asm_OP_map_key_f32(p *_Instr) { - self.parse_number(float32Type, "", p.vi()) // PARSE NUMBER - self.range_single() // RANGE float32 - self.Emit("MOVSS", _X0, _VAR_st_Dv) // MOVSS X0, st.Dv - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv -} - -func (self *_Assembler) _asm_OP_map_key_f64(p *_Instr) { - self.parse_number(float64Type, "", p.vi()) // PARSE NUMBER - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv -} - -func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - if vt := p.vt(); !mapfast(vt) { - self.valloc(vt.Key(), _DI) - self.Emit("MOVOU", _VAR_sv, _X0) - self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0)) - self.mapassign_std(vt, jit.Ptr(_DI, 0)) - } else { - self.Emit("MOVQ", _VAR_sv_p, _DI) // MOVQ sv.p, DI - self.Emit("MOVQ", _VAR_sv_n, _SI) // MOVQ sv.n, SI - self.mapassign_str_fast(vt, _DI, _SI) // MAPASSIGN string, DI, SI - } -} - -func (self *_Assembler) _asm_OP_map_key_utext(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - self.mapassign_utext(p.vt(), false) // MAPASSIGN utext, ${p.vt()}, false -} - -func (self *_Assembler) _asm_OP_map_key_utext_p(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, false) // UNQUOTE once, sv.p, sv.n - self.mapassign_utext(p.vt(), true) // MAPASSIGN utext, ${p.vt()}, true -} - -func (self *_Assembler) _asm_OP_array_skip(_ *_Instr) { - self.call_sf(_F_skip_array) // CALL_SF skip_array - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_array_clear(p *_Instr) { - self.mem_clear_rem(p.i64(), true) -} - -func (self *_Assembler) _asm_OP_array_clear_p(p *_Instr) { - self.mem_clear_rem(p.i64(), false) -} - -func (self *_Assembler) _asm_OP_slice_init(p *_Instr) { - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) - self.Emit("MOVQ" , jit.Ptr(_VP, 16), _AX) // MOVQ 16(VP), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_done_{n}") // JNZ _done_{n} - self.Emit("MOVQ" , jit.Imm(_MinSlice), _CX) // MOVQ ${_MinSlice}, CX - self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) - self.Emit("MOVQ" , jit.Type(p.vt()), _DX) // MOVQ ${p.vt()}, DX - self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 16)) // MOVQ CX, 16(SP) - self.call_go(_F_makeslice) // CALL_GO makeslice - self.Emit("MOVQ" , jit.Ptr(_SP, 24), _AX) // MOVQ 24(SP), AX - self.WritePtrAX(7, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Link("_done_{n}") // _done_{n}: - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) -} - -func (self *_Assembler) _asm_OP_check_empty(p *_Instr) { - rbracket := p.vb() - if rbracket == ']' { - self.check_eof(1) - self.Emit("LEAQ", jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(rbracket))) // CMPB (IP)(IC), ']' - self.Sjmp("JNE" , "_not_empty_array_{n}") // JNE _not_empty_array_{n} - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.StorePtr(_Zero_Base, jit.Ptr(_VP, 0), _AX) // MOVQ $zerobase, (VP) - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 8)) // MOVOU X0, 8(VP) - self.Xjmp("JMP" , p.vi()) // JMP {p.vi()} - self.Link("_not_empty_array_{n}") - } else { - panic("only implement check empty array here!") - } -} - -func (self *_Assembler) _asm_OP_slice_append(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 8), _AX) // MOVQ 8(VP), AX - self.Emit("CMPQ" , _AX, jit.Ptr(_VP, 16)) // CMPQ AX, 16(VP) - self.Sjmp("JB" , "_index_{n}") // JB _index_{n} - self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVOU", jit.Ptr(_VP, 0), _X0) // MOVOU (VP), X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) - self.Emit("MOVQ" , jit.Ptr(_VP, 16), _AX) // MOVQ 16(VP), AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 24)) // MOVQ AX, 24(SP) - self.Emit("SHLQ" , jit.Imm(1), _AX) // SHLQ $1, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) - self.call_go(_F_growslice) // CALL_GO growslice - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _DI) // MOVQ 40(SP), DI - self.Emit("MOVQ" , jit.Ptr(_SP, 48), _AX) // MOVQ 48(SP), AX - self.Emit("MOVQ" , jit.Ptr(_SP, 56), _SI) // MOVQ 56(SP), SI - self.WriteRecNotAX(8, _DI, jit.Ptr(_VP, 0), true, true)// MOVQ DI, (VP) - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) - self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) - - // because growslice not zero memory {oldcap, newlen} when append et not has ptrdata. - // but we should zero it, avoid decode it as random values. - if rt.UnpackType(p.vt()).PtrData == 0 { - self.Emit("SUBQ" , _AX, _SI) // MOVQ AX, SI - - self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) - self.Emit("MOVQ" , _DI, _VP) // MOVQ DI, VP - self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX - self.From("MULQ" , _CX) // MULQ CX - self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP - - self.Emit("MOVQ" , _SI, _AX) // MOVQ SI, AX - self.From("MULQ" , _CX) // MULQ CX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - - self.Emit("MOVQ" , _VP, jit.Ptr(_SP, 0)) // MOVQ VP, (SP) - self.mem_clear_fn(true) // CALL_GO memclr{Has,NoHeap} - self.Sjmp("JMP", "_append_slice_end_{n}") // JMP _append_slice_end_{n} - } - - self.Link("_index_{n}") // _index_{n}: - self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _VP) // MOVQ (VP), VP - self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX - self.From("MULQ" , _CX) // MULQ CX - self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP - self.Link("_append_slice_end_{n}") -} - -func (self *_Assembler) _asm_OP_object_skip(_ *_Instr) { - self.call_sf(_F_skip_object) // CALL_SF skip_object - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_object_next(_ *_Instr) { - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_struct_field(p *_Instr) { - assert_eq(caching.FieldEntrySize, 32, "invalid field entry size") - self.Emit("MOVQ" , jit.Imm(-1), _AX) // MOVQ $-1, AX - self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, sr - self.parse_string() // PARSE STRING - self.unquote_once(_VAR_sv_p, _VAR_sv_n, true, false) // UNQUOTE once, sv.p, sv.n - self.Emit("LEAQ" , _VAR_sv, _AX) // LEAQ sv, AX - self.Emit("XORL" , _CX, _CX) // XORL CX, CX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.call_go(_F_strhash) // CALL_GO strhash - self.Emit("MOVQ" , jit.Ptr(_SP, 16), _AX) // MOVQ 16(SP), AX - self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 - self.Emit("MOVQ" , jit.Imm(freezeFields(p.vf())), _CX) // MOVQ ${p.vf()}, CX - self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_b), _SI) // MOVQ FieldMap.b(CX), SI - self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_N), _CX) // MOVQ FieldMap.N(CX), CX - self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX - self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} - self.Link("_loop_{n}") // _loop_{n}: - self.Emit("XORL" , _DX, _DX) // XORL DX, DX - self.From("DIVQ" , _CX) // DIVQ CX - self.Emit("LEAQ" , jit.Ptr(_DX, 1), _AX) // LEAQ 1(DX), AX - self.Emit("SHLQ" , jit.Imm(5), _DX) // SHLQ $5, DX - self.Emit("LEAQ" , jit.Sib(_SI, _DX, 1, 0), _DI) // LEAQ (SI)(DX), DI - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Hash), _R8) // MOVQ FieldEntry.Hash(DI), R8 - self.Emit("TESTQ", _R8, _R8) // TESTQ R8, R8 - self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} - self.Emit("CMPQ" , _R8, _R9) // CMPQ R8, R9 - self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name + 8), _DX) // MOVQ FieldEntry.Name+8(DI), DX - self.Emit("CMPQ" , _DX, _VAR_sv_n) // CMPQ DX, sv.n - self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_ID), _R8) // MOVQ FieldEntry.ID(DI), R8 - self.Emit("MOVQ" , _AX, _VAR_ss_AX) // MOVQ AX, ss.AX - self.Emit("MOVQ" , _CX, _VAR_ss_CX) // MOVQ CX, ss.CX - self.Emit("MOVQ" , _SI, _VAR_ss_SI) // MOVQ SI, ss.SI - self.Emit("MOVQ" , _R8, _VAR_ss_R8) // MOVQ R8, ss.R8 - self.Emit("MOVQ" , _R9, _VAR_ss_R9) // MOVQ R9, ss.R9 - self.Emit("MOVQ" , _VAR_sv_p, _AX) // MOVQ _VAR_sv_p, AX - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name), _CX) // MOVQ FieldEntry.Name(DI), CX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 16)) // MOVQ DX, 16(SP) - self.call_go(_F_memequal) // CALL_GO memequal - self.Emit("MOVQ" , _VAR_ss_AX, _AX) // MOVQ ss.AX, AX - self.Emit("MOVQ" , _VAR_ss_CX, _CX) // MOVQ ss.CX, CX - self.Emit("MOVQ" , _VAR_ss_SI, _SI) // MOVQ ss.SI, SI - self.Emit("MOVQ" , _VAR_ss_R9, _R9) // MOVQ ss.R9, R9 - self.Emit("MOVB" , jit.Ptr(_SP, 24), _DX) // MOVB 24(SP), DX - self.Emit("TESTB", _DX, _DX) // TESTB DX, DX - self.Sjmp("JZ" , "_loop_{n}") // JZ _loop_{n} - self.Emit("MOVQ" , _VAR_ss_R8, _R8) // MOVQ ss.R8, R8 - self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_try_lowercase_{n}") // _try_lowercase_{n}: - self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX - self.Emit("MOVOU", _VAR_sv, _X0) // MOVOU sv, X0 - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) - self.call_go(_F_FieldMap_GetCaseInsensitive) // CALL_GO FieldMap::GetCaseInsensitive - self.Emit("MOVQ" , jit.Ptr(_SP, 24), _AX) // MOVQ 24(SP), AX - self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n} - self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv - self.Sjmp("JC" , _LB_field_error) // JC _field_error - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_unmarshal(p *_Instr) { - self.unmarshal_json(p.vt(), true) -} - -func (self *_Assembler) _asm_OP_unmarshal_p(p *_Instr) { - self.unmarshal_json(p.vt(), false) -} - -func (self *_Assembler) _asm_OP_unmarshal_text(p *_Instr) { - self.unmarshal_text(p.vt(), true) -} - -func (self *_Assembler) _asm_OP_unmarshal_text_p(p *_Instr) { - self.unmarshal_text(p.vt(), false) -} - -func (self *_Assembler) _asm_OP_lspace(_ *_Instr) { - self.lspace("_{n}") -} - -func (self *_Assembler) lspace(subfix string) { - var label = "_lspace" + subfix - - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , label) // JA _nospace_{n} - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , label) // JNC _nospace_{n} - - /* test up to 4 characters */ - for i := 0; i < 3; i++ { - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , label) // JA _nospace_{n} - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , label) // JNC _nospace_{n} - } - - /* handle over to the native function */ - self.Emit("MOVQ" , _IP, _DI) // MOVQ IP, DI - self.Emit("MOVQ" , _IL, _SI) // MOVQ IL, SI - self.Emit("MOVQ" , _IC, _DX) // MOVQ IC, DX - self.call(_F_lspace) // CALL lspace - self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parsing_error_v - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC - self.Link(label) // _nospace_{n}: -} - -func (self *_Assembler) _asm_OP_match_char(p *_Instr) { - self.match_char(p.vb()) -} - -func (self *_Assembler) match_char(char byte) { - self.check_eof(1) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(char))) // CMPB (IP)(IC), ${p.vb()} - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC -} - -func (self *_Assembler) _asm_OP_check_char(p *_Instr) { - self.check_eof(1) - self.Emit("LEAQ" , jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} -} - -func (self *_Assembler) _asm_OP_check_char_0(p *_Instr) { - self.check_eof(1) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} - self.Xjmp("JE" , p.vi()) // JE {p.vi()} -} - -func (self *_Assembler) _asm_OP_add(p *_Instr) { - self.Emit("ADDQ", jit.Imm(int64(p.vi())), _IC) // ADDQ ${p.vi()}, IC -} - -func (self *_Assembler) _asm_OP_load(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _VP) // MOVQ (ST)(AX), VP -} - -func (self *_Assembler) _asm_OP_save(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX - self.Emit("CMPQ", _CX, jit.Imm(_MaxStackBytes)) // CMPQ CX, ${_MaxStackBytes} - self.Sjmp("JAE" , _LB_stack_error) // JA _stack_error - self.WriteRecNotAX(0 , _VP, jit.Sib(_ST, _CX, 1, 8), false, false) // MOVQ VP, 8(ST)(CX) - self.Emit("ADDQ", jit.Imm(8), _CX) // ADDQ $8, CX - self.Emit("MOVQ", _CX, jit.Ptr(_ST, 0)) // MOVQ CX, (ST) -} - -func (self *_Assembler) _asm_OP_drop(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ", jit.Imm(8), _AX) // SUBQ $8, AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP - self.Emit("MOVQ", _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("XORL", _ET, _ET) // XORL ET, ET - self.Emit("MOVQ", _ET, jit.Sib(_ST, _AX, 1, 8)) // MOVQ ET, 8(ST)(AX) -} - -func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ" , jit.Imm(16), _AX) // SUBQ $16, AX - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP - self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) -} - -func (self *_Assembler) _asm_OP_recurse(p *_Instr) { - self.Emit("MOVQ", jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX - self.decode_dynamic(_AX, _VP) // DECODE AX, VP -} - -func (self *_Assembler) _asm_OP_goto(p *_Instr) { - self.Xjmp("JMP", p.vi()) -} - -func (self *_Assembler) _asm_OP_switch(p *_Instr) { - self.Emit("MOVQ", _VAR_sr, _AX) // MOVQ sr, AX - self.Emit("CMPQ", _AX, jit.Imm(p.i64())) // CMPQ AX, ${len(p.vs())} - self.Sjmp("JAE" , "_default_{n}") // JAE _default_{n} - - /* jump table selector */ - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_switch_table_{n}", 4) // .... &_switch_table_{n} - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - self.Link("_switch_table_{n}") // _switch_table_{n}: - - /* generate the jump table */ - for i, v := range p.vs() { - self.Xref(v, int64(-i) * 4) - } - - /* default case */ - self.Link("_default_{n}") - self.NOP() -} - -func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { - self.Emit("MOVQ", jit.Imm(int64(p2.op())), jit.Ptr(_SP, 16))// MOVQ $(p2.op()), 16(SP) - self.Emit("MOVQ", jit.Imm(int64(p1.op())), jit.Ptr(_SP, 8)) // MOVQ $(p1.op()), 8(SP) - 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/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go117.go deleted file mode 100644 index 2741373..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/assembler_amd64_go117.go +++ /dev/null @@ -1,1992 +0,0 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!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 decoder - -import ( - `encoding/json` - `fmt` - `math` - `reflect` - `strconv` - `unsafe` - - `github.com/bytedance/sonic/internal/caching` - `github.com/bytedance/sonic/internal/jit` - `github.com/bytedance/sonic/internal/native` - `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 - * - * State Registers: - * - * %r13 : stack base - * %r10 : input pointer - * %r12 : input length - * %r11 : input cursor - * %r15 : value pointer - * - * Error Registers: - * - * %rax : error type register - * %rbx : error pointer register - */ - -/** Function Prototype & Stack Map - * - * func (s string, ic int, vp unsafe.Pointer, sb *_Stack, fv uint64, sv string) (rc int, err error) - * - * s.buf : (FP) - * s.len : 8(FP) - * ic : 16(FP) - * vp : 24(FP) - * sb : 32(FP) - * fv : 40(FP) - * sv : 56(FP) - * err.vt : 72(FP) - * err.vp : 80(FP) - */ - -const ( - _FP_args = 72 // 72 bytes to pass and spill register arguements - _FP_fargs = 80 // 80 bytes for passing arguments to other Go functions - _FP_saves = 48 // 48 bytes for saving the registers before CALL instructions - _FP_locals = 144 // 144 bytes for local variables -) - -const ( - _FP_offs = _FP_fargs + _FP_saves + _FP_locals - _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer - _FP_base = _FP_size + 8 // 8 bytes for the return address -) - -const ( - _IM_null = 0x6c6c756e // 'null' - _IM_true = 0x65757274 // 'true' - _IM_alse = 0x65736c61 // 'alse' ('false' without the 'f') -) - -const ( - _BM_space = (1 << ' ') | (1 << '\t') | (1 << '\r') | (1 << '\n') -) - -const ( - _MODE_JSON = 1 << 3 // base64 mode -) - -const ( - _LB_error = "_error" - _LB_im_error = "_im_error" - _LB_eof_error = "_eof_error" - _LB_type_error = "_type_error" - _LB_field_error = "_field_error" - _LB_range_error = "_range_error" - _LB_stack_error = "_stack_error" - _LB_base64_error = "_base64_error" - _LB_unquote_error = "_unquote_error" - _LB_parsing_error = "_parsing_error" - _LB_parsing_error_v = "_parsing_error_v" - _LB_mismatch_error = "_mismatch_error" -) - -const ( - _LB_char_0_error = "_char_0_error" - _LB_char_1_error = "_char_1_error" - _LB_char_2_error = "_char_2_error" - _LB_char_3_error = "_char_3_error" - _LB_char_4_error = "_char_4_error" - _LB_char_m2_error = "_char_m2_error" - _LB_char_m3_error = "_char_m3_error" -) - -const ( - _LB_skip_one = "_skip_one" - _LB_skip_key_value = "_skip_key_value" -) - -var ( - _AX = jit.Reg("AX") - _BX = jit.Reg("BX") - _CX = jit.Reg("CX") - _DX = jit.Reg("DX") - _DI = jit.Reg("DI") - _SI = jit.Reg("SI") - _BP = jit.Reg("BP") - _SP = jit.Reg("SP") - _R8 = jit.Reg("R8") - _R9 = jit.Reg("R9") - _X0 = jit.Reg("X0") - _X1 = jit.Reg("X1") -) - -var ( - _IP = jit.Reg("R10") // saved on BP when callc - _IC = jit.Reg("R11") // saved on BX when call_c - _IL = jit.Reg("R12") - _ST = jit.Reg("R13") - _VP = jit.Reg("R15") -) - -var ( - _DF = jit.Reg("AX") // reuse AX in generic decoder for flags - _ET = jit.Reg("AX") - _EP = jit.Reg("BX") -) - - - -var ( - _ARG_s = _ARG_sp - _ARG_sp = jit.Ptr(_SP, _FP_base + 0) - _ARG_sl = jit.Ptr(_SP, _FP_base + 8) - _ARG_ic = jit.Ptr(_SP, _FP_base + 16) - _ARG_vp = jit.Ptr(_SP, _FP_base + 24) - _ARG_sb = jit.Ptr(_SP, _FP_base + 32) - _ARG_fv = jit.Ptr(_SP, _FP_base + 40) -) - -var ( - _ARG_sv = _ARG_sv_p - _ARG_sv_p = jit.Ptr(_SP, _FP_base + 48) - _ARG_sv_n = jit.Ptr(_SP, _FP_base + 56) - _ARG_vk = jit.Ptr(_SP, _FP_base + 64) -) - -var ( - _VAR_st = _VAR_st_Vt - _VAR_sr = jit.Ptr(_SP, _FP_fargs + _FP_saves) -) - -var ( - _VAR_st_Vt = jit.Ptr(_SP, _FP_fargs + _FP_saves + 0) - _VAR_st_Dv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) - _VAR_st_Iv = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) - _VAR_st_Ep = jit.Ptr(_SP, _FP_fargs + _FP_saves + 24) - _VAR_st_Db = jit.Ptr(_SP, _FP_fargs + _FP_saves + 32) - _VAR_st_Dc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 40) -) - -var ( - _VAR_ss_AX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 48) - _VAR_ss_CX = jit.Ptr(_SP, _FP_fargs + _FP_saves + 56) - _VAR_ss_SI = jit.Ptr(_SP, _FP_fargs + _FP_saves + 64) - _VAR_ss_R8 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 72) - _VAR_ss_R9 = jit.Ptr(_SP, _FP_fargs + _FP_saves + 80) -) - -var ( - _VAR_bs_p = jit.Ptr(_SP, _FP_fargs + _FP_saves + 88) - _VAR_bs_n = jit.Ptr(_SP, _FP_fargs + _FP_saves + 96) - _VAR_bs_LR = jit.Ptr(_SP, _FP_fargs + _FP_saves + 104) -) - -var _VAR_fl = jit.Ptr(_SP, _FP_fargs + _FP_saves + 112) - -var ( - _VAR_et = jit.Ptr(_SP, _FP_fargs + _FP_saves + 120) // save dismatched type - _VAR_pc = jit.Ptr(_SP, _FP_fargs + _FP_saves + 128) // save skip return pc - _VAR_ic = jit.Ptr(_SP, _FP_fargs + _FP_saves + 136) // save dismatched position -) - -type _Assembler struct { - jit.BaseAssembler - p _Program - name string -} - -func newAssembler(p _Program) *_Assembler { - return new(_Assembler).Init(p) -} - -/** Assembler Interface **/ - -func (self *_Assembler) Load() _Decoder { - return ptodec(self.BaseAssembler.Load("decode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) -} - -func (self *_Assembler) Init(p _Program) *_Assembler { - self.p = p - self.BaseAssembler.Init(self.compile) - return self -} - -func (self *_Assembler) compile() { - self.prologue() - self.instrs() - self.epilogue() - self.copy_string() - self.escape_string() - self.escape_string_twice() - self.skip_one() - self.skip_key_value() - self.type_error() - self.mismatch_error() - self.field_error() - self.range_error() - self.stack_error() - self.base64_error() - self.parsing_error() -} - -/** Assembler Stages **/ - -var _OpFuncTab = [256]func(*_Assembler, *_Instr) { - _OP_any : (*_Assembler)._asm_OP_any, - _OP_dyn : (*_Assembler)._asm_OP_dyn, - _OP_str : (*_Assembler)._asm_OP_str, - _OP_bin : (*_Assembler)._asm_OP_bin, - _OP_bool : (*_Assembler)._asm_OP_bool, - _OP_num : (*_Assembler)._asm_OP_num, - _OP_i8 : (*_Assembler)._asm_OP_i8, - _OP_i16 : (*_Assembler)._asm_OP_i16, - _OP_i32 : (*_Assembler)._asm_OP_i32, - _OP_i64 : (*_Assembler)._asm_OP_i64, - _OP_u8 : (*_Assembler)._asm_OP_u8, - _OP_u16 : (*_Assembler)._asm_OP_u16, - _OP_u32 : (*_Assembler)._asm_OP_u32, - _OP_u64 : (*_Assembler)._asm_OP_u64, - _OP_f32 : (*_Assembler)._asm_OP_f32, - _OP_f64 : (*_Assembler)._asm_OP_f64, - _OP_unquote : (*_Assembler)._asm_OP_unquote, - _OP_nil_1 : (*_Assembler)._asm_OP_nil_1, - _OP_nil_2 : (*_Assembler)._asm_OP_nil_2, - _OP_nil_3 : (*_Assembler)._asm_OP_nil_3, - _OP_deref : (*_Assembler)._asm_OP_deref, - _OP_index : (*_Assembler)._asm_OP_index, - _OP_is_null : (*_Assembler)._asm_OP_is_null, - _OP_is_null_quote : (*_Assembler)._asm_OP_is_null_quote, - _OP_map_init : (*_Assembler)._asm_OP_map_init, - _OP_map_key_i8 : (*_Assembler)._asm_OP_map_key_i8, - _OP_map_key_i16 : (*_Assembler)._asm_OP_map_key_i16, - _OP_map_key_i32 : (*_Assembler)._asm_OP_map_key_i32, - _OP_map_key_i64 : (*_Assembler)._asm_OP_map_key_i64, - _OP_map_key_u8 : (*_Assembler)._asm_OP_map_key_u8, - _OP_map_key_u16 : (*_Assembler)._asm_OP_map_key_u16, - _OP_map_key_u32 : (*_Assembler)._asm_OP_map_key_u32, - _OP_map_key_u64 : (*_Assembler)._asm_OP_map_key_u64, - _OP_map_key_f32 : (*_Assembler)._asm_OP_map_key_f32, - _OP_map_key_f64 : (*_Assembler)._asm_OP_map_key_f64, - _OP_map_key_str : (*_Assembler)._asm_OP_map_key_str, - _OP_map_key_utext : (*_Assembler)._asm_OP_map_key_utext, - _OP_map_key_utext_p : (*_Assembler)._asm_OP_map_key_utext_p, - _OP_array_skip : (*_Assembler)._asm_OP_array_skip, - _OP_array_clear : (*_Assembler)._asm_OP_array_clear, - _OP_array_clear_p : (*_Assembler)._asm_OP_array_clear_p, - _OP_slice_init : (*_Assembler)._asm_OP_slice_init, - _OP_slice_append : (*_Assembler)._asm_OP_slice_append, - _OP_object_skip : (*_Assembler)._asm_OP_object_skip, - _OP_object_next : (*_Assembler)._asm_OP_object_next, - _OP_struct_field : (*_Assembler)._asm_OP_struct_field, - _OP_unmarshal : (*_Assembler)._asm_OP_unmarshal, - _OP_unmarshal_p : (*_Assembler)._asm_OP_unmarshal_p, - _OP_unmarshal_text : (*_Assembler)._asm_OP_unmarshal_text, - _OP_unmarshal_text_p : (*_Assembler)._asm_OP_unmarshal_text_p, - _OP_lspace : (*_Assembler)._asm_OP_lspace, - _OP_match_char : (*_Assembler)._asm_OP_match_char, - _OP_check_char : (*_Assembler)._asm_OP_check_char, - _OP_load : (*_Assembler)._asm_OP_load, - _OP_save : (*_Assembler)._asm_OP_save, - _OP_drop : (*_Assembler)._asm_OP_drop, - _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, - _OP_recurse : (*_Assembler)._asm_OP_recurse, - _OP_goto : (*_Assembler)._asm_OP_goto, - _OP_switch : (*_Assembler)._asm_OP_switch, - _OP_check_char_0 : (*_Assembler)._asm_OP_check_char_0, - _OP_dismatch_err : (*_Assembler)._asm_OP_dismatch_err, - _OP_go_skip : (*_Assembler)._asm_OP_go_skip, - _OP_add : (*_Assembler)._asm_OP_add, - _OP_check_empty : (*_Assembler)._asm_OP_check_empty, - _OP_debug : (*_Assembler)._asm_OP_debug, -} - -func (self *_Assembler) _asm_OP_debug(_ *_Instr) { - self.Byte(0xcc) -} - -func (self *_Assembler) instr(v *_Instr) { - if fn := _OpFuncTab[v.op()]; fn != nil { - fn(self, v) - } else { - panic(fmt.Sprintf("invalid opcode: %d", v.op())) - } -} - -func (self *_Assembler) instrs() { - for i, v := range self.p { - self.Mark(i) - self.instr(&v) - self.debug_instr(i, &v) - } -} - -func (self *_Assembler) epilogue() { - self.Mark(len(self.p)) - self.Emit("XORL", _EP, _EP) // XORL EP, EP - self.Emit("MOVQ", _VAR_et, _ET) // MOVQ VAR_et, ET - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ", _LB_mismatch_error) // JNZ _LB_mismatch_error - self.Link(_LB_error) // _error: - self.Emit("MOVQ", _EP, _CX) // MOVQ BX, CX - self.Emit("MOVQ", _ET, _BX) // MOVQ AX, BX - self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX - self.Emit("MOVQ", jit.Imm(0), _ARG_sp) // MOVQ $0, sv.p<>+48(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_vp) // MOVQ $0, sv.p<>+48(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_sv_p) // MOVQ $0, sv.p<>+48(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_vk) // MOVQ $0, vk<>+64(FP) - self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP - self.Emit("RET") // RET -} - -func (self *_Assembler) prologue() { - self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP - self.Emit("MOVQ", _AX, _ARG_sp) // MOVQ AX, s.p<>+0(FP) - self.Emit("MOVQ", _AX, _IP) // MOVQ AX, IP - self.Emit("MOVQ", _BX, _ARG_sl) // MOVQ BX, s.l<>+8(FP) - self.Emit("MOVQ", _BX, _IL) // MOVQ BX, IL - self.Emit("MOVQ", _CX, _ARG_ic) // MOVQ CX, ic<>+16(FP) - self.Emit("MOVQ", _CX, _IC) // MOVQ CX, IC - self.Emit("MOVQ", _DI, _ARG_vp) // MOVQ DI, vp<>+24(FP) - self.Emit("MOVQ", _DI, _VP) // MOVQ DI, VP - self.Emit("MOVQ", _SI, _ARG_sb) // MOVQ SI, sb<>+32(FP) - self.Emit("MOVQ", _SI, _ST) // MOVQ SI, ST - self.Emit("MOVQ", _R8, _ARG_fv) // MOVQ R8, fv<>+40(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_sv_p) // MOVQ $0, sv.p<>+48(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_sv_n) // MOVQ $0, sv.n<>+56(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_vk) // MOVQ $0, vk<>+64(FP) - self.Emit("MOVQ", jit.Imm(0), _VAR_et) // MOVQ $0, et<>+120(FP) - // initialize digital buffer first - self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_st_Dc) // MOVQ $_MaxDigitNums, ss.Dcap - self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX - self.Emit("MOVQ", _AX, _VAR_st_Db) // MOVQ AX, ss.Dbuf -} - -/** Function Calling Helpers **/ - -var ( - _REG_go = []obj.Addr { _ST, _VP, _IP, _IL, _IC } - _REG_rt = []obj.Addr { _ST, _VP, _IP, _IL, _IC, _IL } -) - -func (self *_Assembler) save(r ...obj.Addr) { - for i, v := range r { - if i > _FP_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) - } - } -} - -func (self *_Assembler) load(r ...obj.Addr) { - for i, v := range r { - if i > _FP_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) - } - } -} - -func (self *_Assembler) call(fn obj.Addr) { - self.Emit("MOVQ", fn, _R9) // MOVQ ${fn}, R11 - self.Rjmp("CALL", _R9) // CALL R11 -} - -func (self *_Assembler) call_go(fn obj.Addr) { - self.save(_REG_go...) // SAVE $REG_go - self.call(fn) - self.load(_REG_go...) // LOAD $REG_go -} - -func (self *_Assembler) callc(fn obj.Addr) { - self.Emit("XCHGQ", _IP, _BP) - self.call(fn) - self.Emit("XCHGQ", _IP, _BP) -} - -func (self *_Assembler) call_c(fn obj.Addr) { - self.Emit("XCHGQ", _IC, _BX) - self.callc(fn) - self.Emit("XCHGQ", _IC, _BX) -} - -func (self *_Assembler) call_sf(fn obj.Addr) { - self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI - self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) - self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI - self.Emit("LEAQ", jit.Ptr(_ST, _FsmOffset), _DX) // LEAQ _FsmOffset(ST), DX - self.Emit("MOVQ", _ARG_fv, _CX) - self.callc(fn) - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC -} - -func (self *_Assembler) call_vf(fn obj.Addr) { - self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI - self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) - self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI - self.Emit("LEAQ", _VAR_st, _DX) // LEAQ st, DX - self.callc(fn) - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC -} - -/** Assembler Error Handlers **/ - -var ( - _F_convT64 = jit.Func(convT64) - _F_error_wrap = jit.Func(error_wrap) - _F_error_type = jit.Func(error_type) - _F_error_field = jit.Func(error_field) - _F_error_value = jit.Func(error_value) - _F_error_mismatch = jit.Func(error_mismatch) -) - -var ( - _I_int8 , _T_int8 = rtype(reflect.TypeOf(int8(0))) - _I_int16 , _T_int16 = rtype(reflect.TypeOf(int16(0))) - _I_int32 , _T_int32 = rtype(reflect.TypeOf(int32(0))) - _I_uint8 , _T_uint8 = rtype(reflect.TypeOf(uint8(0))) - _I_uint16 , _T_uint16 = rtype(reflect.TypeOf(uint16(0))) - _I_uint32 , _T_uint32 = rtype(reflect.TypeOf(uint32(0))) - _I_float32 , _T_float32 = rtype(reflect.TypeOf(float32(0))) -) - -var ( - _T_error = rt.UnpackType(errorType) - _I_base64_CorruptInputError = jit.Itab(_T_error, base64CorruptInputError) -) - -var ( - _V_stackOverflow = jit.Imm(int64(uintptr(unsafe.Pointer(&stackOverflow)))) - _I_json_UnsupportedValueError = jit.Itab(_T_error, reflect.TypeOf(new(json.UnsupportedValueError))) - _I_json_MismatchTypeError = jit.Itab(_T_error, reflect.TypeOf(new(MismatchTypeError))) -) - -func (self *_Assembler) type_error() { - self.Link(_LB_type_error) // _type_error: - self.call_go(_F_error_type) // CALL_GO error_type - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) mismatch_error() { - self.Link(_LB_mismatch_error) // _type_error: - self.Emit("MOVQ", _VAR_et, _ET) // MOVQ _VAR_et, ET - self.Emit("MOVQ", _VAR_ic, _EP) // MOVQ _VAR_ic, EP - self.Emit("MOVQ", _I_json_MismatchTypeError, _CX) // MOVQ _I_json_MismatchType, CX - self.Emit("CMPQ", _ET, _CX) // CMPQ ET, CX - self.Sjmp("JE" , _LB_error) // JE _LB_error - self.Emit("MOVQ", _ARG_sp, _AX) - self.Emit("MOVQ", _ARG_sl, _BX) - self.Emit("MOVQ", _VAR_ic, _CX) - self.Emit("MOVQ", _VAR_et, _DI) - self.call_go(_F_error_mismatch) // CALL_GO error_type - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) field_error() { - self.Link(_LB_field_error) // _field_error: - self.Emit("MOVQ", _ARG_sv_p, _AX) // MOVQ sv.p, AX - self.Emit("MOVQ", _ARG_sv_n, _BX) // MOVQ sv.n, BX - self.call_go(_F_error_field) // CALL_GO error_field - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) range_error() { - self.Link(_LB_range_error) // _range_error: - self.Emit("MOVQ", _ET, _CX) // MOVQ ET, CX - self.slice_from(_VAR_st_Ep, 0) // SLICE st.Ep, $0 - self.Emit("MOVQ", _DI, _AX) // MOVQ DI, AX - self.Emit("MOVQ", _EP, _DI) // MOVQ EP, DI - self.Emit("MOVQ", _SI, _BX) // MOVQ SI, BX - self.call_go(_F_error_value) // CALL_GO error_value - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) stack_error() { - self.Link(_LB_stack_error) // _stack_error: - self.Emit("MOVQ", _V_stackOverflow, _EP) // MOVQ ${_V_stackOverflow}, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ ${_I_json_UnsupportedValueError}, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) base64_error() { - self.Link(_LB_base64_error) - self.Emit("NEGQ", _AX) // NEGQ AX - self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX - self.call_go(_F_convT64) // CALL_GO convT64 - self.Emit("MOVQ", _AX, _EP) // MOVQ AX, EP - self.Emit("MOVQ", _I_base64_CorruptInputError, _ET) // MOVQ ${itab(base64.CorruptInputError)}, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) parsing_error() { - self.Link(_LB_eof_error) // _eof_error: - self.Emit("MOVQ" , _IL, _IC) // MOVQ IL, IC - self.Emit("MOVL" , jit.Imm(int64(types.ERR_EOF)), _EP) // MOVL ${types.ERR_EOF}, EP - self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error - self.Link(_LB_unquote_error) // _unquote_error: - self.Emit("SUBQ" , _VAR_sr, _SI) // SUBQ sr, SI - self.Emit("SUBQ" , _SI, _IC) // SUBQ IL, IC - self.Link(_LB_parsing_error_v) // _parsing_error_v: - self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP - self.Emit("NEGQ" , _EP) // NEGQ EP - self.Sjmp("JMP" , _LB_parsing_error) // JMP _parsing_error - self.Link(_LB_char_m3_error) // _char_m3_error: - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Link(_LB_char_m2_error) // _char_m2_error: - self.Emit("SUBQ" , jit.Imm(2), _IC) // SUBQ $2, IC - self.Sjmp("JMP" , _LB_char_0_error) // JMP _char_0_error - self.Link(_LB_im_error) // _im_error: - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPB CX, (IP)(IC) - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 1)) // CMPB CX, 1(IP)(IC) - self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error - self.Emit("SHRL" , jit.Imm(8), _CX) // SHRL $8, CX - self.Emit("CMPB" , _CX, jit.Sib(_IP, _IC, 1, 2)) // CMPB CX, 2(IP)(IC) - self.Sjmp("JNE" , _LB_char_2_error) // JNE _char_2_error - self.Sjmp("JMP" , _LB_char_3_error) // JNE _char_3_error - self.Link(_LB_char_4_error) // _char_4_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_3_error) // _char_3_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_2_error) // _char_2_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_1_error) // _char_1_error: - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Link(_LB_char_0_error) // _char_0_error: - self.Emit("MOVL" , jit.Imm(int64(types.ERR_INVALID_CHAR)), _EP) // MOVL ${types.ERR_INVALID_CHAR}, EP - self.Link(_LB_parsing_error) // _parsing_error: - self.Emit("MOVQ" , _EP, _DI) // MOVQ EP, DI - self.Emit("MOVQ", _ARG_sp, _AX) // MOVQ sp, AX - self.Emit("MOVQ", _ARG_sl, _BX) // MOVQ sl, BX - self.Emit("MOVQ" , _IC, _CX) // MOVQ IC, CX - self.call_go(_F_error_wrap) // CALL_GO error_wrap - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) _asm_OP_dismatch_err(p *_Instr) { - self.Emit("MOVQ", _IC, _VAR_ic) - self.Emit("MOVQ", jit.Type(p.vt()), _ET) - self.Emit("MOVQ", _ET, _VAR_et) -} - -func (self *_Assembler) _asm_OP_go_skip(p *_Instr) { - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Xref(p.vi(), 4) - // self.Byte(0xcc) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) // JMP _skip_one -} - -func (self *_Assembler) skip_one() { - self.Link(_LB_skip_one) // _skip: - self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 - // self.Byte(0xcc) - self.Rjmp("JMP" , _R9) // JMP (R9) -} - -func (self *_Assembler) skip_key_value() { - self.Link(_LB_skip_key_value) // _skip: - // skip the key - self.Emit("MOVQ", _VAR_ic, _IC) // MOVQ _VAR_ic, IC - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - // match char ':' - self.lspace("_global_1") - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(':')) - self.Sjmp("JNE" , _LB_parsing_error_v) // JNE _parse_error_v - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC - self.lspace("_global_2") - // skip the value - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - // jump back to specified address - self.Emit("MOVQ" , _VAR_pc, _R9) // MOVQ pc, R9 - self.Rjmp("JMP" , _R9) // JMP (R9) -} - - -/** Memory Management Routines **/ - -var ( - _T_byte = jit.Type(byteType) - _F_mallocgc = jit.Func(mallocgc) -) - -func (self *_Assembler) malloc_AX(nb obj.Addr, ret obj.Addr) { - self.Emit("MOVQ", nb, _AX) // MOVQ ${nb}, AX - self.Emit("MOVQ", _T_byte, _BX) // MOVQ ${type(byte)}, BX - self.Emit("XORL", _CX, _CX) // XORL CX, CX - self.call_go(_F_mallocgc) // CALL_GO mallocgc - self.Emit("MOVQ", _AX, ret) // MOVQ AX, ${ret} -} - -func (self *_Assembler) valloc(vt reflect.Type, ret obj.Addr) { - self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX - self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ ${vt}, BX - self.Emit("MOVB", jit.Imm(1), _CX) // MOVB $1, CX - self.call_go(_F_mallocgc) // CALL_GO mallocgc - self.Emit("MOVQ", _AX, ret) // MOVQ AX, ${ret} -} - -func (self *_Assembler) valloc_AX(vt reflect.Type) { - self.Emit("MOVQ", jit.Imm(int64(vt.Size())), _AX) // MOVQ ${vt.Size()}, AX - self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ ${vt}, BX - self.Emit("MOVB", jit.Imm(1), _CX) // MOVB $1, CX - self.call_go(_F_mallocgc) // CALL_GO mallocgc -} - -func (self *_Assembler) vfollow(vt reflect.Type) { - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} - self.valloc_AX(vt) // VALLOC ${vt}, AX - self.WritePtrAX(1, jit.Ptr(_VP, 0), true) // MOVQ AX, (VP) - self.Link("_end_{n}") // _end_{n}: - self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP -} - -/** Value Parsing Routines **/ - -var ( - _F_vstring = jit.Imm(int64(native.S_vstring)) - _F_vnumber = jit.Imm(int64(native.S_vnumber)) - _F_vsigned = jit.Imm(int64(native.S_vsigned)) - _F_vunsigned = jit.Imm(int64(native.S_vunsigned)) -) - -func (self *_Assembler) check_err(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ" , _VAR_st_Vt, _AX) // MOVQ st.Vt, AX - self.Emit("TESTQ", _AX, _AX) // CMPQ AX, ${native.V_STRING} - // try to skip the value - if vt != nil { - self.Sjmp("JNS" , "_check_err_{n}") // JNE _parsing_error_v - self.Emit("MOVQ", jit.Type(vt), _ET) - self.Emit("MOVQ", _ET, _VAR_et) - if pin2 != -1 { - self.Emit("SUBQ", jit.Imm(1), _BX) - self.Emit("MOVQ", _BX, _VAR_ic) - self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 - self.Xref(pin2, 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_key_value) - } else { - self.Emit("MOVQ", _BX, _VAR_ic) - self.Byte(0x4c , 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref(pin, 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - } - self.Link("_check_err_{n}") - } else { - self.Sjmp("JS" , _LB_parsing_error_v) // JNE _parsing_error_v - } -} - -func (self *_Assembler) check_eof(d int64) { - if d == 1 { - self.Emit("CMPQ", _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - } else { - self.Emit("LEAQ", jit.Ptr(_IC, d), _AX) // LEAQ ${d}(IC), AX - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - } -} - - -func (self *_Assembler) parse_string() { - self.Emit("MOVQ", _ARG_fv, _CX) - self.call_vf(_F_vstring) - self.check_err(nil, "", -1) -} - -func (self *_Assembler) parse_number(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BX) // save ic when call native func - self.call_vf(_F_vnumber) - self.check_err(vt, pin, pin2) -} - -func (self *_Assembler) parse_signed(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BX) // save ic when call native func - self.call_vf(_F_vsigned) - self.check_err(vt, pin, pin2) -} - -func (self *_Assembler) parse_unsigned(vt reflect.Type, pin string, pin2 int) { - self.Emit("MOVQ", _IC, _BX) // save ic when call native func - self.call_vf(_F_vunsigned) - self.check_err(vt, pin, pin2) -} - -// Pointer: DI, Size: SI, Return: R9 -func (self *_Assembler) copy_string() { - self.Link("_copy_string") - self.Emit("MOVQ", _DI, _VAR_bs_p) - self.Emit("MOVQ", _SI, _VAR_bs_n) - self.Emit("MOVQ", _R9, _VAR_bs_LR) - self.malloc_AX(_SI, _ARG_sv_p) - self.Emit("MOVQ", _VAR_bs_p, _BX) - self.Emit("MOVQ", _VAR_bs_n, _CX) - self.call_go(_F_memmove) - self.Emit("MOVQ", _ARG_sv_p, _DI) - self.Emit("MOVQ", _VAR_bs_n, _SI) - self.Emit("MOVQ", _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -// Pointer: DI, Size: SI, Return: R9 -func (self *_Assembler) escape_string() { - self.Link("_escape_string") - self.Emit("MOVQ" , _DI, _VAR_bs_p) - self.Emit("MOVQ" , _SI, _VAR_bs_n) - self.Emit("MOVQ" , _R9, _VAR_bs_LR) - self.malloc_AX(_SI, _DX) // MALLOC SI, DX - self.Emit("MOVQ" , _DX, _ARG_sv_p) - self.Emit("MOVQ" , _VAR_bs_p, _DI) - self.Emit("MOVQ" , _VAR_bs_n, _SI) - self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX - self.Emit("XORL" , _R8, _R8) // XORL R8, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, fv - self.Emit("SETCC", _R8) // SETCC R8 - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 - self.call_c(_F_unquote) // CALL unquote - self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI - self.Emit("ADDQ" , jit.Imm(1), _SI) // ADDQ $1, SI - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error - self.Emit("MOVQ" , _AX, _SI) - self.Emit("MOVQ" , _ARG_sv_p, _DI) - self.Emit("MOVQ" , _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -func (self *_Assembler) escape_string_twice() { - self.Link("_escape_string_twice") - self.Emit("MOVQ" , _DI, _VAR_bs_p) - self.Emit("MOVQ" , _SI, _VAR_bs_n) - self.Emit("MOVQ" , _R9, _VAR_bs_LR) - self.malloc_AX(_SI, _DX) // MALLOC SI, DX - self.Emit("MOVQ" , _DX, _ARG_sv_p) - self.Emit("MOVQ" , _VAR_bs_p, _DI) - self.Emit("MOVQ" , _VAR_bs_n, _SI) - self.Emit("LEAQ" , _VAR_sr, _CX) // LEAQ sr, CX - self.Emit("MOVL" , jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _ARG_fv) // BTQ ${_F_disable_urc}, AX - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("SETCC", _AX) // SETCC AX - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _AX) // SHLQ ${types.B_UNICODE_REPLACE}, AX - self.Emit("ORQ" , _AX, _R8) // ORQ AX, R8 - self.call_c(_F_unquote) // CALL unquote - self.Emit("MOVQ" , _VAR_bs_n, _SI) // MOVQ ${n}, SI - self.Emit("ADDQ" , jit.Imm(3), _SI) // ADDQ $3, SI - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_unquote_error) // JS _unquote_error - self.Emit("MOVQ" , _AX, _SI) - self.Emit("MOVQ" , _ARG_sv_p, _DI) - self.Emit("MOVQ" , _VAR_bs_LR, _R9) - self.Rjmp("JMP", _R9) -} - -/** Range Checking Routines **/ - -var ( - _V_max_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_max_f32)))) - _V_min_f32 = jit.Imm(int64(uintptr(unsafe.Pointer(_Vp_min_f32)))) -) - -var ( - _Vp_max_f32 = new(float64) - _Vp_min_f32 = new(float64) -) - -func init() { - *_Vp_max_f32 = math.MaxFloat32 - *_Vp_min_f32 = -math.MaxFloat32 -} - -func (self *_Assembler) range_single_X0() { - self.Emit("MOVSD" , _VAR_st_Dv, _X0) // MOVSD 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.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 -} - -func (self *_Assembler) range_signed_CX(i *rt.GoItab, t *rt.GoType, a int64, b int64) { - self.Emit("MOVQ", _VAR_st_Iv, _CX) // MOVQ st.Iv, CX - self.Emit("MOVQ", jit.Gitab(i), _ET) // MOVQ ${i}, ET - self.Emit("MOVQ", jit.Gtype(t), _EP) // MOVQ ${t}, EP - self.Emit("CMPQ", _CX, jit.Imm(a)) // CMPQ CX, ${a} - self.Sjmp("JL" , _LB_range_error) // JL _range_error - self.Emit("CMPQ", _CX, jit.Imm(b)) // CMPQ CX, ${B} - self.Sjmp("JG" , _LB_range_error) // JG _range_error -} - -func (self *_Assembler) range_unsigned_CX(i *rt.GoItab, t *rt.GoType, v uint64) { - self.Emit("MOVQ" , _VAR_st_Iv, _CX) // MOVQ st.Iv, CX - self.Emit("MOVQ" , jit.Gitab(i), _ET) // MOVQ ${i}, ET - self.Emit("MOVQ" , jit.Gtype(t), _EP) // MOVQ ${t}, EP - self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX - self.Sjmp("JS" , _LB_range_error) // JS _range_error - self.Emit("CMPQ" , _CX, jit.Imm(int64(v))) // CMPQ CX, ${a} - self.Sjmp("JA" , _LB_range_error) // JA _range_error -} - -/** String Manipulating Routines **/ - -var ( - _F_unquote = jit.Imm(int64(native.S_unquote)) -) - -func (self *_Assembler) slice_from(p obj.Addr, d int64) { - self.Emit("MOVQ", p, _SI) // MOVQ ${p}, SI - self.slice_from_r(_SI, d) // SLICE_R SI, ${d} -} - -func (self *_Assembler) slice_from_r(p obj.Addr, d int64) { - self.Emit("LEAQ", jit.Sib(_IP, p, 1, 0), _DI) // LEAQ (IP)(${p}), DI - self.Emit("NEGQ", p) // NEGQ ${p} - self.Emit("LEAQ", jit.Sib(_IC, p, 1, d), _SI) // LEAQ d(IC)(${p}), SI -} - -func (self *_Assembler) unquote_once(p obj.Addr, n obj.Addr, stack bool, copy bool) { - self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 - self.Emit("CMPQ", _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 - self.Sjmp("JE" , "_noescape_{n}") // JE _escape_{n} - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_once_write_{n}", 4) - self.Sjmp("JMP" , "_escape_string") - self.Link("_noescape_{n}") - if copy { - self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_unquote_once_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_once_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - } - self.Link("_unquote_once_write_{n}") - self.Emit("MOVQ", _SI, n) // MOVQ SI, ${n} - if stack { - self.Emit("MOVQ", _DI, p) - } else { - self.WriteRecNotAX(10, _DI, p, false, false) - } -} - -func (self *_Assembler) unquote_twice(p obj.Addr, n obj.Addr, stack bool) { - self.Emit("CMPQ" , _VAR_st_Ep, jit.Imm(-1)) // CMPQ st.Ep, $-1 - self.Sjmp("JE" , _LB_eof_error) // JE _eof_error - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -3), jit.Imm('\\')) // CMPB -3(IP)(IC), $'\\' - self.Sjmp("JNE" , _LB_char_m3_error) // JNE _char_m3_error - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, -2), jit.Imm('"')) // CMPB -2(IP)(IC), $'"' - self.Sjmp("JNE" , _LB_char_m2_error) // JNE _char_m2_error - self.slice_from(_VAR_st_Iv, -3) // SLICE st.Iv, $-3 - self.Emit("MOVQ" , _SI, _AX) // MOVQ SI, AX - self.Emit("ADDQ" , _VAR_st_Iv, _AX) // ADDQ st.Iv, AX - self.Emit("CMPQ" , _VAR_st_Ep, _AX) // CMPQ st.Ep, AX - self.Sjmp("JE" , "_noescape_{n}") // JE _noescape_{n} - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_twice_write_{n}", 4) - self.Sjmp("JMP" , "_escape_string_twice") - self.Link("_noescape_{n}") // _noescape_{n}: - self.Emit("BTQ" , jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_unquote_twice_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_unquote_twice_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - self.Link("_unquote_twice_write_{n}") - self.Emit("MOVQ" , _SI, n) // MOVQ SI, ${n} - if stack { - self.Emit("MOVQ", _DI, p) - } else { - self.WriteRecNotAX(12, _DI, p, false, false) - } - self.Link("_unquote_twice_end_{n}") -} - -/** Memory Clearing Routines **/ - -var ( - _F_memclrHasPointers = jit.Func(memclrHasPointers) - _F_memclrNoHeapPointers = jit.Func(memclrNoHeapPointers) -) - -func (self *_Assembler) mem_clear_fn(ptrfree bool) { - if !ptrfree { - self.call_go(_F_memclrHasPointers) - } else { - self.call_go(_F_memclrNoHeapPointers) - } -} - -func (self *_Assembler) mem_clear_rem(size int64, ptrfree bool) { - self.Emit("MOVQ", jit.Imm(size), _BX) // MOVQ ${size}, BX - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _AX) // MOVQ (ST)(AX), AX - self.Emit("SUBQ", _VP, _AX) // SUBQ VP, AX - self.Emit("ADDQ", _AX, _BX) // ADDQ AX, BX - self.Emit("MOVQ", _VP, _AX) // MOVQ VP, (SP) - self.mem_clear_fn(ptrfree) // CALL_GO memclr{Has,NoHeap}Pointers -} - -/** Map Assigning Routines **/ - -var ( - _F_mapassign = jit.Func(mapassign) - _F_mapassign_fast32 = jit.Func(mapassign_fast32) - _F_mapassign_faststr = jit.Func(mapassign_faststr) - _F_mapassign_fast64ptr = jit.Func(mapassign_fast64ptr) -) - -var ( - _F_decodeJsonUnmarshaler obj.Addr - _F_decodeTextUnmarshaler obj.Addr -) - -func init() { - _F_decodeJsonUnmarshaler = jit.Func(decodeJsonUnmarshaler) - _F_decodeTextUnmarshaler = jit.Func(decodeTextUnmarshaler) -} - -func (self *_Assembler) mapaccess_ptr(t reflect.Type) { - if rt.MapType(rt.UnpackType(t)).IndirectElem() { - self.vfollow(t.Elem()) - } -} - -func (self *_Assembler) mapassign_std(t reflect.Type, v obj.Addr) { - self.Emit("LEAQ", v, _AX) // LEAQ ${v}, AX - self.mapassign_call_from_AX(t, _F_mapassign) // MAPASSIGN ${t}, mapassign -} - -func (self *_Assembler) mapassign_str_fast(t reflect.Type, p obj.Addr, n obj.Addr) { - self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX - self.Emit("MOVQ", _VP, _BX) // MOVQ VP, BX - self.Emit("MOVQ", p, _CX) // MOVQ ${p}, CX - self.Emit("MOVQ", n, _DI) // MOVQ ${n}, DI - self.call_go(_F_mapassign_faststr) // CALL_GO ${fn} - self.Emit("MOVQ", _AX, _VP) // MOVQ AX, VP - self.mapaccess_ptr(t) -} - -func (self *_Assembler) mapassign_call_from_AX(t reflect.Type, fn obj.Addr) { - self.Emit("MOVQ", _AX, _CX) - self.Emit("MOVQ", jit.Type(t), _AX) // MOVQ ${t}, AX - self.Emit("MOVQ", _VP, _BX) // MOVQ VP, _BX - self.call_go(fn) // CALL_GO ${fn} - self.Emit("MOVQ", _AX, _VP) // MOVQ AX, VP -} - -func (self *_Assembler) mapassign_fastx(t reflect.Type, fn obj.Addr) { - self.mapassign_call_from_AX(t, fn) - self.mapaccess_ptr(t) -} - -func (self *_Assembler) mapassign_utext(t reflect.Type, addressable bool) { - pv := false - vk := t.Key() - tk := t.Key() - - /* deref pointer if needed */ - if vk.Kind() == reflect.Ptr { - pv = true - vk = vk.Elem() - } - - /* addressable value with pointer receiver */ - if addressable { - pv = false - tk = reflect.PtrTo(tk) - } - - /* allocate the key, and call the unmarshaler */ - self.valloc(vk, _BX) // VALLOC ${vk}, BX - // must spill vk pointer since next call_go may invoke GC - self.Emit("MOVQ" , _BX, _ARG_vk) - self.Emit("MOVQ" , jit.Type(tk), _AX) // MOVQ ${tk}, AX - self.Emit("MOVQ" , _ARG_sv_p, _CX) // MOVQ sv.p, CX - self.Emit("MOVQ" , _ARG_sv_n, _DI) // MOVQ sv.n, DI - self.call_go(_F_decodeTextUnmarshaler) // CALL_GO decodeTextUnmarshaler - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.Emit("MOVQ" , _ARG_vk, _AX) // MOVQ VAR.vk, AX - self.Emit("MOVQ", jit.Imm(0), _ARG_vk) - - /* select the correct assignment function */ - if !pv { - self.mapassign_call_from_AX(t, _F_mapassign) - } else { - self.mapassign_fastx(t, _F_mapassign_fast64ptr) - } -} - -/** External Unmarshaler Routines **/ - -var ( - _F_skip_one = jit.Imm(int64(native.S_skip_one)) - _F_skip_array = jit.Imm(int64(native.S_skip_array)) - _F_skip_object = jit.Imm(int64(native.S_skip_object)) - _F_skip_number = jit.Imm(int64(native.S_skip_number)) -) - -func (self *_Assembler) unmarshal_json(t reflect.Type, deref bool) { - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v - self.slice_from_r(_AX, 0) // SLICE_R AX, $0 - self.Emit("MOVQ" , _DI, _ARG_sv_p) // MOVQ DI, sv.p - self.Emit("MOVQ" , _SI, _ARG_sv_n) // MOVQ SI, sv.n - self.unmarshal_func(t, _F_decodeJsonUnmarshaler, deref) // UNMARSHAL json, ${t}, ${deref} -} - -func (self *_Assembler) unmarshal_text(t reflect.Type, deref bool) { - self.parse_string() // PARSE STRING - self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - self.unmarshal_func(t, _F_decodeTextUnmarshaler, deref) // UNMARSHAL text, ${t}, ${deref} -} - -func (self *_Assembler) unmarshal_func(t reflect.Type, fn obj.Addr, deref bool) { - pt := t - vk := t.Kind() - - /* allocate the field if needed */ - if deref && vk == reflect.Ptr { - self.Emit("MOVQ" , _VP, _BX) // MOVQ VP, BX - self.Emit("MOVQ" , jit.Ptr(_BX, 0), _BX) // MOVQ (BX), BX - self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX - self.Sjmp("JNZ" , "_deref_{n}") // JNZ _deref_{n} - self.valloc(t.Elem(), _BX) // VALLOC ${t.Elem()}, BX - self.WriteRecNotAX(3, _BX, jit.Ptr(_VP, 0), false, false) // MOVQ BX, (VP) - self.Link("_deref_{n}") // _deref_{n}: - } else { - /* set value pointer */ - self.Emit("MOVQ", _VP, _BX) // MOVQ (VP), BX - } - - /* set value type */ - self.Emit("MOVQ", jit.Type(pt), _AX) // MOVQ ${pt}, AX - - /* set the source string and call the unmarshaler */ - self.Emit("MOVQ" , _ARG_sv_p, _CX) // MOVQ sv.p, CX - self.Emit("MOVQ" , _ARG_sv_n, _DI) // MOVQ sv.n, DI - self.call_go(fn) // CALL_GO ${fn} - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -/** Dynamic Decoding Routine **/ - -var ( - _F_decodeTypedPointer obj.Addr -) - -func init() { - _F_decodeTypedPointer = jit.Func(decodeTypedPointer) -} - -func (self *_Assembler) decode_dynamic(vt obj.Addr, vp obj.Addr) { - self.Emit("MOVQ" , vp, _SI) // MOVQ ${vp}, SI - self.Emit("MOVQ" , vt, _DI) // MOVQ ${vt}, DI - self.Emit("MOVQ", _ARG_sp, _AX) // MOVQ sp, AX - self.Emit("MOVQ", _ARG_sl, _BX) // MOVQ sp, BX - self.Emit("MOVQ" , _IC, _CX) // MOVQ IC, CX - self.Emit("MOVQ" , _ST, _R8) // MOVQ ST, R8 - self.Emit("MOVQ" , _ARG_fv, _R9) // MOVQ fv, R9 - self.save(_REG_rt...) - self.Emit("MOVQ", _F_decodeTypedPointer, _IL) // MOVQ ${fn}, R11 - self.Rjmp("CALL", _IL) // CALL R11 - self.load(_REG_rt...) - self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC - self.Emit("MOVQ" , _BX, _ET) // MOVQ BX, ET - self.Emit("MOVQ" , _CX, _EP) // MOVQ CX, EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JE", "_decode_dynamic_end_{n}") // JE, _decode_dynamic_end_{n} - self.Emit("MOVQ", _I_json_MismatchTypeError, _CX) // MOVQ _I_json_MismatchTypeError, CX - self.Emit("CMPQ", _ET, _CX) // CMPQ ET, CX - self.Sjmp("JNE", _LB_error) // JNE LB_error - self.Emit("MOVQ", _EP, _VAR_ic) // MOVQ EP, VAR_ic - self.Emit("MOVQ", _ET, _VAR_et) // MOVQ ET, VAR_et - self.Link("_decode_dynamic_end_{n}") -} - -/** OpCode Assembler Functions **/ - -var ( - _F_memequal = jit.Func(memequal) - _F_memmove = jit.Func(memmove) - _F_growslice = jit.Func(growslice) - _F_makeslice = jit.Func(makeslice) - _F_makemap_small = jit.Func(makemap_small) - _F_mapassign_fast64 = jit.Func(mapassign_fast64) -) - -var ( - _F_lspace = jit.Imm(int64(native.S_lspace)) - _F_strhash = jit.Imm(int64(caching.S_strhash)) -) - -var ( - _F_b64decode = jit.Imm(int64(_subr__b64decode)) - _F_decodeValue = jit.Imm(int64(_subr_decode_value)) -) - -var ( - _F_FieldMap_GetCaseInsensitive obj.Addr - _Empty_Slice = make([]byte, 0) - _Zero_Base = int64(uintptr(((*rt.GoSlice)(unsafe.Pointer(&_Empty_Slice))).Ptr)) -) - -const ( - _MODE_AVX2 = 1 << 2 -) - -const ( - _Fe_ID = int64(unsafe.Offsetof(caching.FieldEntry{}.ID)) - _Fe_Name = int64(unsafe.Offsetof(caching.FieldEntry{}.Name)) - _Fe_Hash = int64(unsafe.Offsetof(caching.FieldEntry{}.Hash)) -) - -const ( - _Vk_Ptr = int64(reflect.Ptr) - _Gt_KindFlags = int64(unsafe.Offsetof(rt.GoType{}.KindFlags)) -) - -func init() { - _F_FieldMap_GetCaseInsensitive = jit.Func((*caching.FieldMap).GetCaseInsensitive) -} - -func (self *_Assembler) _asm_OP_any(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX - self.Emit("TESTQ" , _CX, _CX) // TESTQ CX, CX - self.Sjmp("JZ" , "_decode_{n}") // JZ _decode_{n} - self.Emit("CMPQ" , _CX, _VP) // CMPQ CX, VP - self.Sjmp("JE" , "_decode_{n}") // JE _decode_{n} - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("MOVBLZX", jit.Ptr(_AX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(AX), DX - self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX - self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} - self.Sjmp("JNE" , "_decode_{n}") // JNE _decode_{n} - self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI - self.decode_dynamic(_AX, _DI) // DECODE AX, DI - self.Sjmp("JMP" , "_decode_end_{n}") // JMP _decode_end_{n} - self.Link("_decode_{n}") // _decode_{n}: - self.Emit("MOVQ" , _ARG_fv, _DF) // MOVQ fv, DF - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) - self.call(_F_decodeValue) // CALL decodeValue - self.Emit("MOVQ" , jit.Imm(0), jit.Ptr(_SP, 0)) // MOVQ _ST, (SP) - self.Emit("TESTQ" , _EP, _EP) // TESTQ EP, EP - self.Sjmp("JNZ" , _LB_parsing_error) // JNZ _parsing_error - self.Link("_decode_end_{n}") // _decode_end_{n}: -} - -func (self *_Assembler) _asm_OP_dyn(p *_Instr) { - self.Emit("MOVQ" , jit.Type(p.vt()), _ET) // MOVQ ${p.vt()}, ET - self.Emit("CMPQ" , jit.Ptr(_VP, 8), jit.Imm(0)) // CMPQ 8(VP), $0 - self.Sjmp("JE" , _LB_type_error) // JE _type_error - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _CX) // MOVQ (VP), CX - self.Emit("MOVQ" , jit.Ptr(_CX, 8), _CX) // MOVQ 8(CX), CX - self.Emit("MOVBLZX", jit.Ptr(_CX, _Gt_KindFlags), _DX) // MOVBLZX _Gt_KindFlags(CX), DX - self.Emit("ANDL" , jit.Imm(rt.F_kind_mask), _DX) // ANDL ${F_kind_mask}, DX - self.Emit("CMPL" , _DX, jit.Imm(_Vk_Ptr)) // CMPL DX, ${reflect.Ptr} - self.Sjmp("JNE" , _LB_type_error) // JNE _type_error - self.Emit("LEAQ" , jit.Ptr(_VP, 8), _DI) // LEAQ 8(VP), DI - self.decode_dynamic(_CX, _DI) // DECODE CX, DI - self.Link("_decode_end_{n}") // _decode_end_{n}: -} - -func (self *_Assembler) _asm_OP_str(_ *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false, true) // UNQUOTE once, (VP), 8(VP) -} - -func (self *_Assembler) _asm_OP_bin(_ *_Instr) { - self.parse_string() // PARSE STRING - self.slice_from(_VAR_st_Iv, -1) // SLICE st.Iv, $-1 - self.Emit("MOVQ" , _DI, jit.Ptr(_VP, 0)) // MOVQ DI, (VP) - self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) - self.Emit("SHRQ" , jit.Imm(2), _SI) // SHRQ $2, SI - self.Emit("LEAQ" , jit.Sib(_SI, _SI, 2, 0), _SI) // LEAQ (SI)(SI*2), SI - self.Emit("MOVQ" , _SI, jit.Ptr(_VP, 16)) // MOVQ SI, 16(VP) - self.malloc_AX(_SI, _SI) // MALLOC SI, SI - - // TODO: due to base64x's bug, only use AVX mode now - self.Emit("MOVL", jit.Imm(_MODE_JSON), _CX) // MOVL $_MODE_JSON, CX - - /* call the decoder */ - self.Emit("XORL" , _DX, _DX) // XORL DX, DX - self.Emit("MOVQ" , _VP, _DI) // MOVQ VP, DI - - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _R8) // MOVQ SI, (VP) - self.WriteRecNotAX(4, _SI, jit.Ptr(_VP, 0), true, false) // XCHGQ SI, (VP) - self.Emit("MOVQ" , _R8, _SI) - - self.Emit("XCHGQ", _DX, jit.Ptr(_VP, 8)) // XCHGQ DX, 8(VP) - self.call_c(_F_b64decode) // CALL b64decode - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_base64_error) // JS _base64_error - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) -} - -func (self *_Assembler) _asm_OP_bool(_ *_Instr) { - self.Emit("LEAQ", jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('f')) // CMPB (IP)(IC), $'f' - self.Sjmp("JE" , "_false_{n}") // JE _false_{n} - self.Emit("MOVL", jit.Imm(_IM_true), _CX) // MOVL $"true", CX - self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) - self.Sjmp("JE" , "_bool_true_{n}") - // try to skip the value - self.Emit("MOVQ", _IC, _VAR_ic) - self.Emit("MOVQ", _T_bool, _ET) - self.Emit("MOVQ", _ET, _VAR_et) - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_end_{n}", 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - - self.Link("_bool_true_{n}") - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.Emit("MOVB", jit.Imm(1), jit.Ptr(_VP, 0)) // MOVB $1, (VP) - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_false_{n}") // _false_{n}: - self.Emit("ADDQ", jit.Imm(1), _AX) // ADDQ $1, AX - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("CMPQ", _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , _LB_eof_error) // JA _eof_error - self.Emit("MOVL", jit.Imm(_IM_alse), _CX) // MOVL $"alse", CX - self.Emit("CMPL", _CX, jit.Sib(_IP, _IC, 1, 0)) // CMPL CX, (IP)(IC) - self.Sjmp("JNE" , _LB_im_error) // JNE _im_error - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVB", _AX, jit.Ptr(_VP, 0)) // MOVB AX, (VP) - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_num(_ *_Instr) { - self.Emit("MOVQ", jit.Imm(0), _VAR_fl) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) - self.Emit("MOVQ", _IC, _BX) - self.Sjmp("JNE", "_skip_number_{n}") - self.Emit("MOVQ", jit.Imm(1), _VAR_fl) - self.Emit("ADDQ", jit.Imm(1), _IC) - self.Link("_skip_number_{n}") - - /* call skip_number */ - self.Emit("LEAQ", _ARG_s, _DI) // LEAQ s<>+0(FP), DI - self.Emit("MOVQ", _IC, _ARG_ic) // MOVQ IC, ic<>+16(FP) - self.Emit("LEAQ", _ARG_ic, _SI) // LEAQ ic<>+16(FP), SI - self.callc(_F_skip_number) // CALL _F_skip_number - self.Emit("MOVQ", _ARG_ic, _IC) // MOVQ ic<>+16(FP), IC - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNS" , "_num_next_{n}") - - /* call skip one */ - self.Emit("MOVQ", _BX, _VAR_ic) - self.Emit("MOVQ", _T_number, _ET) - self.Emit("MOVQ", _ET, _VAR_et) - self.Byte(0x4c, 0x8d, 0x0d) - self.Sref("_num_end_{n}", 4) - self.Emit("MOVQ", _R9, _VAR_pc) - self.Sjmp("JMP" , _LB_skip_one) - - /* assgin string */ - self.Link("_num_next_{n}") - self.slice_from_r(_AX, 0) - self.Emit("BTQ", jit.Imm(_F_copy_string), _ARG_fv) - self.Sjmp("JNC", "_num_write_{n}") - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ (PC), R9 - self.Sref("_num_write_{n}", 4) - self.Sjmp("JMP", "_copy_string") - self.Link("_num_write_{n}") - self.Emit("MOVQ", _SI, jit.Ptr(_VP, 8)) // MOVQ SI, 8(VP) - self.WriteRecNotAX(13, _DI, jit.Ptr(_VP, 0), false, false) - self.Emit("CMPQ", _VAR_fl, jit.Imm(1)) - self.Sjmp("JNE", "_num_end_{n}") - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('"')) - self.Sjmp("JNE", _LB_char_0_error) - self.Emit("ADDQ", jit.Imm(1), _IC) - self.Link("_num_end_{n}") -} - -func (self *_Assembler) _asm_OP_i8(_ *_Instr) { - var pin = "_i8_end_{n}" - self.parse_signed(int8Type, pin, -1) // PARSE int8 - self.range_signed_CX(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 - self.Emit("MOVB", _CX, jit.Ptr(_VP, 0)) // MOVB CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i16(_ *_Instr) { - var pin = "_i16_end_{n}" - self.parse_signed(int16Type, pin, -1) // PARSE int16 - self.range_signed_CX(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 - self.Emit("MOVW", _CX, jit.Ptr(_VP, 0)) // MOVW CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i32(_ *_Instr) { - var pin = "_i32_end_{n}" - self.parse_signed(int32Type, pin, -1) // PARSE int32 - self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 - self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_i64(_ *_Instr) { - var pin = "_i64_end_{n}" - self.parse_signed(int64Type, pin, -1) // PARSE int64 - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u8(_ *_Instr) { - var pin = "_u8_end_{n}" - self.parse_unsigned(uint8Type, pin, -1) // PARSE uint8 - self.range_unsigned_CX(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 - self.Emit("MOVB", _CX, jit.Ptr(_VP, 0)) // MOVB CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u16(_ *_Instr) { - var pin = "_u16_end_{n}" - self.parse_unsigned(uint16Type, pin, -1) // PARSE uint16 - self.range_unsigned_CX(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 - self.Emit("MOVW", _CX, jit.Ptr(_VP, 0)) // MOVW CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u32(_ *_Instr) { - var pin = "_u32_end_{n}" - self.parse_unsigned(uint32Type, pin, -1) // PARSE uint32 - self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 - self.Emit("MOVL", _CX, jit.Ptr(_VP, 0)) // MOVL CX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_u64(_ *_Instr) { - var pin = "_u64_end_{n}" - self.parse_unsigned(uint64Type, pin, -1) // PARSE uint64 - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_f32(_ *_Instr) { - var pin = "_f32_end_{n}" - self.parse_number(float32Type, pin, -1) // PARSE NUMBER - self.range_single_X0() // RANGE float32 - self.Emit("MOVSS", _X0, jit.Ptr(_VP, 0)) // MOVSS X0, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_f64(_ *_Instr) { - var pin = "_f64_end_{n}" - self.parse_number(float64Type, pin, -1) // PARSE NUMBER - self.Emit("MOVSD", _VAR_st_Dv, _X0) // MOVSD st.Dv, X0 - self.Emit("MOVSD", _X0, jit.Ptr(_VP, 0)) // MOVSD X0, (VP) - self.Link(pin) -} - -func (self *_Assembler) _asm_OP_unquote(_ *_Instr) { - self.check_eof(2) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm('\\')) // CMPB (IP)(IC), $'\\' - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 1), jit.Imm('"')) // CMPB 1(IP)(IC), $'"' - self.Sjmp("JNE" , _LB_char_1_error) // JNE _char_1_error - self.Emit("ADDQ", jit.Imm(2), _IC) // ADDQ $2, IC - self.parse_string() // PARSE STRING - self.unquote_twice(jit.Ptr(_VP, 0), jit.Ptr(_VP, 8), false) // UNQUOTE twice, (VP), 8(VP) -} - -func (self *_Assembler) _asm_OP_nil_1(_ *_Instr) { - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _AX, jit.Ptr(_VP, 0)) // MOVQ AX, (VP) -} - -func (self *_Assembler) _asm_OP_nil_2(_ *_Instr) { - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) -} - -func (self *_Assembler) _asm_OP_nil_3(_ *_Instr) { - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 16)) // MOVOU AX, 16(VP) -} - -func (self *_Assembler) _asm_OP_deref(p *_Instr) { - self.vfollow(p.vt()) -} - -func (self *_Assembler) _asm_OP_index(p *_Instr) { - self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ ${p.vi()}, AX - self.Emit("ADDQ", _AX, _VP) // ADDQ _AX, _VP -} - -func (self *_Assembler) _asm_OP_is_null(p *_Instr) { - self.Emit("LEAQ" , jit.Ptr(_IC, 4), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , "_not_null_{n}") // JA _not_null_{n} - self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} - self.Link("_not_null_{n}") // _not_null_{n}: -} - -func (self *_Assembler) _asm_OP_is_null_quote(p *_Instr) { - self.Emit("LEAQ" , jit.Ptr(_IC, 5), _AX) // LEAQ 4(IC), AX - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JA" , "_not_null_quote_{n}") // JA _not_null_quote_{n} - self.Emit("CMPL" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(_IM_null)) // CMPL (IP)(IC), $"null" - self.Sjmp("JNE" , "_not_null_quote_{n}") // JNE _not_null_quote_{n} - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 4), jit.Imm('"')) // CMPB 4(IP)(IC), $'"' - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} - self.Link("_not_null_quote_{n}") // _not_null_quote_{n}: -} - -func (self *_Assembler) _asm_OP_map_init(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _AX) // MOVQ (VP), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_end_{n}") // JNZ _end_{n} - self.call_go(_F_makemap_small) // CALL_GO makemap_small - self.WritePtrAX(6, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Link("_end_{n}") // _end_{n}: - self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP -} - -func (self *_Assembler) _asm_OP_map_key_i8(p *_Instr) { - self.parse_signed(int8Type, "", p.vi()) // PARSE int8 - self.range_signed_CX(_I_int8, _T_int8, math.MinInt8, math.MaxInt8) // RANGE int8 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int8, mapassign, st.Iv -} - -func (self *_Assembler) _asm_OP_map_key_i16(p *_Instr) { - self.parse_signed(int16Type, "", p.vi()) // PARSE int16 - self.range_signed_CX(_I_int16, _T_int16, math.MinInt16, math.MaxInt16) // RANGE int16 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN int16, mapassign, st.Iv -} - -func (self *_Assembler) _asm_OP_map_key_i32(p *_Instr) { - self.parse_signed(int32Type, "", p.vi()) // PARSE int32 - self.range_signed_CX(_I_int32, _T_int32, math.MinInt32, math.MaxInt32) // RANGE int32 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int32, mapassign, st.Iv - } else { - self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX - self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN int32, mapassign_fast32 - } -} - -func (self *_Assembler) _asm_OP_map_key_i64(p *_Instr) { - self.parse_signed(int64Type, "", p.vi()) // PARSE int64 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN int64, mapassign, st.Iv - } else { - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN int64, mapassign_fast64 - } -} - -func (self *_Assembler) _asm_OP_map_key_u8(p *_Instr) { - self.parse_unsigned(uint8Type, "", p.vi()) // PARSE uint8 - self.range_unsigned_CX(_I_uint8, _T_uint8, math.MaxUint8) // RANGE uint8 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint8, vt.Iv -} - -func (self *_Assembler) _asm_OP_map_key_u16(p *_Instr) { - self.parse_unsigned(uint16Type, "", p.vi()) // PARSE uint16 - self.range_unsigned_CX(_I_uint16, _T_uint16, math.MaxUint16) // RANGE uint16 - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Iv) // MAPASSIGN uint16, vt.Iv -} - -func (self *_Assembler) _asm_OP_map_key_u32(p *_Instr) { - self.parse_unsigned(uint32Type, "", p.vi()) // PARSE uint32 - self.range_unsigned_CX(_I_uint32, _T_uint32, math.MaxUint32) // RANGE uint32 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint32, vt.Iv - } else { - self.Emit("MOVQ", _CX, _AX) // MOVQ CX, AX - self.mapassign_fastx(vt, _F_mapassign_fast32) // MAPASSIGN uint32, mapassign_fast32 - } -} - -func (self *_Assembler) _asm_OP_map_key_u64(p *_Instr) { - self.parse_unsigned(uint64Type, "", p.vi()) // PARSE uint64 - self.match_char('"') - if vt := p.vt(); !mapfast(vt) { - self.mapassign_std(vt, _VAR_st_Iv) // MAPASSIGN uint64, vt.Iv - } else { - self.Emit("MOVQ", _VAR_st_Iv, _AX) // MOVQ st.Iv, AX - self.mapassign_fastx(vt, _F_mapassign_fast64) // MAPASSIGN uint64, mapassign_fast64 - } -} - -func (self *_Assembler) _asm_OP_map_key_f32(p *_Instr) { - self.parse_number(float32Type, "", p.vi()) // PARSE NUMBER - self.range_single_X0() // RANGE float32 - self.Emit("MOVSS", _X0, _VAR_st_Dv) // MOVSS X0, st.Dv - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv -} - -func (self *_Assembler) _asm_OP_map_key_f64(p *_Instr) { - self.parse_number(float64Type, "", p.vi()) // PARSE NUMBER - self.match_char('"') - self.mapassign_std(p.vt(), _VAR_st_Dv) // MAPASSIGN ${p.vt()}, mapassign, st.Dv -} - -func (self *_Assembler) _asm_OP_map_key_str(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - if vt := p.vt(); !mapfast(vt) { - self.valloc(vt.Key(), _DI) - self.Emit("MOVOU", _ARG_sv, _X0) - self.Emit("MOVOU", _X0, jit.Ptr(_DI, 0)) - self.mapassign_std(vt, jit.Ptr(_DI, 0)) // MAPASSIGN string, DI, SI - } else { - self.mapassign_str_fast(vt, _ARG_sv_p, _ARG_sv_n) // MAPASSIGN string, DI, SI - } -} - -func (self *_Assembler) _asm_OP_map_key_utext(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - self.mapassign_utext(p.vt(), false) // MAPASSIGN utext, ${p.vt()}, false -} - -func (self *_Assembler) _asm_OP_map_key_utext_p(p *_Instr) { - self.parse_string() // PARSE STRING - self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, true) // UNQUOTE once, sv.p, sv.n - self.mapassign_utext(p.vt(), true) // MAPASSIGN utext, ${p.vt()}, true -} - -func (self *_Assembler) _asm_OP_array_skip(_ *_Instr) { - self.call_sf(_F_skip_array) // CALL_SF skip_array - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_array_clear(p *_Instr) { - self.mem_clear_rem(p.i64(), true) -} - -func (self *_Assembler) _asm_OP_array_clear_p(p *_Instr) { - self.mem_clear_rem(p.i64(), false) -} - -func (self *_Assembler) _asm_OP_slice_init(p *_Instr) { - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) - self.Emit("MOVQ" , jit.Ptr(_VP, 16), _BX) // MOVQ 16(VP), BX - self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX - self.Sjmp("JNZ" , "_done_{n}") // JNZ _done_{n} - self.Emit("MOVQ" , jit.Imm(_MinSlice), _CX) // MOVQ ${_MinSlice}, CX - self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) - self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, DX - self.call_go(_F_makeslice) // CALL_GO makeslice - self.WritePtrAX(7, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Emit("XORL" , _AX, _AX) // XORL AX, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_VP, 8)) // MOVQ AX, 8(VP) - self.Link("_done_{n}") // _done_{n} -} - -func (self *_Assembler) _asm_OP_check_empty(p *_Instr) { - rbracket := p.vb() - if rbracket == ']' { - self.check_eof(1) - self.Emit("LEAQ", jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(rbracket))) // CMPB (IP)(IC), ']' - self.Sjmp("JNE" , "_not_empty_array_{n}") // JNE _not_empty_array_{n} - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - self.StorePtr(_Zero_Base, jit.Ptr(_VP, 0), _AX) // MOVQ $zerobase, (VP) - self.Emit("PXOR", _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 8)) // MOVOU X0, 8(VP) - self.Xjmp("JMP" , p.vi()) // JMP {p.vi()} - self.Link("_not_empty_array_{n}") - } else { - panic("only implement check empty array here!") - } -} - -func (self *_Assembler) _asm_OP_slice_append(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_VP, 8), _AX) // MOVQ 8(VP), AX - self.Emit("CMPQ" , _AX, jit.Ptr(_VP, 16)) // CMPQ AX, 16(VP) - self.Sjmp("JB" , "_index_{n}") // JB _index_{n} - self.Emit("MOVQ" , _AX, _SI) // MOVQ AX, SI - self.Emit("SHLQ" , jit.Imm(1), _SI) // SHLQ $1, SI - self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _BX) // MOVQ (VP), BX - self.Emit("MOVQ" , jit.Ptr(_VP, 8), _CX) // MOVQ 8(VP), CX - self.Emit("MOVQ" , jit.Ptr(_VP, 16), _DI) // MOVQ 16(VP), DI - self.call_go(_F_growslice) // CALL_GO growslice - self.WritePtrAX(8, jit.Ptr(_VP, 0), false) // MOVQ AX, (VP) - self.Emit("MOVQ" , _BX, jit.Ptr(_VP, 8)) // MOVQ BX, 8(VP) - self.Emit("MOVQ" , _CX, jit.Ptr(_VP, 16)) // MOVQ CX, 16(VP) - - // because growslice not zero memory {oldcap, newlen} when append et not has ptrdata. - // but we should zero it, avoid decode it as random values. - if rt.UnpackType(p.vt()).PtrData == 0 { - self.Emit("MOVQ" , _CX, _DI) // MOVQ CX, DI - self.Emit("SUBQ" , _BX, _DI) // MOVQ BX, DI - - self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) - self.Emit("MOVQ" , _AX, _VP) // MOVQ AX, VP - self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX - self.Emit("MOVQ" , _BX, _AX) // MOVQ BX, AX - self.From("MULQ" , _CX) // MULQ CX - self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP - - self.Emit("MOVQ" , _DI, _AX) // MOVQ SI, AX - self.From("MULQ" , _CX) // MULQ BX - self.Emit("MOVQ" , _AX, _BX) // ADDQ AX, BX - self.Emit("MOVQ" , _VP, _AX) // MOVQ VP, AX - self.mem_clear_fn(true) // CALL_GO memclr{Has,NoHeap} - self.Sjmp("JMP", "_append_slice_end_{n}") - } - - self.Emit("MOVQ" , _BX, _AX) // MOVQ BX, AX - self.Link("_index_{n}") // _index_{n}: - self.Emit("ADDQ" , jit.Imm(1), jit.Ptr(_VP, 8)) // ADDQ $1, 8(VP) - self.Emit("MOVQ" , jit.Ptr(_VP, 0), _VP) // MOVQ (VP), VP - self.Emit("MOVQ" , jit.Imm(int64(p.vlen())), _CX) // MOVQ ${p.vlen()}, CX - self.From("MULQ" , _CX) // MULQ CX - self.Emit("ADDQ" , _AX, _VP) // ADDQ AX, VP - self.Link("_append_slice_end_{n}") -} - -func (self *_Assembler) _asm_OP_object_skip(_ *_Instr) { - self.call_sf(_F_skip_object) // CALL_SF skip_object - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_object_next(_ *_Instr) { - self.call_sf(_F_skip_one) // CALL_SF skip_one - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parse_error_v -} - -func (self *_Assembler) _asm_OP_struct_field(p *_Instr) { - assert_eq(caching.FieldEntrySize, 32, "invalid field entry size") - self.Emit("MOVQ" , jit.Imm(-1), _AX) // MOVQ $-1, AX - self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, sr - self.parse_string() // PARSE STRING - self.unquote_once(_ARG_sv_p, _ARG_sv_n, true, false) // UNQUOTE once, sv.p, sv.n - self.Emit("LEAQ" , _ARG_sv, _AX) // LEAQ sv, AX - self.Emit("XORL" , _BX, _BX) // XORL BX, BX - self.call_go(_F_strhash) // CALL_GO strhash - self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 - self.Emit("MOVQ" , jit.Imm(freezeFields(p.vf())), _CX) // MOVQ ${p.vf()}, CX - self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_b), _SI) // MOVQ FieldMap.b(CX), SI - self.Emit("MOVQ" , jit.Ptr(_CX, caching.FieldMap_N), _CX) // MOVQ FieldMap.N(CX), CX - self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX - self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} - self.Link("_loop_{n}") // _loop_{n}: - self.Emit("XORL" , _DX, _DX) // XORL DX, DX - self.From("DIVQ" , _CX) // DIVQ CX - self.Emit("LEAQ" , jit.Ptr(_DX, 1), _AX) // LEAQ 1(DX), AX - self.Emit("SHLQ" , jit.Imm(5), _DX) // SHLQ $5, DX - self.Emit("LEAQ" , jit.Sib(_SI, _DX, 1, 0), _DI) // LEAQ (SI)(DX), DI - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Hash), _R8) // MOVQ FieldEntry.Hash(DI), R8 - self.Emit("TESTQ", _R8, _R8) // TESTQ R8, R8 - self.Sjmp("JZ" , "_try_lowercase_{n}") // JZ _try_lowercase_{n} - self.Emit("CMPQ" , _R8, _R9) // CMPQ R8, R9 - self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name + 8), _DX) // MOVQ FieldEntry.Name+8(DI), DX - self.Emit("CMPQ" , _DX, _ARG_sv_n) // CMPQ DX, sv.n - self.Sjmp("JNE" , "_loop_{n}") // JNE _loop_{n} - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_ID), _R8) // MOVQ FieldEntry.ID(DI), R8 - self.Emit("MOVQ" , _AX, _VAR_ss_AX) // MOVQ AX, ss.AX - self.Emit("MOVQ" , _CX, _VAR_ss_CX) // MOVQ CX, ss.CX - self.Emit("MOVQ" , _SI, _VAR_ss_SI) // MOVQ SI, ss.SI - self.Emit("MOVQ" , _R8, _VAR_ss_R8) // MOVQ R8, ss.R8 - self.Emit("MOVQ" , _R9, _VAR_ss_R9) // MOVQ R9, ss.R9 - self.Emit("MOVQ" , _ARG_sv_p, _AX) // MOVQ _VAR_sv_p, AX - self.Emit("MOVQ" , jit.Ptr(_DI, _Fe_Name), _CX) // MOVQ FieldEntry.Name(DI), CX - self.Emit("MOVQ" , _CX, _BX) // MOVQ CX, 8(SP) - self.Emit("MOVQ" , _DX, _CX) // MOVQ DX, 16(SP) - self.call_go(_F_memequal) // CALL_GO memequal - self.Emit("MOVB" , _AX, _DX) // MOVB 24(SP), DX - self.Emit("MOVQ" , _VAR_ss_AX, _AX) // MOVQ ss.AX, AX - self.Emit("MOVQ" , _VAR_ss_CX, _CX) // MOVQ ss.CX, CX - self.Emit("MOVQ" , _VAR_ss_SI, _SI) // MOVQ ss.SI, SI - self.Emit("MOVQ" , _VAR_ss_R9, _R9) // MOVQ ss.R9, R9 - self.Emit("TESTB", _DX, _DX) // TESTB DX, DX - self.Sjmp("JZ" , "_loop_{n}") // JZ _loop_{n} - self.Emit("MOVQ" , _VAR_ss_R8, _R8) // MOVQ ss.R8, R8 - self.Emit("MOVQ" , _R8, _VAR_sr) // MOVQ R8, sr - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_try_lowercase_{n}") // _try_lowercase_{n}: - self.Emit("MOVQ" , jit.Imm(referenceFields(p.vf())), _AX) // MOVQ ${p.vf()}, AX - self.Emit("MOVQ", _ARG_sv_p, _BX) // MOVQ sv, BX - self.Emit("MOVQ", _ARG_sv_n, _CX) // MOVQ sv, CX - self.call_go(_F_FieldMap_GetCaseInsensitive) // CALL_GO FieldMap::GetCaseInsensitive - self.Emit("MOVQ" , _AX, _VAR_sr) // MOVQ AX, _VAR_sr - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNS" , "_end_{n}") // JNS _end_{n} - self.Emit("BTQ" , jit.Imm(_F_disable_unknown), _ARG_fv) // BTQ ${_F_disable_unknown}, fv - self.Sjmp("JC" , _LB_field_error) // JC _field_error - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_unmarshal(p *_Instr) { - self.unmarshal_json(p.vt(), true) -} - -func (self *_Assembler) _asm_OP_unmarshal_p(p *_Instr) { - self.unmarshal_json(p.vt(), false) -} - -func (self *_Assembler) _asm_OP_unmarshal_text(p *_Instr) { - self.unmarshal_text(p.vt(), true) -} - -func (self *_Assembler) _asm_OP_unmarshal_text_p(p *_Instr) { - self.unmarshal_text(p.vt(), false) -} - -func (self *_Assembler) _asm_OP_lspace(_ *_Instr) { - self.lspace("_{n}") -} - -func (self *_Assembler) lspace(subfix string) { - var label = "_lspace" + subfix - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , label) // JA _nospace_{n} - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , label) // JNC _nospace_{n} - - /* test up to 4 characters */ - for i := 0; i < 3; i++ { - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , label) // JA _nospace_{n} - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , label) // JNC _nospace_{n} - } - - /* handle over to the native function */ - self.Emit("MOVQ" , _IP, _DI) // MOVQ IP, DI - self.Emit("MOVQ" , _IL, _SI) // MOVQ IL, SI - self.Emit("MOVQ" , _IC, _DX) // MOVQ IC, DX - self.callc(_F_lspace) // CALL lspace - self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , _LB_parsing_error_v) // JS _parsing_error_v - self.Emit("CMPQ" , _AX, _IL) // CMPQ AX, IL - self.Sjmp("JAE" , _LB_eof_error) // JAE _eof_error - self.Emit("MOVQ" , _AX, _IC) // MOVQ AX, IC - self.Link(label) // _nospace_{n}: -} - -func (self *_Assembler) _asm_OP_match_char(p *_Instr) { - self.match_char(p.vb()) -} - -func (self *_Assembler) match_char(char byte) { - self.check_eof(1) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(char))) // CMPB (IP)(IC), ${p.vb()} - self.Sjmp("JNE" , _LB_char_0_error) // JNE _char_0_error - self.Emit("ADDQ", jit.Imm(1), _IC) // ADDQ $1, IC -} - -func (self *_Assembler) _asm_OP_check_char(p *_Instr) { - self.check_eof(1) - self.Emit("LEAQ" , jit.Ptr(_IC, 1), _AX) // LEAQ 1(IC), AX - self.Emit("CMPB" , jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} - self.Emit("CMOVQEQ", _AX, _IC) // CMOVQEQ AX, IC - self.Xjmp("JE" , p.vi()) // JE {p.vi()} -} - -func (self *_Assembler) _asm_OP_check_char_0(p *_Instr) { - self.check_eof(1) - self.Emit("CMPB", jit.Sib(_IP, _IC, 1, 0), jit.Imm(int64(p.vb()))) // CMPB (IP)(IC), ${p.vb()} - self.Xjmp("JE" , p.vi()) // JE {p.vi()} -} - -func (self *_Assembler) _asm_OP_add(p *_Instr) { - self.Emit("ADDQ", jit.Imm(int64(p.vi())), _IC) // ADDQ ${p.vi()}, IC -} - -func (self *_Assembler) _asm_OP_load(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _VP) // MOVQ (ST)(AX), VP -} - -func (self *_Assembler) _asm_OP_save(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX - self.Emit("CMPQ", _CX, jit.Imm(_MaxStackBytes)) // CMPQ CX, ${_MaxStackBytes} - self.Sjmp("JAE" , _LB_stack_error) // JA _stack_error - self.WriteRecNotAX(0 , _VP, jit.Sib(_ST, _CX, 1, 8), false, false) // MOVQ VP, 8(ST)(CX) - self.Emit("ADDQ", jit.Imm(8), _CX) // ADDQ $8, CX - self.Emit("MOVQ", _CX, jit.Ptr(_ST, 0)) // MOVQ CX, (ST) -} - -func (self *_Assembler) _asm_OP_drop(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ", jit.Imm(8), _AX) // SUBQ $8, AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP - self.Emit("MOVQ", _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("XORL", _BX, _BX) // XORL BX, BX - self.Emit("MOVQ", _BX, jit.Sib(_ST, _AX, 1, 8)) // MOVQ BX, 8(ST)(AX) -} - -func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ" , jit.Imm(16), _AX) // SUBQ $16, AX - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _VP) // MOVQ 8(ST)(AX), VP - self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) -} - -func (self *_Assembler) _asm_OP_recurse(p *_Instr) { - self.Emit("MOVQ", jit.Type(p.vt()), _AX) // MOVQ ${p.vt()}, AX - self.decode_dynamic(_AX, _VP) // DECODE AX, VP -} - -func (self *_Assembler) _asm_OP_goto(p *_Instr) { - self.Xjmp("JMP", p.vi()) -} - -func (self *_Assembler) _asm_OP_switch(p *_Instr) { - self.Emit("MOVQ", _VAR_sr, _AX) // MOVQ sr, AX - self.Emit("CMPQ", _AX, jit.Imm(p.i64())) // CMPQ AX, ${len(p.vs())} - self.Sjmp("JAE" , "_default_{n}") // JAE _default_{n} - - /* jump table selector */ - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_switch_table_{n}", 4) // .... &_switch_table_{n} - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - self.Link("_switch_table_{n}") // _switch_table_{n}: - - /* generate the jump table */ - for i, v := range p.vs() { - self.Xref(v, int64(-i) * 4) - } - - /* default case */ - self.Link("_default_{n}") - self.NOP() -} - -func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { - self.Emit("MOVQ", jit.Imm(int64(p2.op())), _CX)// MOVQ $(p2.op()), 16(SP) - self.Emit("MOVQ", jit.Imm(int64(p1.op())), _BX) // MOVQ $(p1.op()), 8(SP) - 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/compiler.go b/vendor/github.com/bytedance/sonic/internal/decoder/compiler.go index 8f3905f..e9e2b77 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 9cf3a6a..d5537ed 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 19ad719..8453db8 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 c905fdf..4453f5c 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_go116.go b/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go116.go deleted file mode 100644 index b597043..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go116.go +++ /dev/null @@ -1,776 +0,0 @@ -// +build go1.15,!go1.17 - -/* - * 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 decoder - -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: - * - * ST(BX) : ro, decoder stack - * DF(R10) : ro, decoder flags - * EP(R11) : wo, error pointer - * IP(R12) : ro, input pointer - * IL(R13) : ro, input length - * IC(R14) : rw, input cursor - * VP(R15) : ro, value pointer (to an interface{}) - */ - -const ( - _VD_args = 8 // 8 bytes for passing arguments to this functions - _VD_fargs = 64 // 64 bytes for passing arguments to other Go functions - _VD_saves = 40 // 40 bytes for saving the registers before CALL instructions - _VD_locals = 88 // 88 bytes for local variables -) - -const ( - _VD_offs = _VD_fargs + _VD_saves + _VD_locals - _VD_size = _VD_offs + 8 // 8 bytes for the parent frame pointer -) - -var ( - _VAR_ss = _VAR_ss_Vt - _VAR_df = jit.Ptr(_SP, _VD_fargs + _VD_saves) -) - -var ( - _VAR_ss_Vt = jit.Ptr(_SP, _VD_fargs + _VD_saves + 8) - _VAR_ss_Dv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 16) - _VAR_ss_Iv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 24) - _VAR_ss_Ep = jit.Ptr(_SP, _VD_fargs + _VD_saves + 32) - _VAR_ss_Db = jit.Ptr(_SP, _VD_fargs + _VD_saves + 40) - _VAR_ss_Dc = jit.Ptr(_SP, _VD_fargs + _VD_saves + 48) -) - -var ( - _VAR_cs_LR = jit.Ptr(_SP, _VD_fargs + _VD_saves + 56) - _VAR_cs_p = jit.Ptr(_SP, _VD_fargs + _VD_saves + 64) - _VAR_cs_n = jit.Ptr(_SP, _VD_fargs + _VD_saves + 72) - _VAR_cs_d = jit.Ptr(_SP, _VD_fargs + _VD_saves + 80) -) - -type _ValueDecoder struct { - jit.BaseAssembler -} - -func (self *_ValueDecoder) build() uintptr { - self.Init(self.compile) - return *(*uintptr)(self.Load("decode_value", _VD_size, _VD_args, argPtrs_generic, localPtrs_generic)) -} - -/** Function Calling Helpers **/ - -func (self *_ValueDecoder) save(r ...obj.Addr) { - for i, v := range r { - if i > _VD_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _VD_fargs + int64(i) * 8)) - } - } -} - -func (self *_ValueDecoder) load(r ...obj.Addr) { - for i, v := range r { - if i > _VD_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _VD_fargs + int64(i) * 8), v) - } - } -} - -func (self *_ValueDecoder) call(fn obj.Addr) { - self.Emit("MOVQ", fn, _AX) // MOVQ ${fn}, AX - self.Rjmp("CALL", _AX) // CALL AX -} - -func (self *_ValueDecoder) call_go(fn obj.Addr) { - self.save(_REG_go...) // SAVE $REG_go - self.call(fn) // CALL ${fn} - self.load(_REG_go...) // LOAD $REG_go -} - -/** Decoder Assembler **/ - -const ( - _S_val = iota + 1 - _S_arr - _S_arr_0 - _S_obj - _S_obj_0 - _S_obj_delim - _S_obj_sep -) - -const ( - _S_omask_key = (1 << _S_obj_0) | (1 << _S_obj_sep) - _S_omask_end = (1 << _S_obj_0) | (1 << _S_obj) - _S_vmask = (1 << _S_val) | (1 << _S_arr_0) -) - -const ( - _A_init_len = 1 - _A_init_cap = 16 -) - -const ( - _ST_Sp = 0 - _ST_Vt = _PtrBytes - _ST_Vp = _PtrBytes * (types.MAX_RECURSE + 1) -) - -var ( - _V_true = jit.Imm(int64(pbool(true))) - _V_false = jit.Imm(int64(pbool(false))) - _F_value = jit.Imm(int64(native.S_value)) -) - -var ( - _V_max = jit.Imm(int64(types.V_MAX)) - _E_eof = jit.Imm(int64(types.ERR_EOF)) - _E_invalid = jit.Imm(int64(types.ERR_INVALID_CHAR)) - _E_recurse = jit.Imm(int64(types.ERR_RECURSE_EXCEED_MAX)) -) - -var ( - _F_convTslice = jit.Func(convTslice) - _F_convTstring = jit.Func(convTstring) - _F_invalid_vtype = jit.Func(invalid_vtype) -) - -var ( - _T_map = jit.Type(reflect.TypeOf((map[string]interface{})(nil))) - _T_bool = jit.Type(reflect.TypeOf(false)) - _T_int64 = jit.Type(reflect.TypeOf(int64(0))) - _T_eface = jit.Type(reflect.TypeOf((*interface{})(nil)).Elem()) - _T_slice = jit.Type(reflect.TypeOf(([]interface{})(nil))) - _T_string = jit.Type(reflect.TypeOf("")) - _T_number = jit.Type(reflect.TypeOf(json.Number(""))) - _T_float64 = jit.Type(reflect.TypeOf(float64(0))) -) - -var _R_tab = map[int]string { - '[': "_decode_V_ARRAY", - '{': "_decode_V_OBJECT", - ':': "_decode_V_KEY_SEP", - ',': "_decode_V_ELEM_SEP", - ']': "_decode_V_ARRAY_END", - '}': "_decode_V_OBJECT_END", -} - -func (self *_ValueDecoder) compile() { - self.Emit("SUBQ", jit.Imm(_VD_size), _SP) // SUBQ $_VD_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _VD_offs)) // MOVQ BP, _VD_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _VD_offs), _BP) // LEAQ _VD_offs(SP), BP - - /* initialize the state machine */ - self.Emit("XORL", _CX, _CX) // XORL CX, CX - self.Emit("MOVQ", _DF, _VAR_df) // MOVQ DF, df - /* initialize digital buffer first */ - self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_ss_Dc) // MOVQ $_MaxDigitNums, ss.Dcap - self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX - self.Emit("MOVQ", _AX, _VAR_ss_Db) // MOVQ AX, ss.Dbuf - /* add ST offset */ - self.Emit("ADDQ", jit.Imm(_FsmOffset), _ST) // ADDQ _FsmOffset, _ST - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WriteRecNotAX(0, _VP, jit.Ptr(_ST, _ST_Vp), false) // MOVQ VP, ST.Vp[0] - self.Emit("MOVQ", jit.Imm(_S_val), jit.Ptr(_ST, _ST_Vt)) // MOVQ _S_val, ST.Vt[0] - self.Sjmp("JMP" , "_next") // JMP _next - - /* set the value from previous round */ - self.Link("_set_value") // _set_value: - self.Emit("MOVL" , jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_vtype_error") // JNC _vtype_error - self.Emit("XORL" , _SI, _SI) // XORL SI, SI - self.Emit("SUBQ" , jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("XCHGQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // XCHGQ ST.Vp[CX], SI - self.Emit("MOVQ" , _R8, jit.Ptr(_SI, 0)) // MOVQ R8, (SI) - self.WriteRecNotAX(1, _R9, jit.Ptr(_SI, 8), false) // MOVQ R9, 8(SI) - - /* check for value stack */ - self.Link("_next") // _next: - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _AX) // MOVQ ST.Sp, AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_return") // JS _return - - /* fast path: test up to 4 characters manually */ - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , "_decode_fast") // JA _decode_fast - self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX - self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - - /* at least 1 to 3 spaces */ - for i := 0; i < 3; i++ { - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , "_decode_fast") // JA _decode_fast - self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX - self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - } - - /* at least 4 spaces */ - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - - /* fast path: use lookup table to select decoder */ - self.Link("_decode_fast") // _decode_fast: - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_decode_tab", 4) // .... &_decode_tab - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX - self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_decode_native") // JZ _decode_native - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - - /* decode with native decoder */ - self.Link("_decode_native") // _decode_native: - self.Emit("MOVQ", _IP, _DI) // MOVQ IP, DI - self.Emit("MOVQ", _IL, _SI) // MOVQ IL, SI - self.Emit("MOVQ", _IC, _DX) // MOVQ IC, DX - 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.call(_F_value) // CALL value - self.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - - /* check for errors */ - self.Emit("MOVQ" , _VAR_ss_Vt, _AX) // MOVQ ss.Vt, AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_parsing_error") - self.Sjmp("JZ" , "_invalid_vtype") // JZ _invalid_vtype - self.Emit("CMPQ" , _AX, _V_max) // CMPQ AX, _V_max - self.Sjmp("JA" , "_invalid_vtype") // JA _invalid_vtype - - /* jump table selector */ - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_switch_table", 4) // .... &_switch_table - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, -4), _AX) // MOVLQSX -4(DI)(AX*4), AX - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - - /** V_EOF **/ - self.Link("_decode_V_EOF") // _decode_V_EOF: - self.Emit("MOVL", _E_eof, _EP) // MOVL _E_eof, EP - self.Sjmp("JMP" , "_error") // JMP _error - - /** V_NULL **/ - self.Link("_decode_V_NULL") // _decode_V_NULL: - self.Emit("XORL", _R8, _R8) // XORL R8, R8 - self.Emit("XORL", _R9, _R9) // XORL R9, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_TRUE **/ - self.Link("_decode_V_TRUE") // _decode_V_TRUE: - self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 - // TODO: maybe modified by users? - self.Emit("MOVQ", _V_true, _R9) // MOVQ _V_true, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_FALSE **/ - self.Link("_decode_V_FALSE") // _decode_V_FALSE: - self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 - self.Emit("MOVQ", _V_false, _R9) // MOVQ _V_false, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -5), _DI) // LEAQ -5(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_ARRAY **/ - self.Link("_decode_V_ARRAY") // _decode_V_ARRAY - self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char - - /* create a new array */ - self.Emit("MOVQ", _T_eface, _AX) // MOVQ _T_eface, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ", jit.Imm(_A_init_len), jit.Ptr(_SP, 8)) // MOVQ _A_init_len, 8(SP) - self.Emit("MOVQ", jit.Imm(_A_init_cap), jit.Ptr(_SP, 16)) // MOVQ _A_init_cap, 16(SP) - self.call_go(_F_makeslice) // CALL_GO runtime.makeslice - self.Emit("MOVQ", jit.Ptr(_SP, 24), _DX) // MOVQ 24(SP), DX - - /* pack into an interface */ - self.Emit("MOVQ", _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) - self.Emit("MOVQ", jit.Imm(_A_init_len), jit.Ptr(_SP, 8)) // MOVQ _A_init_len, 8(SP) - self.Emit("MOVQ", jit.Imm(_A_init_cap), jit.Ptr(_SP, 16)) // MOVQ _A_init_cap, 16(SP) - self.call_go(_F_convTslice) // CALL_GO runtime.convTslice - self.Emit("MOVQ", jit.Ptr(_SP, 24), _R8) // MOVQ 24(SP), R8 - - /* replace current state with an array */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Imm(_S_arr), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr, ST.Vt[CX] - self.Emit("MOVQ", _T_slice, _AX) // MOVQ _T_slice, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SI, 0)) // MOVQ AX, (SI) - self.WriteRecNotAX(2, _R8, jit.Ptr(_SI, 8), false) // MOVQ R8, 8(SI) - - /* add a new slot for the first element */ - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow - self.Emit("MOVQ", jit.Ptr(_R8, 0), _AX) // MOVQ (R8), AX - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WritePtrAX(3, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] - self.Emit("MOVQ", jit.Imm(_S_arr_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr_0, ST.Vt[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_OBJECT **/ - self.Link("_decode_V_OBJECT") // _decode_V_OBJECT: - self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char - self.call_go(_F_makemap_small) // CALL_GO runtime.makemap_small - self.Emit("MOVQ", jit.Ptr(_SP, 0), _AX) // MOVQ (SP), AX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Imm(_S_obj_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj, ST.Vt[CX] - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 0)) // MOVQ DX, (SI) - self.WritePtrAX(4, jit.Ptr(_SI, 8), false) // MOVQ AX, 8(SI) - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_STRING **/ - self.Link("_decode_V_STRING") // _decode_V_STRING: - self.Emit("MOVQ", _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX - self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX - self.Emit("SUBQ", _CX, _AX) // SUBQ CX, AX - - /* check for escapes */ - self.Emit("CMPQ", _VAR_ss_Ep, jit.Imm(-1)) // CMPQ ss.Ep, $-1 - self.Sjmp("JNE" , "_unquote") // JNE _unquote - self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX - self.Emit("LEAQ", jit.Sib(_IP, _CX, 1, 0), _R8) // LEAQ (IP)(CX), R8 - self.Byte(0x48, 0x8d, 0x3d) // LEAQ (PC), DI - self.Sref("_copy_string_end", 4) - self.Emit("BTQ", jit.Imm(_F_copy_string), _VAR_df) - self.Sjmp("JC", "copy_string") - self.Link("_copy_string_end") - self.Emit("XORL", _DX, _DX) // XORL DX, DX - /* strings with no escape sequences */ - self.Link("_noescape") // _noescape: - self.Emit("MOVL", jit.Imm(_S_omask_key), _DI) // MOVL _S_omask, DI - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _SI) // MOVQ ST.Vt[CX], SI - self.Emit("BTQ" , _SI, _DI) // BTQ SI, DI - self.Sjmp("JC" , "_object_key") // JC _object_key - - /* check for pre-packed strings, avoid 1 allocation */ - self.Emit("TESTQ", _DX, _DX) // TESTQ DX, DX - self.Sjmp("JNZ" , "_packed_str") // JNZ _packed_str - self.Emit("MOVQ" , _R8, jit.Ptr(_SP, 0)) // MOVQ R8, (SP) - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.call_go(_F_convTstring) // CALL_GO runtime.convTstring - self.Emit("MOVQ" , jit.Ptr(_SP, 16), _R9) // MOVQ 16(SP), R9 - - /* packed string already in R9 */ - self.Link("_packed_str") // _packed_str: - self.Emit("MOVQ", _T_string, _R8) // MOVQ _T_string, R8 - self.Emit("MOVQ", _VAR_ss_Iv, _DI) // MOVQ ss.Iv, DI - self.Emit("SUBQ", jit.Imm(1), _DI) // SUBQ $1, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* the string is an object key, get the map */ - self.Link("_object_key") - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - - /* add a new delimiter */ - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.Emit("MOVQ", jit.Imm(_S_obj_delim), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_delim, ST.Vt[CX] - - /* add a new slot int the map */ - self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX - self.Emit("MOVQ", _DX, jit.Ptr(_SP, 0)) // MOVQ DX, (SP) - self.Emit("MOVQ", _SI, jit.Ptr(_SP, 8)) // MOVQ SI, 8(SP) - self.Emit("MOVQ", _R8, jit.Ptr(_SP, 16)) // MOVQ R9, 16(SP) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 24)) // MOVQ AX, 24(SP) - self.call_go(_F_mapassign_faststr) // CALL_GO runtime.mapassign_faststr - self.Emit("MOVQ", jit.Ptr(_SP, 32), _AX) // MOVQ 32(SP), AX - - /* add to the pointer stack */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.WritePtrAX(6, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* allocate memory to store the string header and unquoted result */ - self.Link("_unquote") // _unquote: - self.Emit("ADDQ", jit.Imm(15), _AX) // ADDQ $15, AX - self.Emit("MOVQ", _T_byte, _CX) // MOVQ _T_byte, CX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.Emit("MOVB", jit.Imm(0), jit.Ptr(_SP, 16)) // MOVB $0, 16(SP) - self.call_go(_F_mallocgc) // CALL_GO runtime.mallocgc - self.Emit("MOVQ", jit.Ptr(_SP, 24), _R9) // MOVQ 24(SP), R9 - - /* prepare the unquoting parameters */ - self.Emit("MOVQ" , _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX - self.Emit("LEAQ" , jit.Sib(_IP, _CX, 1, 0), _DI) // LEAQ (IP)(CX), DI - self.Emit("NEGQ" , _CX) // NEGQ CX - self.Emit("LEAQ" , jit.Sib(_IC, _CX, 1, -1), _SI) // LEAQ -1(IC)(CX), SI - self.Emit("LEAQ" , jit.Ptr(_R9, 16), _DX) // LEAQ 16(R8), DX - self.Emit("LEAQ" , _VAR_ss_Ep, _CX) // LEAQ ss.Ep, CX - self.Emit("XORL" , _R8, _R8) // XORL R8, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _VAR_df) // BTQ ${_F_disable_urc}, fv - self.Emit("SETCC", _R8) // SETCC R8 - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 - - /* unquote the string, with R9 been preserved */ - self.save(_R9) // SAVE R9 - self.call(_F_unquote) // CALL unquote - self.load(_R9) // LOAD R9 - - /* check for errors */ - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_unquote_error") // JS _unquote_error - self.Emit("MOVL" , jit.Imm(1), _DX) // MOVL $1, DX - self.Emit("LEAQ" , jit.Ptr(_R9, 16), _R8) // ADDQ $16, R8 - self.Emit("MOVQ" , _R8, jit.Ptr(_R9, 0)) // MOVQ R8, (R9) - self.Emit("MOVQ" , _AX, jit.Ptr(_R9, 8)) // MOVQ AX, 8(R9) - self.Sjmp("JMP" , "_noescape") // JMP _noescape - - /** V_DOUBLE **/ - self.Link("_decode_V_DOUBLE") // _decode_V_DOUBLE: - self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df - self.Sjmp("JC" , "_use_number") // JC _use_number - self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 - self.Sjmp("JMP" , "_use_float64") // JMP _use_float64 - - /** V_INTEGER **/ - self.Link("_decode_V_INTEGER") // _decode_V_INTEGER: - self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df - self.Sjmp("JC" , "_use_number") // JC _use_number - self.Emit("BTQ" , jit.Imm(_F_use_int64), _VAR_df) // BTQ _F_use_int64, df - self.Sjmp("JC" , "_use_int64") // JC _use_int64 - self.Emit("MOVQ" , _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX - self.Emit("CVTSQ2SD", _AX, _X0) // CVTSQ2SD AX, X0 - - /* represent numbers as `float64` */ - self.Link("_use_float64") // _use_float64: - self.Emit("MOVSD", _X0, jit.Ptr(_SP, 0)) // MOVSD X0, (SP) - self.call_go(_F_convT64) // CALL_GO runtime.convT64 - self.Emit("MOVQ" , _T_float64, _R8) // MOVQ _T_float64, R8 - self.Emit("MOVQ" , jit.Ptr(_SP, 8), _R9) // MOVQ 8(SP), R9 - self.Emit("MOVQ" , _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* represent numbers as `json.Number` */ - self.Link("_use_number") // _use_number - self.Emit("MOVQ", _VAR_ss_Ep, _AX) // MOVQ ss.Ep, AX - self.Emit("LEAQ", jit.Sib(_IP, _AX, 1, 0), _SI) // LEAQ (IP)(AX), SI - self.Emit("MOVQ", _IC, _CX) // MOVQ IC, CX - self.Emit("SUBQ", _AX, _CX) // SUBQ AX, CX - self.Emit("MOVQ", _SI, jit.Ptr(_SP, 0)) // MOVQ SI, (SP) - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.call_go(_F_convTstring) // CALL_GO runtime.convTstring - self.Emit("MOVQ", _T_number, _R8) // MOVQ _T_number, R8 - self.Emit("MOVQ", jit.Ptr(_SP, 16), _R9) // MOVQ 16(SP), R9 - self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* represent numbers as `int64` */ - self.Link("_use_int64") // _use_int64: - self.Emit("MOVQ", _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.call_go(_F_convT64) // CALL_GO runtime.convT64 - self.Emit("MOVQ", _T_int64, _R8) // MOVQ _T_int64, R8 - self.Emit("MOVQ", jit.Ptr(_SP, 8), _R9) // MOVQ 8(SP), R9 - self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_KEY_SEP **/ - self.Link("_decode_V_KEY_SEP") // _decode_V_KEY_SEP: - // self.Byte(0xcc) - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ", _AX, jit.Imm(_S_obj_delim)) // CMPQ AX, _S_obj_delim - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX] - self.Emit("MOVQ", jit.Imm(_S_obj), jit.Sib(_ST, _CX, 8, _ST_Vt - 8)) // MOVQ _S_obj, ST.Vt[CX - 1] - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_ELEM_SEP **/ - self.Link("_decode_V_ELEM_SEP") // _decode_V_ELEM_SEP: - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ" , _AX, jit.Imm(_S_arr)) // CMPQ _AX, _S_arr - self.Sjmp("JE" , "_array_sep") // JZ _next - self.Emit("CMPQ" , _AX, jit.Imm(_S_obj)) // CMPQ _AX, _S_arr - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("MOVQ" , jit.Imm(_S_obj_sep), jit.Sib(_ST, _CX, 8, _ST_Vt)) - self.Sjmp("JMP" , "_next") // JMP _next - - /* arrays */ - self.Link("_array_sep") - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _DX) // MOVQ 8(SI), DX - self.Emit("CMPQ", _DX, jit.Ptr(_SI, 16)) // CMPQ DX, 16(SI) - self.Sjmp("JAE" , "_array_more") // JAE _array_more - - /* add a slot for the new element */ - self.Link("_array_append") // _array_append: - self.Emit("ADDQ", jit.Imm(1), jit.Ptr(_SI, 8)) // ADDQ $1, 8(SI) - self.Emit("MOVQ", jit.Ptr(_SI, 0), _SI) // MOVQ (SI), SI - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") - self.Emit("SHLQ", jit.Imm(1), _DX) // SHLQ $1, DX - self.Emit("LEAQ", jit.Sib(_SI, _DX, 8, 0), _SI) // LEAQ (SI)(DX*8), SI - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WriteRecNotAX(7 , _SI, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ SI, ST.Vp[CX] - self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX} - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_ARRAY_END **/ - self.Link("_decode_V_ARRAY_END") // _decode_V_ARRAY_END: - self.Emit("XORL", _DX, _DX) // XORL DX, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ", _AX, jit.Imm(_S_arr_0)) // CMPQ AX, _S_arr_0 - self.Sjmp("JE" , "_first_item") // JE _first_item - self.Emit("CMPQ", _AX, jit.Imm(_S_arr)) // CMPQ AX, _S_arr - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* first element of an array */ - self.Link("_first_item") // _first_item: - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("SUBQ", jit.Imm(2), jit.Ptr(_ST, _ST_Sp)) // SUBQ $2, ST.Sp - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp - 8), _SI) // MOVQ ST.Vp[CX - 1], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp - 8)) // MOVQ DX, ST.Vp[CX - 1] - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_OBJECT_END **/ - self.Link("_decode_V_OBJECT_END") // _decode_V_OBJECT_END: - self.Emit("MOVL", jit.Imm(_S_omask_end), _DX) // MOVL _S_omask, DI - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) - self.Sjmp("JNC" , "_invalid_char") // JNE _invalid_char - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("MOVQ", _AX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ AX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* return from decoder */ - self.Link("_return") // _return: - self.Emit("XORL", _EP, _EP) // XORL EP, EP - self.Emit("MOVQ", _EP, jit.Ptr(_ST, _ST_Vp)) // MOVQ EP, ST.Vp[0] - self.Link("_epilogue") // _epilogue: - self.Emit("SUBQ", jit.Imm(_FsmOffset), _ST) // SUBQ _FsmOffset, _ST - self.Emit("MOVQ", jit.Ptr(_SP, _VD_offs), _BP) // MOVQ _VD_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_VD_size), _SP) // ADDQ $_VD_size, SP - self.Emit("RET") // RET - - /* array expand */ - self.Link("_array_more") // _array_more: - self.Emit("MOVQ" , _T_eface, _AX) // MOVQ _T_eface, AX - self.Emit("MOVOU", jit.Ptr(_SI, 0), _X0) // MOVOU (SI), X0 - self.Emit("MOVQ" , jit.Ptr(_SI, 16), _DX) // MOVQ 16(SI), DX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) - self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 24)) // MOVQ DX, 24(SP) - self.Emit("SHLQ" , jit.Imm(1), _DX) // SHLQ $1, DX - self.Emit("MOVQ" , _DX, jit.Ptr(_SP, 32)) // MOVQ DX, 32(SP) - self.call_go(_F_growslice) // CALL_GO runtime.growslice - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _DI) // MOVOU 40(SP), DI - self.Emit("MOVQ" , jit.Ptr(_SP, 48), _DX) // MOVOU 48(SP), DX - self.Emit("MOVQ" , jit.Ptr(_SP, 56), _AX) // MOVQ 56(SP), AX - - /* update the slice */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) - self.Emit("MOVQ", _AX, jit.Ptr(_SI, 16)) // MOVQ AX, 16(AX) - self.WriteRecNotAX(8 , _DI, jit.Ptr(_SI, 0), false) // MOVQ R10, (SI) - self.Sjmp("JMP" , "_array_append") // JMP _array_append - - /* copy string */ - self.Link("copy_string") // pointer: R8, length: AX, return addr: DI - // self.Byte(0xcc) - 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", _AX, jit.Ptr(_SP, 8)) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) - self.call_go(_F_makeslice) - self.Emit("MOVQ", jit.Ptr(_SP, 24), _R8) - self.Emit("MOVQ", _R8, _VAR_cs_d) - self.Emit("MOVQ", _R8, jit.Ptr(_SP, 0)) - self.Emit("MOVQ", _VAR_cs_p, _R8) - self.Emit("MOVQ", _R8, jit.Ptr(_SP, 8)) - self.Emit("MOVQ", _VAR_cs_n, _AX) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) - self.call_go(_F_memmove) - self.Emit("MOVQ", _VAR_cs_d, _R8) - self.Emit("MOVQ", _VAR_cs_n, _AX) - self.Emit("MOVQ", _VAR_cs_LR, _DI) - // self.Byte(0xcc) - self.Rjmp("JMP", _DI) - - /* error handlers */ - self.Link("_stack_overflow") - self.Emit("MOVL" , _E_recurse, _EP) // MOVQ _E_recurse, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_vtype_error") // _vtype_error: - self.Emit("MOVQ" , _DI, _IC) // MOVQ DI, IC - self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_invalid_char") // _invalid_char: - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_unquote_error") // _unquote_error: - self.Emit("MOVQ" , _VAR_ss_Iv, _IC) // MOVQ ss.Iv, IC - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Link("_parsing_error") // _parsing_error: - self.Emit("NEGQ" , _AX) // NEGQ AX - self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP - self.Link("_error") // _error: - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) - self.Sjmp("JMP" , "_epilogue") // JMP _epilogue - - /* invalid value type, never returns */ - self.Link("_invalid_vtype") - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.call(_F_invalid_vtype) // CALL invalid_type - self.Emit("UD2") // UD2 - - /* switch jump table */ - self.Link("_switch_table") // _switch_table: - self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 - self.Sref("_decode_V_NULL", -4) // SREF &_decode_V_NULL, $-4 - self.Sref("_decode_V_TRUE", -8) // SREF &_decode_V_TRUE, $-8 - self.Sref("_decode_V_FALSE", -12) // SREF &_decode_V_FALSE, $-12 - self.Sref("_decode_V_ARRAY", -16) // SREF &_decode_V_ARRAY, $-16 - self.Sref("_decode_V_OBJECT", -20) // SREF &_decode_V_OBJECT, $-20 - self.Sref("_decode_V_STRING", -24) // SREF &_decode_V_STRING, $-24 - self.Sref("_decode_V_DOUBLE", -28) // SREF &_decode_V_DOUBLE, $-28 - self.Sref("_decode_V_INTEGER", -32) // SREF &_decode_V_INTEGER, $-32 - self.Sref("_decode_V_KEY_SEP", -36) // SREF &_decode_V_KEY_SEP, $-36 - self.Sref("_decode_V_ELEM_SEP", -40) // SREF &_decode_V_ELEM_SEP, $-40 - self.Sref("_decode_V_ARRAY_END", -44) // SREF &_decode_V_ARRAY_END, $-44 - self.Sref("_decode_V_OBJECT_END", -48) // SREF &_decode_V_OBJECT_END, $-48 - - /* fast character lookup table */ - self.Link("_decode_tab") // _decode_tab: - self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 - - /* generate rest of the tabs */ - for i := 1; i < 256; i++ { - if to, ok := _R_tab[i]; ok { - self.Sref(to, -int64(i) * 4) - } else { - self.Byte(0x00, 0x00, 0x00, 0x00) - } - } -} - -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 ( - _subr_decode_value = new(_ValueDecoder).build() -) - -//go:nosplit -func invalid_vtype(vt types.ValueType) { - throw(fmt.Sprintf("invalid value type: %d", vt)) -} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go deleted file mode 100644 index df1cd9f..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117.go +++ /dev/null @@ -1,772 +0,0 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!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 decoder - -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: - * - * ST(R13) && 0(SP) : ro, decoder stack - * DF(AX) : ro, decoder flags - * EP(BX) : wo, error pointer - * IP(R10) : ro, input pointer - * IL(R12) : ro, input length - * IC(R11) : rw, input cursor - * VP(R15) : ro, value pointer (to an interface{}) - */ - -const ( - _VD_args = 8 // 8 bytes for passing arguments to this functions - _VD_fargs = 64 // 64 bytes for passing arguments to other Go functions - _VD_saves = 48 // 48 bytes for saving the registers before CALL instructions - _VD_locals = 96 // 96 bytes for local variables -) - -const ( - _VD_offs = _VD_fargs + _VD_saves + _VD_locals - _VD_size = _VD_offs + 8 // 8 bytes for the parent frame pointer -) - -var ( - _VAR_ss = _VAR_ss_Vt - _VAR_df = jit.Ptr(_SP, _VD_fargs + _VD_saves) -) - -var ( - _VAR_ss_Vt = jit.Ptr(_SP, _VD_fargs + _VD_saves + 8) - _VAR_ss_Dv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 16) - _VAR_ss_Iv = jit.Ptr(_SP, _VD_fargs + _VD_saves + 24) - _VAR_ss_Ep = jit.Ptr(_SP, _VD_fargs + _VD_saves + 32) - _VAR_ss_Db = jit.Ptr(_SP, _VD_fargs + _VD_saves + 40) - _VAR_ss_Dc = jit.Ptr(_SP, _VD_fargs + _VD_saves + 48) -) - -var ( - _VAR_R9 = jit.Ptr(_SP, _VD_fargs + _VD_saves + 56) -) -type _ValueDecoder struct { - jit.BaseAssembler -} - -var ( - _VAR_cs_LR = jit.Ptr(_SP, _VD_fargs + _VD_saves + 64) - _VAR_cs_p = jit.Ptr(_SP, _VD_fargs + _VD_saves + 72) - _VAR_cs_n = jit.Ptr(_SP, _VD_fargs + _VD_saves + 80) - _VAR_cs_d = jit.Ptr(_SP, _VD_fargs + _VD_saves + 88) -) - -func (self *_ValueDecoder) build() uintptr { - self.Init(self.compile) - return *(*uintptr)(self.Load("decode_value", _VD_size, _VD_args, argPtrs_generic, localPtrs_generic)) -} - -/** Function Calling Helpers **/ - -func (self *_ValueDecoder) save(r ...obj.Addr) { - for i, v := range r { - if i > _VD_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _VD_fargs + int64(i) * 8)) - } - } -} - -func (self *_ValueDecoder) load(r ...obj.Addr) { - for i, v := range r { - if i > _VD_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _VD_fargs + int64(i) * 8), v) - } - } -} - -func (self *_ValueDecoder) call(fn obj.Addr) { - self.Emit("MOVQ", fn, _R9) // MOVQ ${fn}, AX - self.Rjmp("CALL", _R9) // CALL AX -} - -func (self *_ValueDecoder) call_go(fn obj.Addr) { - self.save(_REG_go...) // SAVE $REG_go - self.call(fn) // CALL ${fn} - self.load(_REG_go...) // LOAD $REG_go -} - -func (self *_ValueDecoder) callc(fn obj.Addr) { - self.Emit("XCHGQ", _IP, _BP) - self.call(fn) - self.Emit("XCHGQ", _IP, _BP) -} - -func (self *_ValueDecoder) call_c(fn obj.Addr) { - self.Emit("XCHGQ", _IC, _BX) - self.callc(fn) - self.Emit("XCHGQ", _IC, _BX) -} - -/** Decoder Assembler **/ - -const ( - _S_val = iota + 1 - _S_arr - _S_arr_0 - _S_obj - _S_obj_0 - _S_obj_delim - _S_obj_sep -) - -const ( - _S_omask_key = (1 << _S_obj_0) | (1 << _S_obj_sep) - _S_omask_end = (1 << _S_obj_0) | (1 << _S_obj) - _S_vmask = (1 << _S_val) | (1 << _S_arr_0) -) - -const ( - _A_init_len = 1 - _A_init_cap = 16 -) - -const ( - _ST_Sp = 0 - _ST_Vt = _PtrBytes - _ST_Vp = _PtrBytes * (types.MAX_RECURSE + 1) -) - -var ( - _V_true = jit.Imm(int64(pbool(true))) - _V_false = jit.Imm(int64(pbool(false))) - _F_value = jit.Imm(int64(native.S_value)) -) - -var ( - _V_max = jit.Imm(int64(types.V_MAX)) - _E_eof = jit.Imm(int64(types.ERR_EOF)) - _E_invalid = jit.Imm(int64(types.ERR_INVALID_CHAR)) - _E_recurse = jit.Imm(int64(types.ERR_RECURSE_EXCEED_MAX)) -) - -var ( - _F_convTslice = jit.Func(convTslice) - _F_convTstring = jit.Func(convTstring) - _F_invalid_vtype = jit.Func(invalid_vtype) -) - -var ( - _T_map = jit.Type(reflect.TypeOf((map[string]interface{})(nil))) - _T_bool = jit.Type(reflect.TypeOf(false)) - _T_int64 = jit.Type(reflect.TypeOf(int64(0))) - _T_eface = jit.Type(reflect.TypeOf((*interface{})(nil)).Elem()) - _T_slice = jit.Type(reflect.TypeOf(([]interface{})(nil))) - _T_string = jit.Type(reflect.TypeOf("")) - _T_number = jit.Type(reflect.TypeOf(json.Number(""))) - _T_float64 = jit.Type(reflect.TypeOf(float64(0))) -) - -var _R_tab = map[int]string { - '[': "_decode_V_ARRAY", - '{': "_decode_V_OBJECT", - ':': "_decode_V_KEY_SEP", - ',': "_decode_V_ELEM_SEP", - ']': "_decode_V_ARRAY_END", - '}': "_decode_V_OBJECT_END", -} - -func (self *_ValueDecoder) compile() { - self.Emit("SUBQ", jit.Imm(_VD_size), _SP) // SUBQ $_VD_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _VD_offs)) // MOVQ BP, _VD_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _VD_offs), _BP) // LEAQ _VD_offs(SP), BP - - /* initialize the state machine */ - self.Emit("XORL", _CX, _CX) // XORL CX, CX - self.Emit("MOVQ", _DF, _VAR_df) // MOVQ DF, df - /* initialize digital buffer first */ - self.Emit("MOVQ", jit.Imm(_MaxDigitNums), _VAR_ss_Dc) // MOVQ $_MaxDigitNums, ss.Dcap - self.Emit("LEAQ", jit.Ptr(_ST, _DbufOffset), _AX) // LEAQ _DbufOffset(ST), AX - self.Emit("MOVQ", _AX, _VAR_ss_Db) // MOVQ AX, ss.Dbuf - /* add ST offset */ - self.Emit("ADDQ", jit.Imm(_FsmOffset), _ST) // ADDQ _FsmOffset, _ST - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WriteRecNotAX(0, _VP, jit.Ptr(_ST, _ST_Vp), false) // MOVQ VP, ST.Vp[0] - self.Emit("MOVQ", jit.Imm(_S_val), jit.Ptr(_ST, _ST_Vt)) // MOVQ _S_val, ST.Vt[0] - self.Sjmp("JMP" , "_next") // JMP _next - - /* set the value from previous round */ - self.Link("_set_value") // _set_value: - self.Emit("MOVL" , jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_vtype_error") // JNC _vtype_error - self.Emit("XORL" , _SI, _SI) // XORL SI, SI - self.Emit("SUBQ" , jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("XCHGQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // XCHGQ ST.Vp[CX], SI - self.Emit("MOVQ" , _R8, jit.Ptr(_SI, 0)) // MOVQ R8, (SI) - self.WriteRecNotAX(1, _R9, jit.Ptr(_SI, 8), false) // MOVQ R9, 8(SI) - - /* check for value stack */ - self.Link("_next") // _next: - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _AX) // MOVQ ST.Sp, AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_return") // JS _return - - /* fast path: test up to 4 characters manually */ - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("MOVQ" , jit.Imm(_BM_space), _DX) // MOVQ _BM_space, DX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , "_decode_fast") // JA _decode_fast - self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX - self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - - /* at least 1 to 3 spaces */ - for i := 0; i < 3; i++ { - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - self.Emit("CMPQ" , _AX, jit.Imm(' ')) // CMPQ AX, $' ' - self.Sjmp("JA" , "_decode_fast") // JA _decode_fast - self.Emit("BTQ" , _AX, _DX) // BTQ _AX, _DX - self.Sjmp("JNC" , "_decode_fast") // JNC _decode_fast - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - } - - /* at least 4 spaces */ - self.Emit("CMPQ" , _IC, _IL) // CMPQ IC, IL - self.Sjmp("JAE" , "_decode_V_EOF") // JAE _decode_V_EOF - self.Emit("MOVBQZX", jit.Sib(_IP, _IC, 1, 0), _AX) // MOVBQZX (IP)(IC), AX - - /* fast path: use lookup table to select decoder */ - self.Link("_decode_fast") // _decode_fast: - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_decode_tab", 4) // .... &_decode_tab - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, 0), _AX) // MOVLQSX (DI)(AX*4), AX - self.Emit("TESTQ" , _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_decode_native") // JZ _decode_native - self.Emit("ADDQ" , jit.Imm(1), _IC) // ADDQ $1, IC - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - - /* decode with native decoder */ - self.Link("_decode_native") // _decode_native: - self.Emit("MOVQ", _IP, _DI) // MOVQ IP, DI - self.Emit("MOVQ", _IL, _SI) // MOVQ IL, SI - self.Emit("MOVQ", _IC, _DX) // MOVQ IC, DX - 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.Emit("MOVQ", _AX, _IC) // MOVQ AX, IC - - /* check for errors */ - self.Emit("MOVQ" , _VAR_ss_Vt, _AX) // MOVQ ss.Vt, AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_parsing_error") - self.Sjmp("JZ" , "_invalid_vtype") // JZ _invalid_vtype - self.Emit("CMPQ" , _AX, _V_max) // CMPQ AX, _V_max - self.Sjmp("JA" , "_invalid_vtype") // JA _invalid_vtype - - /* jump table selector */ - self.Byte(0x48, 0x8d, 0x3d) // LEAQ ?(PC), DI - self.Sref("_switch_table", 4) // .... &_switch_table - self.Emit("MOVLQSX", jit.Sib(_DI, _AX, 4, -4), _AX) // MOVLQSX -4(DI)(AX*4), AX - self.Emit("ADDQ" , _DI, _AX) // ADDQ DI, AX - self.Rjmp("JMP" , _AX) // JMP AX - - /** V_EOF **/ - self.Link("_decode_V_EOF") // _decode_V_EOF: - self.Emit("MOVL", _E_eof, _EP) // MOVL _E_eof, EP - self.Sjmp("JMP" , "_error") // JMP _error - - /** V_NULL **/ - self.Link("_decode_V_NULL") // _decode_V_NULL: - self.Emit("XORL", _R8, _R8) // XORL R8, R8 - self.Emit("XORL", _R9, _R9) // XORL R9, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_TRUE **/ - self.Link("_decode_V_TRUE") // _decode_V_TRUE: - self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 - // TODO: maybe modified by users? - self.Emit("MOVQ", _V_true, _R9) // MOVQ _V_true, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -4), _DI) // LEAQ -4(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_FALSE **/ - self.Link("_decode_V_FALSE") // _decode_V_FALSE: - self.Emit("MOVQ", _T_bool, _R8) // MOVQ _T_bool, R8 - self.Emit("MOVQ", _V_false, _R9) // MOVQ _V_false, R9 - self.Emit("LEAQ", jit.Ptr(_IC, -5), _DI) // LEAQ -5(IC), DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_ARRAY **/ - self.Link("_decode_V_ARRAY") // _decode_V_ARRAY - self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char - - /* create a new array */ - self.Emit("MOVQ", _T_eface, _AX) // MOVQ _T_eface, AX - self.Emit("MOVQ", jit.Imm(_A_init_len), _BX) // MOVQ _A_init_len, BX - self.Emit("MOVQ", jit.Imm(_A_init_cap), _CX) // MOVQ _A_init_cap, CX - self.call_go(_F_makeslice) // CALL_GO runtime.makeslice - - /* pack into an interface */ - self.Emit("MOVQ", jit.Imm(_A_init_len), _BX) // MOVQ _A_init_len, BX - self.Emit("MOVQ", jit.Imm(_A_init_cap), _CX) // MOVQ _A_init_cap, CX - self.call_go(_F_convTslice) // CALL_GO runtime.convTslice - self.Emit("MOVQ", _AX, _R8) // MOVQ AX, R8 - - /* replace current state with an array */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Imm(_S_arr), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr, ST.Vt[CX] - self.Emit("MOVQ", _T_slice, _AX) // MOVQ _T_slice, AX - self.Emit("MOVQ", _AX, jit.Ptr(_SI, 0)) // MOVQ AX, (SI) - self.WriteRecNotAX(2, _R8, jit.Ptr(_SI, 8), false) // MOVQ R8, 8(SI) - - /* add a new slot for the first element */ - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow - self.Emit("MOVQ", jit.Ptr(_R8, 0), _AX) // MOVQ (R8), AX - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WritePtrAX(3, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] - self.Emit("MOVQ", jit.Imm(_S_arr_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_arr_0, ST.Vt[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_OBJECT **/ - self.Link("_decode_V_OBJECT") // _decode_V_OBJECT: - self.Emit("MOVL", jit.Imm(_S_vmask), _DX) // MOVL _S_vmask, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DX) // BTQ AX, DX - self.Sjmp("JNC" , "_invalid_char") // JNC _invalid_char - self.call_go(_F_makemap_small) // CALL_GO runtime.makemap_small - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Imm(_S_obj_0), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_0, ST.Vt[CX] - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", _T_map, _DX) // MOVQ _T_map, DX - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 0)) // MOVQ DX, (SI) - self.WritePtrAX(4, jit.Ptr(_SI, 8), false) // MOVQ AX, 8(SI) - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_STRING **/ - self.Link("_decode_V_STRING") // _decode_V_STRING: - self.Emit("MOVQ", _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX - self.Emit("MOVQ", _IC, _AX) // MOVQ IC, AX - self.Emit("SUBQ", _CX, _AX) // SUBQ CX, AX - - /* check for escapes */ - self.Emit("CMPQ", _VAR_ss_Ep, jit.Imm(-1)) // CMPQ ss.Ep, $-1 - self.Sjmp("JNE" , "_unquote") // JNE _unquote - self.Emit("SUBQ", jit.Imm(1), _AX) // SUBQ $1, AX - self.Emit("LEAQ", jit.Sib(_IP, _CX, 1, 0), _R8) // LEAQ (IP)(CX), R8 - self.Byte(0x48, 0x8d, 0x3d) // LEAQ (PC), DI - self.Sref("_copy_string_end", 4) - self.Emit("BTQ", jit.Imm(_F_copy_string), _VAR_df) - self.Sjmp("JC", "copy_string") - self.Link("_copy_string_end") - self.Emit("XORL", _DX, _DX) - - /* strings with no escape sequences */ - self.Link("_noescape") // _noescape: - self.Emit("MOVL", jit.Imm(_S_omask_key), _DI) // MOVL _S_omask, DI - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _SI) // MOVQ ST.Vt[CX], SI - self.Emit("BTQ" , _SI, _DI) // BTQ SI, DI - self.Sjmp("JC" , "_object_key") // JC _object_key - - /* check for pre-packed strings, avoid 1 allocation */ - self.Emit("TESTQ", _DX, _DX) // TESTQ DX, DX - self.Sjmp("JNZ" , "_packed_str") // JNZ _packed_str - self.Emit("MOVQ" , _AX, _BX) // MOVQ AX, BX - self.Emit("MOVQ" , _R8, _AX) // MOVQ R8, AX - self.call_go(_F_convTstring) // CALL_GO runtime.convTstring - self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 - - /* packed string already in R9 */ - self.Link("_packed_str") // _packed_str: - self.Emit("MOVQ", _T_string, _R8) // MOVQ _T_string, R8 - self.Emit("MOVQ", _VAR_ss_Iv, _DI) // MOVQ ss.Iv, DI - self.Emit("SUBQ", jit.Imm(1), _DI) // SUBQ $1, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* the string is an object key, get the map */ - self.Link("_object_key") - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - - /* add a new delimiter */ - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.Emit("MOVQ", jit.Imm(_S_obj_delim), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_obj_delim, ST.Vt[CX] - - /* add a new slot int the map */ - self.Emit("MOVQ", _AX, _DI) // MOVQ AX, DI - self.Emit("MOVQ", _T_map, _AX) // MOVQ _T_map, AX - self.Emit("MOVQ", _SI, _BX) // MOVQ SI, BX - self.Emit("MOVQ", _R8, _CX) // MOVQ R9, CX - self.call_go(_F_mapassign_faststr) // CALL_GO runtime.mapassign_faststr - - /* add to the pointer stack */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.WritePtrAX(6, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ AX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* allocate memory to store the string header and unquoted result */ - self.Link("_unquote") // _unquote: - self.Emit("ADDQ", jit.Imm(15), _AX) // ADDQ $15, AX - self.Emit("MOVQ", _T_byte, _BX) // MOVQ _T_byte, BX - self.Emit("MOVB", jit.Imm(0), _CX) // MOVB $0, CX - self.call_go(_F_mallocgc) // CALL_GO runtime.mallocgc - self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 - - /* prepare the unquoting parameters */ - self.Emit("MOVQ" , _VAR_ss_Iv, _CX) // MOVQ ss.Iv, CX - self.Emit("LEAQ" , jit.Sib(_IP, _CX, 1, 0), _DI) // LEAQ (IP)(CX), DI - self.Emit("NEGQ" , _CX) // NEGQ CX - self.Emit("LEAQ" , jit.Sib(_IC, _CX, 1, -1), _SI) // LEAQ -1(IC)(CX), SI - self.Emit("LEAQ" , jit.Ptr(_R9, 16), _DX) // LEAQ 16(R8), DX - self.Emit("LEAQ" , _VAR_ss_Ep, _CX) // LEAQ ss.Ep, CX - self.Emit("XORL" , _R8, _R8) // XORL R8, R8 - self.Emit("BTQ" , jit.Imm(_F_disable_urc), _VAR_df) // BTQ ${_F_disable_urc}, fv - self.Emit("SETCC", _R8) // SETCC R8 - self.Emit("SHLQ" , jit.Imm(types.B_UNICODE_REPLACE), _R8) // SHLQ ${types.B_UNICODE_REPLACE}, R8 - - /* unquote the string, with R9 been preserved */ - self.Emit("MOVQ", _R9, _VAR_R9) // SAVE R9 - self.call_c(_F_unquote) // CALL unquote - self.Emit("MOVQ", _VAR_R9, _R9) // LOAD R9 - - /* check for errors */ - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_unquote_error") // JS _unquote_error - self.Emit("MOVL" , jit.Imm(1), _DX) // MOVL $1, DX - self.Emit("LEAQ" , jit.Ptr(_R9, 16), _R8) // ADDQ $16, R8 - self.Emit("MOVQ" , _R8, jit.Ptr(_R9, 0)) // MOVQ R8, (R9) - self.Emit("MOVQ" , _AX, jit.Ptr(_R9, 8)) // MOVQ AX, 8(R9) - self.Sjmp("JMP" , "_noescape") // JMP _noescape - - /** V_DOUBLE **/ - self.Link("_decode_V_DOUBLE") // _decode_V_DOUBLE: - self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df - self.Sjmp("JC" , "_use_number") // JC _use_number - self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 - self.Sjmp("JMP" , "_use_float64") // JMP _use_float64 - - /** V_INTEGER **/ - self.Link("_decode_V_INTEGER") // _decode_V_INTEGER: - self.Emit("BTQ" , jit.Imm(_F_use_number), _VAR_df) // BTQ _F_use_number, df - self.Sjmp("JC" , "_use_number") // JC _use_number - self.Emit("BTQ" , jit.Imm(_F_use_int64), _VAR_df) // BTQ _F_use_int64, df - self.Sjmp("JC" , "_use_int64") // JC _use_int64 - //TODO: use ss.Dv directly - self.Emit("MOVSD", _VAR_ss_Dv, _X0) // MOVSD ss.Dv, X0 - - /* represent numbers as `float64` */ - self.Link("_use_float64") // _use_float64: - self.Emit("MOVQ" , _X0, _AX) // MOVQ X0, AX - self.call_go(_F_convT64) // CALL_GO runtime.convT64 - self.Emit("MOVQ" , _T_float64, _R8) // MOVQ _T_float64, R8 - self.Emit("MOVQ" , _AX, _R9) // MOVQ AX, R9 - self.Emit("MOVQ" , _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* represent numbers as `json.Number` */ - self.Link("_use_number") // _use_number - self.Emit("MOVQ", _VAR_ss_Ep, _AX) // MOVQ ss.Ep, AX - self.Emit("LEAQ", jit.Sib(_IP, _AX, 1, 0), _SI) // LEAQ (IP)(AX), SI - self.Emit("MOVQ", _IC, _CX) // MOVQ IC, CX - self.Emit("SUBQ", _AX, _CX) // SUBQ AX, CX - self.Emit("MOVQ", _SI, _AX) // MOVQ SI, AX - self.Emit("MOVQ", _CX, _BX) // MOVQ CX, BX - self.call_go(_F_convTstring) // CALL_GO runtime.convTstring - self.Emit("MOVQ", _T_number, _R8) // MOVQ _T_number, R8 - self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 - self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /* represent numbers as `int64` */ - self.Link("_use_int64") // _use_int64: - self.Emit("MOVQ", _VAR_ss_Iv, _AX) // MOVQ ss.Iv, AX - self.call_go(_F_convT64) // CALL_GO runtime.convT64 - self.Emit("MOVQ", _T_int64, _R8) // MOVQ _T_int64, R8 - self.Emit("MOVQ", _AX, _R9) // MOVQ AX, R9 - self.Emit("MOVQ", _VAR_ss_Ep, _DI) // MOVQ ss.Ep, DI - self.Sjmp("JMP" , "_set_value") // JMP _set_value - - /** V_KEY_SEP **/ - self.Link("_decode_V_KEY_SEP") // _decode_V_KEY_SEP: - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ", _AX, jit.Imm(_S_obj_delim)) // CMPQ AX, _S_obj_delim - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX] - self.Emit("MOVQ", jit.Imm(_S_obj), jit.Sib(_ST, _CX, 8, _ST_Vt - 8)) // MOVQ _S_obj, ST.Vt[CX - 1] - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_ELEM_SEP **/ - self.Link("_decode_V_ELEM_SEP") // _decode_V_ELEM_SEP: - self.Emit("MOVQ" , jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ" , jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ" , _AX, jit.Imm(_S_arr)) - self.Sjmp("JE" , "_array_sep") // JZ _next - self.Emit("CMPQ" , _AX, jit.Imm(_S_obj)) // CMPQ _AX, _S_arr - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("MOVQ" , jit.Imm(_S_obj_sep), jit.Sib(_ST, _CX, 8, _ST_Vt)) - self.Sjmp("JMP" , "_next") // JMP _next - - /* arrays */ - self.Link("_array_sep") - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _DX) // MOVQ 8(SI), DX - self.Emit("CMPQ", _DX, jit.Ptr(_SI, 16)) // CMPQ DX, 16(SI) - self.Sjmp("JAE" , "_array_more") // JAE _array_more - - /* add a slot for the new element */ - self.Link("_array_append") // _array_append: - self.Emit("ADDQ", jit.Imm(1), jit.Ptr(_SI, 8)) // ADDQ $1, 8(SI) - self.Emit("MOVQ", jit.Ptr(_SI, 0), _SI) // MOVQ (SI), SI - self.Emit("ADDQ", jit.Imm(1), _CX) // ADDQ $1, CX - self.Emit("CMPQ", _CX, jit.Imm(types.MAX_RECURSE)) // CMPQ CX, ${types.MAX_RECURSE} - self.Sjmp("JAE" , "_stack_overflow") // JA _stack_overflow - self.Emit("SHLQ", jit.Imm(1), _DX) // SHLQ $1, DX - self.Emit("LEAQ", jit.Sib(_SI, _DX, 8, 0), _SI) // LEAQ (SI)(DX*8), SI - self.Emit("MOVQ", _CX, jit.Ptr(_ST, _ST_Sp)) // MOVQ CX, ST.Sp - self.WriteRecNotAX(7 , _SI, jit.Sib(_ST, _CX, 8, _ST_Vp), false) // MOVQ SI, ST.Vp[CX] - self.Emit("MOVQ", jit.Imm(_S_val), jit.Sib(_ST, _CX, 8, _ST_Vt)) // MOVQ _S_val, ST.Vt[CX} - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_ARRAY_END **/ - self.Link("_decode_V_ARRAY_END") // _decode_V_ARRAY_END: - self.Emit("XORL", _DX, _DX) // XORL DX, DX - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("CMPQ", _AX, jit.Imm(_S_arr_0)) // CMPQ AX, _S_arr_0 - self.Sjmp("JE" , "_first_item") // JE _first_item - self.Emit("CMPQ", _AX, jit.Imm(_S_arr)) // CMPQ AX, _S_arr - self.Sjmp("JNE" , "_invalid_char") // JNE _invalid_char - self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* first element of an array */ - self.Link("_first_item") // _first_item: - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("SUBQ", jit.Imm(2), jit.Ptr(_ST, _ST_Sp)) // SUBQ $2, ST.Sp - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp - 8), _SI) // MOVQ ST.Vp[CX - 1], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp - 8)) // MOVQ DX, ST.Vp[CX - 1] - self.Emit("MOVQ", _DX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ DX, ST.Vp[CX] - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) - self.Sjmp("JMP" , "_next") // JMP _next - - /** V_OBJECT_END **/ - self.Link("_decode_V_OBJECT_END") // _decode_V_OBJECT_END: - self.Emit("MOVL", jit.Imm(_S_omask_end), _DI) // MOVL _S_omask, DI - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vt), _AX) // MOVQ ST.Vt[CX], AX - self.Emit("BTQ" , _AX, _DI) - self.Sjmp("JNC" , "_invalid_char") // JNE _invalid_char - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("SUBQ", jit.Imm(1), jit.Ptr(_ST, _ST_Sp)) // SUBQ $1, ST.Sp - self.Emit("MOVQ", _AX, jit.Sib(_ST, _CX, 8, _ST_Vp)) // MOVQ AX, ST.Vp[CX] - self.Sjmp("JMP" , "_next") // JMP _next - - /* return from decoder */ - self.Link("_return") // _return: - self.Emit("XORL", _EP, _EP) // XORL EP, EP - self.Emit("MOVQ", _EP, jit.Ptr(_ST, _ST_Vp)) // MOVQ EP, ST.Vp[0] - self.Link("_epilogue") // _epilogue: - self.Emit("SUBQ", jit.Imm(_FsmOffset), _ST) // SUBQ _FsmOffset, _ST - self.Emit("MOVQ", jit.Ptr(_SP, _VD_offs), _BP) // MOVQ _VD_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_VD_size), _SP) // ADDQ $_VD_size, SP - self.Emit("RET") // RET - - /* array expand */ - self.Link("_array_more") // _array_more: - self.Emit("MOVQ" , _T_eface, _AX) // MOVQ _T_eface, AX - self.Emit("MOVQ" , jit.Ptr(_SI, 0), _BX) // MOVQ (SI), BX - self.Emit("MOVQ" , jit.Ptr(_SI, 8), _CX) // MOVQ 8(SI), CX - self.Emit("MOVQ" , jit.Ptr(_SI, 16), _DI) // MOVQ 16(SI), DI - self.Emit("MOVQ" , _DI, _SI) // MOVQ DI, 24(SP) - self.Emit("SHLQ" , jit.Imm(1), _SI) // SHLQ $1, SI - self.call_go(_F_growslice) // CALL_GO runtime.growslice - self.Emit("MOVQ" , _AX, _DI) // MOVQ AX, DI - self.Emit("MOVQ" , _BX, _DX) // MOVQ BX, DX - self.Emit("MOVQ" , _CX, _AX) // MOVQ CX, AX - - /* update the slice */ - self.Emit("MOVQ", jit.Ptr(_ST, _ST_Sp), _CX) // MOVQ ST.Sp, CX - self.Emit("MOVQ", jit.Sib(_ST, _CX, 8, _ST_Vp), _SI) // MOVQ ST.Vp[CX], SI - self.Emit("MOVQ", jit.Ptr(_SI, 8), _SI) // MOVQ 8(SI), SI - self.Emit("MOVQ", _DX, jit.Ptr(_SI, 8)) // MOVQ DX, 8(SI) - self.Emit("MOVQ", _AX, jit.Ptr(_SI, 16)) // MOVQ AX, 16(AX) - self.WriteRecNotAX(8 , _DI, jit.Ptr(_SI, 0), false) // MOVQ R10, (SI) - self.Sjmp("JMP" , "_array_append") // JMP _array_append - - /* copy string */ - self.Link("copy_string") // pointer: R8, length: AX, return addr: DI - self.Emit("MOVQ", _R8, _VAR_cs_p) - self.Emit("MOVQ", _AX, _VAR_cs_n) - self.Emit("MOVQ", _DI, _VAR_cs_LR) - self.Emit("MOVQ", _AX, _BX) - self.Emit("MOVQ", _AX, _CX) - self.Emit("MOVQ", _T_byte, _AX) - self.call_go(_F_makeslice) - self.Emit("MOVQ", _AX, _VAR_cs_d) - self.Emit("MOVQ", _VAR_cs_p, _BX) - self.Emit("MOVQ", _VAR_cs_n, _CX) - self.call_go(_F_memmove) - self.Emit("MOVQ", _VAR_cs_d, _R8) - self.Emit("MOVQ", _VAR_cs_n, _AX) - self.Emit("MOVQ", _VAR_cs_LR, _DI) - self.Rjmp("JMP", _DI) - - /* error handlers */ - self.Link("_stack_overflow") - self.Emit("MOVL" , _E_recurse, _EP) // MOVQ _E_recurse, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_vtype_error") // _vtype_error: - self.Emit("MOVQ" , _DI, _IC) // MOVQ DI, IC - self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_invalid_char") // _invalid_char: - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Emit("MOVL" , _E_invalid, _EP) // MOVL _E_invalid, EP - self.Sjmp("JMP" , "_error") // JMP _error - self.Link("_unquote_error") // _unquote_error: - self.Emit("MOVQ" , _VAR_ss_Iv, _IC) // MOVQ ss.Iv, IC - self.Emit("SUBQ" , jit.Imm(1), _IC) // SUBQ $1, IC - self.Link("_parsing_error") // _parsing_error: - self.Emit("NEGQ" , _AX) // NEGQ AX - self.Emit("MOVQ" , _AX, _EP) // MOVQ AX, EP - self.Link("_error") // _error: - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Ptr(_VP, 0)) // MOVOU X0, (VP) - self.Sjmp("JMP" , "_epilogue") // JMP _epilogue - - /* invalid value type, never returns */ - self.Link("_invalid_vtype") - self.call_go(_F_invalid_vtype) // CALL invalid_type - self.Emit("UD2") // UD2 - - /* switch jump table */ - self.Link("_switch_table") // _switch_table: - self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 - self.Sref("_decode_V_NULL", -4) // SREF &_decode_V_NULL, $-4 - self.Sref("_decode_V_TRUE", -8) // SREF &_decode_V_TRUE, $-8 - self.Sref("_decode_V_FALSE", -12) // SREF &_decode_V_FALSE, $-12 - self.Sref("_decode_V_ARRAY", -16) // SREF &_decode_V_ARRAY, $-16 - self.Sref("_decode_V_OBJECT", -20) // SREF &_decode_V_OBJECT, $-20 - self.Sref("_decode_V_STRING", -24) // SREF &_decode_V_STRING, $-24 - self.Sref("_decode_V_DOUBLE", -28) // SREF &_decode_V_DOUBLE, $-28 - self.Sref("_decode_V_INTEGER", -32) // SREF &_decode_V_INTEGER, $-32 - self.Sref("_decode_V_KEY_SEP", -36) // SREF &_decode_V_KEY_SEP, $-36 - self.Sref("_decode_V_ELEM_SEP", -40) // SREF &_decode_V_ELEM_SEP, $-40 - self.Sref("_decode_V_ARRAY_END", -44) // SREF &_decode_V_ARRAY_END, $-44 - self.Sref("_decode_V_OBJECT_END", -48) // SREF &_decode_V_OBJECT_END, $-48 - - /* fast character lookup table */ - self.Link("_decode_tab") // _decode_tab: - self.Sref("_decode_V_EOF", 0) // SREF &_decode_V_EOF, $0 - - /* generate rest of the tabs */ - for i := 1; i < 256; i++ { - if to, ok := _R_tab[i]; ok { - self.Sref(to, -int64(i) * 4) - } else { - self.Byte(0x00, 0x00, 0x00, 0x00) - } - } -} - -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 ( - _subr_decode_value = new(_ValueDecoder).build() -) - -//go:nosplit -func invalid_vtype(vt types.ValueType) { - throw(fmt.Sprintf("invalid value type: %d", vt)) -} diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s deleted file mode 100644 index 6c2686d..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_go117_test.s +++ /dev/null @@ -1,37 +0,0 @@ -// +build go1.17,!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. -// - -#include "go_asm.h" -#include "funcdata.h" -#include "textflag.h" - -TEXT ·decodeValueStub(SB), NOSPLIT, $0 - 72 - NO_LOCAL_POINTERS - PXOR X0, X0 - MOVOU X0, rv+48(FP) - MOVQ st+0(FP) , R13 - MOVQ sp+8(FP) , R10 - MOVQ sn+16(FP), R12 - MOVQ ic+24(FP), R11 - MOVQ vp+32(FP), R15 - MOVQ df+40(FP), AX - MOVQ ·_subr_decode_value(SB), BX - CALL BX - MOVQ R11, rp+48(FP) - MOVQ BX, ex+56(FP) - RET diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s b/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s deleted file mode 100644 index 36cb1f5..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/generic_amd64_test.s +++ /dev/null @@ -1,37 +0,0 @@ -// +build go1.15,!go1.17 - -// -// 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 ·decodeValueStub(SB), NOSPLIT, $0 - 72 - NO_LOCAL_POINTERS - PXOR X0, X0 - MOVOU X0, rv+48(FP) - MOVQ st+0(FP), BX - MOVQ sp+8(FP), R12 - MOVQ sn+16(FP), R13 - MOVQ ic+24(FP), R14 - MOVQ vp+32(FP), R15 - MOVQ df+40(FP), R10 - MOVQ ·_subr_decode_value(SB), AX - CALL AX - MOVQ R14, rp+48(FP) - MOVQ R11, ex+56(FP) - RET diff --git a/vendor/github.com/bytedance/sonic/internal/decoder/pools.go b/vendor/github.com/bytedance/sonic/internal/decoder/pools.go index 06adc7f..bcd14cc 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 e1e0f73..a371643 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_go115.go deleted file mode 100644 index 1a0917c..0000000 --- a/vendor/github.com/bytedance/sonic/internal/decoder/stubs_go115.go +++ /dev/null @@ -1,111 +0,0 @@ -// +build go1.15,!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 decoder - -import ( - `unsafe` - `reflect` - - _ `github.com/chenzhuoyu/base64x` - - `github.com/bytedance/sonic/internal/rt` -) - -//go:linkname _subr__b64decode github.com/chenzhuoyu/base64x._subr__b64decode -var _subr__b64decode uintptr - -// runtime.maxElementSize -const _max_map_element_size uintptr = 128 - -func mapfast(vt reflect.Type) bool { - return vt.Elem().Size() <= _max_map_element_size -} - -//go:nosplit -//go:linkname throw runtime.throw -//goland:noinspection GoUnusedParameter -func throw(s string) - -//go:linkname convT64 runtime.convT64 -//goland:noinspection GoUnusedParameter -func convT64(v uint64) unsafe.Pointer - -//go:linkname convTslice runtime.convTslice -//goland:noinspection GoUnusedParameter -func convTslice(v []byte) unsafe.Pointer - -//go:linkname convTstring runtime.convTstring -//goland:noinspection GoUnusedParameter -func convTstring(v string) unsafe.Pointer - -//go:noescape -//go:linkname memequal runtime.memequal -//goland:noinspection GoUnusedParameter -func memequal(a unsafe.Pointer, b unsafe.Pointer, size uintptr) bool - -//go:noescape -//go:linkname memmove runtime.memmove -//goland:noinspection GoUnusedParameter -func memmove(to unsafe.Pointer, from unsafe.Pointer, n uintptr) - -//go:linkname mallocgc runtime.mallocgc -//goland:noinspection GoUnusedParameter -func mallocgc(size uintptr, typ *rt.GoType, needzero bool) unsafe.Pointer - -//go:linkname makeslice runtime.makeslice -//goland:noinspection GoUnusedParameter -func makeslice(et *rt.GoType, len int, cap int) unsafe.Pointer - -//go:noescape -//go:linkname growslice runtime.growslice -//goland:noinspection GoUnusedParameter -func growslice(et *rt.GoType, old rt.GoSlice, cap int) rt.GoSlice - -//go:linkname makemap_small runtime.makemap_small -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 - -//go:linkname mapassign_fast32 runtime.mapassign_fast32 -//goland:noinspection GoUnusedParameter -func mapassign_fast32(t *rt.GoType, 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 - -//go:linkname mapassign_fast64ptr runtime.mapassign_fast64ptr -//goland:noinspection GoUnusedParameter -func mapassign_fast64ptr(t *rt.GoType, 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 - -//go:nosplit -//go:linkname memclrHasPointers runtime.memclrHasPointers -//goland:noinspection GoUnusedParameter -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 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 cde6a19..73960ea 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/assembler_amd64_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go116.go deleted file mode 100644 index d056259..0000000 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go116.go +++ /dev/null @@ -1,1199 +0,0 @@ -// +build go1.15,!go1.17 - -/* - * 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 ( - `fmt` - `reflect` - `strconv` - `unsafe` - - `github.com/bytedance/sonic/internal/cpu` - `github.com/bytedance/sonic/internal/jit` - `github.com/bytedance/sonic/internal/native/types` - `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` - - `github.com/bytedance/sonic/internal/native` - `github.com/bytedance/sonic/internal/rt` -) - -/** Register Allocations - * - * State Registers: - * - * %rbx : stack base - * %rdi : result pointer - * %rsi : result length - * %rdx : result capacity - * %r12 : sp->p - * %r13 : sp->q - * %r14 : sp->x - * %r15 : sp->f - * - * Error Registers: - * - * %r10 : error type register - * %r11 : error pointer register - */ - -/** Function Prototype & Stack Map - * - * func (buf *[]byte, p unsafe.Pointer, sb *_Stack, fv uint64) (err error) - * - * buf : (FP) - * p : 8(FP) - * sb : 16(FP) - * fv : 24(FP) - * err.vt : 32(FP) - * err.vp : 40(FP) - */ - -const ( - _S_cond = iota - _S_init -) - -const ( - _FP_args = 48 // 48 bytes for passing arguments to this function - _FP_fargs = 64 // 64 bytes for passing arguments to other Go functions - _FP_saves = 64 // 64 bytes for saving the registers before CALL instructions - _FP_locals = 24 // 24 bytes for local variables -) - -const ( - _FP_offs = _FP_fargs + _FP_saves + _FP_locals - _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer - _FP_base = _FP_size + 8 // 8 bytes for the return address -) - -const ( - _FM_exp32 = 0x7f800000 - _FM_exp64 = 0x7ff0000000000000 -) - -const ( - _IM_null = 0x6c6c756e // 'null' - _IM_true = 0x65757274 // 'true' - _IM_fals = 0x736c6166 // 'fals' ('false' without the 'e') - _IM_open = 0x00225c22 // '"\"∅' - _IM_array = 0x5d5b // '[]' - _IM_object = 0x7d7b // '{}' - _IM_mulv = -0x5555555555555555 -) - -const ( - _LB_more_space = "_more_space" - _LB_more_space_return = "_more_space_return_" -) - -const ( - _LB_error = "_error" - _LB_error_too_deep = "_error_too_deep" - _LB_error_invalid_number = "_error_invalid_number" - _LB_error_nan_or_infinite = "_error_nan_or_infinite" - _LB_panic = "_panic" -) - -var ( - _AX = jit.Reg("AX") - _CX = jit.Reg("CX") - _DX = jit.Reg("DX") - _DI = jit.Reg("DI") - _SI = jit.Reg("SI") - _BP = jit.Reg("BP") - _SP = jit.Reg("SP") - _R8 = jit.Reg("R8") -) - -var ( - _X0 = jit.Reg("X0") - _Y0 = jit.Reg("Y0") -) - -var ( - _ST = jit.Reg("BX") - _RP = jit.Reg("DI") - _RL = jit.Reg("SI") - _RC = jit.Reg("DX") -) - -var ( - _LR = jit.Reg("R9") - _R10 = jit.Reg("R10") // used for gcWriterBarrier - _ET = jit.Reg("R10") - _EP = jit.Reg("R11") -) - -var ( - _SP_p = jit.Reg("R12") - _SP_q = jit.Reg("R13") - _SP_x = jit.Reg("R14") - _SP_f = jit.Reg("R15") -) - -var ( - _ARG_rb = jit.Ptr(_SP, _FP_base) - _ARG_vp = jit.Ptr(_SP, _FP_base + 8) - _ARG_sb = jit.Ptr(_SP, _FP_base + 16) - _ARG_fv = jit.Ptr(_SP, _FP_base + 24) -) - -var ( - _RET_et = jit.Ptr(_SP, _FP_base + 32) - _RET_ep = jit.Ptr(_SP, _FP_base + 40) -) - -var ( - _VAR_sp = jit.Ptr(_SP, _FP_fargs + _FP_saves) - _VAR_dn = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) - _VAR_vp = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) -) - -var ( - _REG_ffi = []obj.Addr{_RP, _RL, _RC} - _REG_enc = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RL} - _REG_jsr = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _LR} - _REG_all = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RP, _RL, _RC} -) - -type _Assembler struct { - jit.BaseAssembler - p _Program - x int - name string -} - -func newAssembler(p _Program) *_Assembler { - return new(_Assembler).Init(p) -} - -/** Assembler Interface **/ -func (self *_Assembler) Load() _Encoder { - return ptoenc(self.BaseAssembler.Load("encode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) -} - -func (self *_Assembler) Init(p _Program) *_Assembler { - self.p = p - self.BaseAssembler.Init(self.compile) - return self -} - -func (self *_Assembler) compile() { - self.prologue() - self.instrs() - self.epilogue() - self.builtins() -} - -/** Assembler Stages **/ - -var _OpFuncTab = [256]func(*_Assembler, *_Instr) { - _OP_null : (*_Assembler)._asm_OP_null, - _OP_empty_arr : (*_Assembler)._asm_OP_empty_arr, - _OP_empty_obj : (*_Assembler)._asm_OP_empty_obj, - _OP_bool : (*_Assembler)._asm_OP_bool, - _OP_i8 : (*_Assembler)._asm_OP_i8, - _OP_i16 : (*_Assembler)._asm_OP_i16, - _OP_i32 : (*_Assembler)._asm_OP_i32, - _OP_i64 : (*_Assembler)._asm_OP_i64, - _OP_u8 : (*_Assembler)._asm_OP_u8, - _OP_u16 : (*_Assembler)._asm_OP_u16, - _OP_u32 : (*_Assembler)._asm_OP_u32, - _OP_u64 : (*_Assembler)._asm_OP_u64, - _OP_f32 : (*_Assembler)._asm_OP_f32, - _OP_f64 : (*_Assembler)._asm_OP_f64, - _OP_str : (*_Assembler)._asm_OP_str, - _OP_bin : (*_Assembler)._asm_OP_bin, - _OP_quote : (*_Assembler)._asm_OP_quote, - _OP_number : (*_Assembler)._asm_OP_number, - _OP_eface : (*_Assembler)._asm_OP_eface, - _OP_iface : (*_Assembler)._asm_OP_iface, - _OP_byte : (*_Assembler)._asm_OP_byte, - _OP_text : (*_Assembler)._asm_OP_text, - _OP_deref : (*_Assembler)._asm_OP_deref, - _OP_index : (*_Assembler)._asm_OP_index, - _OP_load : (*_Assembler)._asm_OP_load, - _OP_save : (*_Assembler)._asm_OP_save, - _OP_drop : (*_Assembler)._asm_OP_drop, - _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, - _OP_recurse : (*_Assembler)._asm_OP_recurse, - _OP_is_nil : (*_Assembler)._asm_OP_is_nil, - _OP_is_nil_p1 : (*_Assembler)._asm_OP_is_nil_p1, - _OP_is_zero_1 : (*_Assembler)._asm_OP_is_zero_1, - _OP_is_zero_2 : (*_Assembler)._asm_OP_is_zero_2, - _OP_is_zero_4 : (*_Assembler)._asm_OP_is_zero_4, - _OP_is_zero_8 : (*_Assembler)._asm_OP_is_zero_8, - _OP_is_zero_map : (*_Assembler)._asm_OP_is_zero_map, - _OP_goto : (*_Assembler)._asm_OP_goto, - _OP_map_iter : (*_Assembler)._asm_OP_map_iter, - _OP_map_stop : (*_Assembler)._asm_OP_map_stop, - _OP_map_check_key : (*_Assembler)._asm_OP_map_check_key, - _OP_map_write_key : (*_Assembler)._asm_OP_map_write_key, - _OP_map_value_next : (*_Assembler)._asm_OP_map_value_next, - _OP_slice_len : (*_Assembler)._asm_OP_slice_len, - _OP_slice_next : (*_Assembler)._asm_OP_slice_next, - _OP_marshal : (*_Assembler)._asm_OP_marshal, - _OP_marshal_p : (*_Assembler)._asm_OP_marshal_p, - _OP_marshal_text : (*_Assembler)._asm_OP_marshal_text, - _OP_marshal_text_p : (*_Assembler)._asm_OP_marshal_text_p, - _OP_cond_set : (*_Assembler)._asm_OP_cond_set, - _OP_cond_testc : (*_Assembler)._asm_OP_cond_testc, -} - -func (self *_Assembler) instr(v *_Instr) { - if fn := _OpFuncTab[v.op()]; fn != nil { - fn(self, v) - } else { - panic(fmt.Sprintf("invalid opcode: %d", v.op())) - } -} - -func (self *_Assembler) instrs() { - for i, v := range self.p { - self.Mark(i) - self.instr(&v) - self.debug_instr(i, &v) - } -} - -func (self *_Assembler) builtins() { - self.more_space() - self.error_too_deep() - self.error_invalid_number() - self.error_nan_or_infinite() - self.go_panic() -} - -func (self *_Assembler) epilogue() { - self.Mark(len(self.p)) - self.Emit("XORL", _ET, _ET) - self.Emit("XORL", _EP, _EP) - self.Link(_LB_error) - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) - self.Emit("MOVQ", _ET, _RET_et) // MOVQ ET, et<>+24(FP) - self.Emit("MOVQ", _EP, _RET_ep) // MOVQ EP, ep<>+32(FP) - self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP - self.Emit("RET") // RET -} - -func (self *_Assembler) prologue() { - self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP - self.load_buffer() // LOAD {buf} - self.Emit("MOVQ", _ARG_vp, _SP_p) // MOVQ vp<>+8(FP), SP.p - self.Emit("MOVQ", _ARG_sb, _ST) // MOVQ sb<>+16(FP), ST - self.Emit("XORL", _SP_x, _SP_x) // XORL SP.x, SP.x - self.Emit("XORL", _SP_f, _SP_f) // XORL SP.f, SP.f - self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q -} - -/** Assembler Inline Functions **/ - -func (self *_Assembler) xsave(reg ...obj.Addr) { - for i, v := range reg { - if i > _FP_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) - } - } -} - -func (self *_Assembler) xload(reg ...obj.Addr) { - for i, v := range reg { - if i > _FP_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) - } - } -} - -func (self *_Assembler) rbuf_di() { - if _RP.Reg != x86.REG_DI { - panic("register allocation messed up: RP != DI") - } else { - self.Emit("ADDQ", _RL, _RP) - } -} - -func (self *_Assembler) store_int(nd int, fn obj.Addr, ins string) { - self.check_size(nd) - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit(ins, jit.Ptr(_SP_p, 0), _SI) // $ins (SP.p), SI - self.call_c(fn) // CALL_C $fn - self.Emit("ADDQ", _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) store_str(s string) { - i := 0 - m := rt.Str2Mem(s) - - /* 8-byte stores */ - for i <= len(m) - 8 { - self.Emit("MOVQ", jit.Imm(rt.Get64(m[i:])), _AX) // MOVQ $s[i:], AX - self.Emit("MOVQ", _AX, jit.Sib(_RP, _RL, 1, int64(i))) // MOVQ AX, i(RP)(RL) - i += 8 - } - - /* 4-byte stores */ - if i <= len(m) - 4 { - self.Emit("MOVL", jit.Imm(int64(rt.Get32(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVL $s[i:], i(RP)(RL) - i += 4 - } - - /* 2-byte stores */ - if i <= len(m) - 2 { - self.Emit("MOVW", jit.Imm(int64(rt.Get16(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVW $s[i:], i(RP)(RL) - i += 2 - } - - /* last byte */ - if i < len(m) { - self.Emit("MOVB", jit.Imm(int64(m[i])), jit.Sib(_RP, _RL, 1, int64(i))) // MOVB $s[i:], i(RP)(RL) - } -} - -func (self *_Assembler) check_size(n int) { - self.check_size_rl(jit.Ptr(_RL, int64(n))) -} - -func (self *_Assembler) check_size_r(r obj.Addr, d int) { - self.check_size_rl(jit.Sib(_RL, r, 1, int64(d))) -} - -func (self *_Assembler) check_size_rl(v obj.Addr) { - idx := self.x - key := _LB_more_space_return + strconv.Itoa(idx) - - /* the following code relies on LR == R9 to work */ - if _LR.Reg != x86.REG_R9 { - panic("register allocation messed up: LR != R9") - } - - /* check for buffer capacity */ - self.x++ - self.Emit("LEAQ", v, _AX) // LEAQ $v, AX - self.Emit("CMPQ", _AX, _RC) // CMPQ AX, RC - self.Sjmp("JBE" , key) // JBE _more_space_return_{n} - self.slice_grow_ax(key) // GROW $key - self.Link(key) // _more_space_return_{n}: -} - -func (self *_Assembler) slice_grow_ax(ret string) { - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ ?(PC), R9 - self.Sref(ret, 4) // .... &ret - self.Sjmp("JMP" , _LB_more_space) // JMP _more_space -} - -/** State Stack Helpers **/ - -const ( - _StateSize = int64(unsafe.Sizeof(_State{})) - _StackLimit = _MaxStack * _StateSize -) - -func (self *_Assembler) save_state() { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX - self.Emit("LEAQ", jit.Ptr(_CX, _StateSize), _R8) // LEAQ _StateSize(CX), R8 - self.Emit("CMPQ", _R8, jit.Imm(_StackLimit)) // CMPQ R8, $_StackLimit - 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.Emit("MOVQ", _R8, jit.Ptr(_ST, 0)) // MOVQ R8, (ST) -} - -func (self *_Assembler) drop_state(decr int64) { - self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ" , jit.Imm(decr), _AX) // SUBQ $decr, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _SP_x) // MOVQ 8(ST)(AX), SP.x - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 16), _SP_f) // MOVQ 16(ST)(AX), SP.f - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 24), _SP_p) // MOVQ 24(ST)(AX), SP.p - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 32), _SP_q) // MOVQ 32(ST)(AX), SP.q - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 24)) // MOVOU X0, 24(ST)(AX) -} - -/** Buffer Helpers **/ - -func (self *_Assembler) add_char(ch byte) { - self.Emit("MOVB", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVB $ch, (RP)(RL) - self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL -} - -func (self *_Assembler) add_long(ch uint32, n int64) { - self.Emit("MOVL", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVL $ch, (RP)(RL) - self.Emit("ADDQ", jit.Imm(n), _RL) // ADDQ $n, RL -} - -func (self *_Assembler) add_text(ss string) { - self.store_str(ss) // TEXT $ss - self.Emit("ADDQ", jit.Imm(int64(len(ss))), _RL) // ADDQ ${len(ss)}, RL -} - -func (self *_Assembler) prep_buffer() { - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) -} - -func (self *_Assembler) prep_buffer_c() { - self.Emit("MOVQ", _ARG_rb, _DI) // MOVQ rb<>+0(FP), DI - self.Emit("MOVQ", _RL, jit.Ptr(_DI, 8)) // MOVQ RL, 8(DI) -} - -func (self *_Assembler) save_buffer() { - self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX - self.Emit("MOVQ", _RP, jit.Ptr(_CX, 0)) // MOVQ RP, (CX) - self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) - self.Emit("MOVQ", _RC, jit.Ptr(_CX, 16)) // MOVQ RC, 16(CX) -} - -func (self *_Assembler) load_buffer() { - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX), RP - self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX), RL - self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), RC -} - -/** Function Interface Helpers **/ - -func (self *_Assembler) call(pc obj.Addr) { - self.Emit("MOVQ", pc, _AX) // MOVQ $pc, AX - self.Rjmp("CALL", _AX) // CALL AX -} - -func (self *_Assembler) save_c() { - self.xsave(_REG_ffi...) // SAVE $REG_ffi -} - -func (self *_Assembler) call_c(pc obj.Addr) { - self.call(pc) // CALL $pc - self.xload(_REG_ffi...) // LOAD $REG_ffi -} - -func (self *_Assembler) call_go(pc obj.Addr) { - self.xsave(_REG_all...) // SAVE $REG_all - self.call(pc) // CALL $pc - self.xload(_REG_all...) // LOAD $REG_all -} - -func (self *_Assembler) call_encoder(pc obj.Addr) { - self.xsave(_REG_enc...) // SAVE $REG_enc - self.call(pc) // CALL $pc - self.xload(_REG_enc...) // LOAD $REG_enc - self.load_buffer() // LOAD {buf} -} - -func (self *_Assembler) call_marshaler(fn obj.Addr, it *rt.GoType, vt reflect.Type) { - switch vt.Kind() { - case reflect.Interface : self.call_marshaler_i(fn, it) - case reflect.Ptr, reflect.Map: self.call_marshaler_v(fn, it, vt, true) - // struct/array of 1 direct iface type can be direct - default : self.call_marshaler_v(fn, it, vt, !rt.UnpackType(vt).Indirect()) - } -} - -func (self *_Assembler) call_marshaler_i(fn obj.Addr, it *rt.GoType) { - self.Emit("MOVQ" , jit.Gtype(it), _AX) // MOVQ $it, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ 8(SP.p), CX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 16)) // MOVQ CX, 16(SP) - self.call_go(_F_assertI2I) // CALL_GO assertI2I - self.prep_buffer() // MOVE {buf}, (SP) - self.Emit("MOVOU", jit.Ptr(_SP, 24), _X0) // MOVOU 24(SP), X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) - self.Emit("MOVQ", _ARG_fv, _CX) // MOVQ ARG.fv, CX - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) - self.call_encoder(fn) // CALL $fn - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} - self.Link("_null_{n}") // _null_{n}: - self.check_size(4) // SIZE $4 - self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL - self.Link("_done_{n}") // _done_{n}: -} - -func (self *_Assembler) call_marshaler_v(fn obj.Addr, it *rt.GoType, vt reflect.Type, deref bool) { - self.prep_buffer() // MOVE {buf}, (SP) - self.Emit("MOVQ", jit.Itab(it, vt), _AX) // MOVQ $(itab(it, vt)), AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - - /* dereference the pointer if needed */ - if !deref { - self.Emit("MOVQ", _SP_p, jit.Ptr(_SP, 16)) // MOVQ SP.p, 16(SP) - } else { - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - } - - /* call the encoder, and perform error checks */ - self.Emit("MOVQ", _ARG_fv, _CX) // MOVQ ARG.fv, CX - self.Emit("MOVQ", _CX, jit.Ptr(_SP, 24)) // MOVQ CX, 24(SP) - self.call_encoder(fn) // CALL $fn - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -/** Builtin: _more_space **/ - -var ( - _T_byte = jit.Type(byteType) - _F_growslice = jit.Func(growslice) -) - -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", _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) - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) - self.xsave(_REG_jsr...) // SAVE $REG_jsr - self.call(_F_growslice) // CALL $pc - self.xload(_REG_jsr...) // LOAD $REG_jsr - self.Emit("MOVQ", jit.Ptr(_SP, 40), _RP) // MOVQ 40(SP), RP - self.Emit("MOVQ", jit.Ptr(_SP, 48), _RL) // MOVQ 48(SP), RL - self.Emit("MOVQ", jit.Ptr(_SP, 56), _RC) // MOVQ 56(SP), RC - self.save_buffer() // SAVE {buf} - self.Rjmp("JMP" , _LR) // JMP LR -} - -/** Builtin Errors **/ - -var ( - _V_ERR_too_deep = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_too_deep)))) - _V_ERR_nan_or_infinite = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_nan_or_infinite)))) - _I_json_UnsupportedValueError = jit.Itab(rt.UnpackType(errorType), jsonUnsupportedValueType) -) - -func (self *_Assembler) error_too_deep() { - self.Link(_LB_error_too_deep) - self.Emit("MOVQ", _V_ERR_too_deep, _EP) // MOVQ $_V_ERR_too_deep, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) error_invalid_number() { - self.Link(_LB_error_invalid_number) - self.call_go(_F_error_number) // CALL_GO error_number - self.Emit("MOVQ", jit.Ptr(_SP, 16), _ET) // MOVQ 16(SP), ET - self.Emit("MOVQ", jit.Ptr(_SP, 24), _EP) // MOVQ 24(SP), EP - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) error_nan_or_infinite() { - self.Link(_LB_error_nan_or_infinite) - self.Emit("MOVQ", _V_ERR_nan_or_infinite, _EP) // MOVQ $_V_ERR_nan_or_infinite, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -/** String Encoding Routine **/ - -var ( - _F_quote = jit.Imm(int64(native.S_quote)) - _F_panic = jit.Func(goPanic) -) - -func (self *_Assembler) go_panic() { - self.Link(_LB_panic) - self.Emit("MOVQ", _SP_p, jit.Ptr(_SP, 8)) - self.call_go(_F_panic) -} - -func (self *_Assembler) encode_string(doubleQuote bool) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_str_empty_{n}") // JZ _str_empty_{n} - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) - self.Sjmp("JNE" , "_str_next_{n}") - self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), jit.Ptr(_SP, 0)) - self.Sjmp("JMP", _LB_panic) - self.Link("_str_next_{n}") - - /* openning quote, check for double quote */ - if !doubleQuote { - self.check_size_r(_AX, 2) // SIZE $2 - self.add_char('"') // CHAR $'"' - } else { - self.check_size_r(_AX, 6) // SIZE $6 - self.add_long(_IM_open, 3) // TEXT $`"\"` - } - - /* quoting loop */ - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _AX, _VAR_sp) // MOVQ AX, sp - self.Link("_str_loop_{n}") // _str_loop_{n}: - self.save_c() // SAVE $REG_ffi - - /* load the output buffer first, and then input buffer, - * because the parameter registers collide with RP / RL / RC */ - self.Emit("MOVQ", _RC, _CX) // MOVQ RC, CX - self.Emit("SUBQ", _RL, _CX) // SUBQ RL, CX - self.Emit("MOVQ", _CX, _VAR_dn) // MOVQ CX, dn - self.Emit("LEAQ", jit.Sib(_RP, _RL, 1, 0), _DX) // LEAQ (RP)(RL), DX - self.Emit("LEAQ", _VAR_dn, _CX) // LEAQ dn, CX - self.Emit("MOVQ", _VAR_sp, _AX) // MOVQ sp, AX - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _DI) // MOVQ (SP.p), DI - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _SI) // MOVQ 8(SP.p), SI - self.Emit("ADDQ", _AX, _DI) // ADDQ AX, DI - self.Emit("SUBQ", _AX, _SI) // SUBQ AX, SI - - /* set the flags based on `doubleQuote` */ - if !doubleQuote { - self.Emit("XORL", _R8, _R8) // XORL R8, R8 - } else { - self.Emit("MOVL", jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 - } - - /* call the native quoter */ - self.call_c(_F_quote) // CALL quote - self.Emit("ADDQ" , _VAR_dn, _RL) // ADDQ dn, RL - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_str_space_{n}") // JS _str_space_{n} - - /* close the string, check for double quote */ - if !doubleQuote { - self.check_size(1) // SIZE $1 - self.add_char('"') // CHAR $'"' - self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} - } else { - self.check_size(3) // SIZE $3 - self.add_text("\\\"\"") // TEXT $'\""' - self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} - } - - /* not enough space to contain the quoted string */ - self.Link("_str_space_{n}") // _str_space_{n}: - self.Emit("NOTQ", _AX) // NOTQ AX - self.Emit("ADDQ", _AX, _VAR_sp) // ADDQ AX, sp - self.Emit("LEAQ", jit.Sib(_RC, _RC, 1, 0), _AX) // LEAQ (RC)(RC), AX - self.slice_grow_ax("_str_loop_{n}") // GROW _str_loop_{n} - - /* empty string, check for double quote */ - if !doubleQuote { - self.Link("_str_empty_{n}") // _str_empty_{n}: - self.check_size(2) // SIZE $2 - self.add_text("\"\"") // TEXT $'""' - self.Link("_str_end_{n}") // _str_end_{n}: - } else { - self.Link("_str_empty_{n}") // _str_empty_{n}: - self.check_size(6) // SIZE $6 - self.add_text("\"\\\"\\\"\"") // TEXT $'"\"\""' - self.Link("_str_end_{n}") // _str_end_{n}: - } -} - -/** OpCode Assembler Functions **/ - -var ( - _T_json_Marshaler = rt.UnpackType(jsonMarshalerType) - _T_encoding_TextMarshaler = rt.UnpackType(encodingTextMarshalerType) -) - -var ( - _F_f64toa = jit.Imm(int64(native.S_f64toa)) - _F_f32toa = jit.Imm(int64(native.S_f32toa)) - _F_i64toa = jit.Imm(int64(native.S_i64toa)) - _F_u64toa = jit.Imm(int64(native.S_u64toa)) - _F_b64encode = jit.Imm(int64(_subr__b64encode)) -) - -var ( - _F_memmove = jit.Func(memmove) - _F_error_number = jit.Func(error_number) - _F_isValidNumber = jit.Func(isValidNumber) -) - -var ( - _F_iteratorStop = jit.Func(iteratorStop) - _F_iteratorNext = jit.Func(iteratorNext) - _F_iteratorStart = jit.Func(iteratorStart) -) - -var ( - _F_encodeTypedPointer obj.Addr - _F_encodeJsonMarshaler obj.Addr - _F_encodeTextMarshaler obj.Addr -) - -const ( - _MODE_AVX2 = 1 << 2 -) - -func init() { - _F_encodeTypedPointer = jit.Func(encodeTypedPointer) - _F_encodeJsonMarshaler = jit.Func(encodeJsonMarshaler) - _F_encodeTextMarshaler = jit.Func(encodeTextMarshaler) -} - -func (self *_Assembler) _asm_OP_null(_ *_Instr) { - self.check_size(4) - self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL -} - -func (self *_Assembler) _asm_OP_empty_arr(_ *_Instr) { - self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) - self.Sjmp("JC", "_empty_arr_{n}") - self._asm_OP_null(nil) - self.Sjmp("JMP", "_empty_arr_end_{n}") - self.Link("_empty_arr_{n}") - self.check_size(2) - self.Emit("MOVW", jit.Imm(_IM_array), jit.Sib(_RP, _RL, 1, 0)) - self.Emit("ADDQ", jit.Imm(2), _RL) - self.Link("_empty_arr_end_{n}") -} - -func (self *_Assembler) _asm_OP_empty_obj(_ *_Instr) { - self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) - self.Sjmp("JC", "_empty_obj_{n}") - self._asm_OP_null(nil) - self.Sjmp("JMP", "_empty_obj_end_{n}") - self.Link("_empty_obj_{n}") - self.check_size(2) - self.Emit("MOVW", jit.Imm(_IM_object), jit.Sib(_RP, _RL, 1, 0)) - self.Emit("ADDQ", jit.Imm(2), _RL) - self.Link("_empty_obj_end_{n}") -} - -func (self *_Assembler) _asm_OP_bool(_ *_Instr) { - self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 - self.Sjmp("JE" , "_false_{n}") // JE _false_{n} - self.check_size(4) // SIZE $4 - self.Emit("MOVL", jit.Imm(_IM_true), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'true', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_false_{n}") // _false_{n}: - self.check_size(5) // SIZE $5 - self.Emit("MOVL", jit.Imm(_IM_fals), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'fals', (RP)(RL*1) - self.Emit("MOVB", jit.Imm('e'), jit.Sib(_RP, _RL, 1, 4)) // MOVB $'e', 4(RP)(RL*1) - self.Emit("ADDQ", jit.Imm(5), _RL) // ADDQ $5, RL - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_i8(_ *_Instr) { - self.store_int(4, _F_i64toa, "MOVBQSX") -} - -func (self *_Assembler) _asm_OP_i16(_ *_Instr) { - self.store_int(6, _F_i64toa, "MOVWQSX") -} - -func (self *_Assembler) _asm_OP_i32(_ *_Instr) { - self.store_int(17, _F_i64toa, "MOVLQSX") -} - -func (self *_Assembler) _asm_OP_i64(_ *_Instr) { - self.store_int(21, _F_i64toa, "MOVQ") -} - -func (self *_Assembler) _asm_OP_u8(_ *_Instr) { - self.store_int(3, _F_u64toa, "MOVBQZX") -} - -func (self *_Assembler) _asm_OP_u16(_ *_Instr) { - self.store_int(5, _F_u64toa, "MOVWQZX") -} - -func (self *_Assembler) _asm_OP_u32(_ *_Instr) { - self.store_int(16, _F_u64toa, "MOVLQZX") -} - -func (self *_Assembler) _asm_OP_u64(_ *_Instr) { - self.store_int(20, _F_u64toa, "MOVQ") -} - -func (self *_Assembler) _asm_OP_f32(_ *_Instr) { - self.check_size(32) - self.Emit("MOVL" , jit.Ptr(_SP_p, 0), _AX) // MOVL (SP.p), AX - self.Emit("ANDL" , jit.Imm(_FM_exp32), _AX) // ANDL $_FM_exp32, AX - self.Emit("XORL" , jit.Imm(_FM_exp32), _AX) // XORL $_FM_exp32, AX - self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit("MOVSS" , jit.Ptr(_SP_p, 0), _X0) // MOVSS (SP.p), X0 - self.call_c(_F_f32toa) // CALL_C f64toa - self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) _asm_OP_f64(_ *_Instr) { - self.check_size(32) - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ" , jit.Imm(_FM_exp64), _CX) // MOVQ $_FM_exp64, CX - self.Emit("ANDQ" , _CX, _AX) // ANDQ CX, AX - self.Emit("XORQ" , _CX, _AX) // XORQ CX, AX - self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit("MOVSD" , jit.Ptr(_SP_p, 0), _X0) // MOVSD (SP.p), X0 - self.call_c(_F_f64toa) // CALL_C f64toa - self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) _asm_OP_str(_ *_Instr) { - self.encode_string(false) -} - -func (self *_Assembler) _asm_OP_bin(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX - self.Emit("ADDQ", jit.Imm(2), _AX) // ADDQ $2, AX - self.Emit("MOVQ", jit.Imm(_IM_mulv), _CX) // MOVQ $_MF_mulv, CX - self.Emit("MOVQ", _DX, _R8) // MOVQ DX, R8 - self.From("MULQ", _CX) // MULQ CX - self.Emit("LEAQ", jit.Sib(_DX, _DX, 1, 1), _AX) // LEAQ 1(DX)(DX), AX - self.Emit("ORQ" , jit.Imm(2), _AX) // ORQ $2, AX - self.Emit("MOVQ", _R8, _DX) // MOVQ R8, DX - self.check_size_r(_AX, 0) // SIZE AX - self.add_char('"') // CHAR $'"' - self.save_c() // SAVE $REG_ffi - self.prep_buffer_c() // MOVE {buf}, DI - self.Emit("MOVQ", _SP_p, _SI) // MOVQ SP.p, SI - - /* check for AVX2 support */ - if !cpu.HasAVX2 { - self.Emit("XORL", _DX, _DX) // XORL DX, DX - } else { - self.Emit("MOVL", jit.Imm(_MODE_AVX2), _DX) // MOVL $_MODE_AVX2, DX - } - - /* call the encoder */ - self.call_c(_F_b64encode) // CALL b64encode - self.load_buffer() // LOAD {buf} - self.add_char('"') // CHAR $'"' -} - -func (self *_Assembler) _asm_OP_quote(_ *_Instr) { - self.encode_string(true) -} - -func (self *_Assembler) _asm_OP_number(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ (SP.p), CX - self.Emit("TESTQ", _CX, _CX) // TESTQ CX, CX - self.Sjmp("JZ" , "_empty_{n}") // JZ _empty_{n} - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_number_next_{n}") - self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), jit.Ptr(_SP, 0)) - self.Sjmp("JMP", _LB_panic) - self.Link("_number_next_{n}") - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.call_go(_F_isValidNumber) // CALL_GO isValidNumber - self.Emit("CMPB" , jit.Ptr(_SP, 16), jit.Imm(0)) // CMPB 16(SP), $0 - self.Sjmp("JE" , _LB_error_invalid_number) // JE _error_invalid_number - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX - self.check_size_r(_AX, 0) // SIZE AX - self.Emit("LEAQ" , jit.Sib(_RP, _RL, 1, 0), _AX) // LEAQ (RP)(RL), AX - self.Emit("ADDQ" , jit.Ptr(_SP_p, 8), _RL) // ADDQ 8(SP.p), RL - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVOU", jit.Ptr(_SP_p, 0), _X0) // MOVOU (SP.p), X0 - self.Emit("MOVOU", _X0, jit.Ptr(_SP, 8)) // MOVOU X0, 8(SP) - self.call_go(_F_memmove) // CALL_GO memmove - self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} - self.Link("_empty_{n}") // _empty_{n}: - self.check_size(1) // SIZE $1 - self.add_char('0') // CHAR $'0' - self.Link("_done_{n}") // _done_{n}: -} - -func (self *_Assembler) _asm_OP_eface(_ *_Instr) { - self.prep_buffer() // MOVE {buf}, (SP)s - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _AX) // LEAQ 8(SP.p), AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) - self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -func (self *_Assembler) _asm_OP_iface(_ *_Instr) { - self.prep_buffer() // MOVE {buf}, (SP) - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ" , jit.Ptr(_AX, 8), _AX) // MOVQ 8(AX), AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _AX) // LEAQ 8(SP.p), AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) - self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -func (self *_Assembler) _asm_OP_byte(p *_Instr) { - self.check_size(1) - self.Emit("MOVB", jit.Imm(p.i64()), jit.Sib(_RP, _RL, 1, 0)) // MOVL p.vi(), (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL -} - -func (self *_Assembler) _asm_OP_text(p *_Instr) { - self.check_size(len(p.vs())) // SIZE ${len(p.vs())} - self.add_text(p.vs()) // TEXT ${p.vs()} -} - -func (self *_Assembler) _asm_OP_deref(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p -} - -func (self *_Assembler) _asm_OP_index(p *_Instr) { - self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ $p.vi(), AX - self.Emit("ADDQ", _AX, _SP_p) // ADDQ AX, SP.p -} - -func (self *_Assembler) _asm_OP_load(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -24), _SP_x) // MOVQ -24(ST)(AX), SP.x - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -8), _SP_p) // MOVQ -8(ST)(AX), SP.p - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _SP_q) // MOVQ (ST)(AX), SP.q -} - -func (self *_Assembler) _asm_OP_save(_ *_Instr) { - self.save_state() -} - -func (self *_Assembler) _asm_OP_drop(_ *_Instr) { - self.drop_state(_StateSize) -} - -func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { - self.drop_state(_StateSize * 2) // DROP $(_StateSize * 2) - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 56)) // MOVOU X0, 56(ST)(AX) -} - -func (self *_Assembler) _asm_OP_recurse(p *_Instr) { - self.prep_buffer() // MOVE {buf}, (SP) - vt, pv := p.vp() - self.Emit("MOVQ", jit.Type(vt), _AX) // MOVQ $(type(p.vt())), AX - self.Emit("MOVQ", _AX, jit.Ptr(_SP, 8)) // MOVQ AX, 8(SP) - - /* check for indirection */ - if !rt.UnpackType(vt).Indirect() { - self.Emit("MOVQ", _SP_p, _AX) // MOVQ SP.p, AX - } else { - self.Emit("MOVQ", _SP_p, _VAR_vp) // MOVQ SP.p, 48(SP) - self.Emit("LEAQ", _VAR_vp, _AX) // LEAQ 48(SP), AX - } - - /* call the encoder */ - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.Emit("MOVQ" , _ST, jit.Ptr(_SP, 24)) // MOVQ ST, 24(SP) - self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX - if pv { - self.Emit("BTCQ", jit.Imm(bitPointerValue), _AX) // BTCQ $1, AX - } - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 32)) // MOVQ AX, 32(SP) - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _ET) // MOVQ 40(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 48), _EP) // MOVQ 48(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -func (self *_Assembler) _asm_OP_is_nil(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_nil_p1(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 8), jit.Imm(0)) // CMPQ 8(SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_1(p *_Instr) { - self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_2(p *_Instr) { - self.Emit("CMPW", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPW (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_4(p *_Instr) { - self.Emit("CMPL", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPL (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_8(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_map(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Xjmp("JZ" , p.vi()) // JZ p.vi() - self.Emit("CMPQ" , jit.Ptr(_AX, 0), jit.Imm(0)) // CMPQ (AX), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_goto(p *_Instr) { - self.Xjmp("JMP", p.vi()) -} - -func (self *_Assembler) _asm_OP_map_iter(p *_Instr) { - self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ $p.vt(), AX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _CX) // MOVQ (SP.p), CX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 0)) // MOVQ AX, (SP) - self.Emit("MOVQ" , _CX, jit.Ptr(_SP, 8)) // MOVQ CX, 8(SP) - self.Emit("MOVQ" , _ARG_fv, _AX) // MOVQ fv, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_SP, 16)) // MOVQ AX, 16(SP) - self.call_go(_F_iteratorStart) // CALL_GO iteratorStart - self.Emit("MOVQ" , jit.Ptr(_SP, 24), _SP_q) // MOVQ 24(SP), SP.q - self.Emit("MOVQ" , jit.Ptr(_SP, 32), _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , jit.Ptr(_SP, 40), _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -func (self *_Assembler) _asm_OP_map_stop(_ *_Instr) { - self.Emit("MOVQ", _SP_q, jit.Ptr(_SP, 0)) // MOVQ SP.q, 0(SP) - self.call_go(_F_iteratorStop) // CALL_GO iteratorStop - self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q -} - -func (self *_Assembler) _asm_OP_map_check_key(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_q, 0), _SP_p) // MOVQ (SP.q), SP.p - self.Emit("TESTQ", _SP_p, _SP_p) // TESTQ SP.p, SP.p - self.Xjmp("JZ" , p.vi()) // JNZ p.vi() -} - -func (self *_Assembler) _asm_OP_map_write_key(p *_Instr) { - self.Emit("BTQ", jit.Imm(bitSortMapKeys), _ARG_fv) // BTQ ${SortMapKeys}, fv - self.Sjmp("JNC", "_unordered_key_{n}") // JNC _unordered_key_{n} - self.encode_string(false) // STR $false - self.Xjmp("JMP", p.vi()) // JMP ${p.vi()} - self.Link("_unordered_key_{n}") // _unordered_key_{n}: -} - -func (self *_Assembler) _asm_OP_map_value_next(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_q, 8), _SP_p) // MOVQ 8(SP.q), SP.p - self.Emit("MOVQ", _SP_q, jit.Ptr(_SP, 0)) // MOVQ SP.q, (SP) - self.call_go(_F_iteratorNext) // CALL_GO iteratorNext -} - -func (self *_Assembler) _asm_OP_slice_len(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _SP_x) // MOVQ 8(SP.p), SP.x - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p - self.Emit("ORQ" , jit.Imm(1 << _S_init), _SP_f) // ORQ $(1<<_S_init), SP.f -} - -func (self *_Assembler) _asm_OP_slice_next(p *_Instr) { - self.Emit("TESTQ" , _SP_x, _SP_x) // TESTQ SP.x, SP.x - self.Xjmp("JZ" , p.vi()) // JZ p.vi() - self.Emit("SUBQ" , jit.Imm(1), _SP_x) // SUBQ $1, SP.x - self.Emit("BTRQ" , jit.Imm(_S_init), _SP_f) // BTRQ $_S_init, SP.f - self.Emit("LEAQ" , jit.Ptr(_SP_p, int64(p.vlen())), _AX) // LEAQ $(p.vlen())(SP.p), AX - self.Emit("CMOVQCC", _AX, _SP_p) // CMOVQNC AX, SP.p -} - -func (self *_Assembler) _asm_OP_marshal(p *_Instr) { - self.call_marshaler(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt()) -} - -func (self *_Assembler) _asm_OP_marshal_p(p *_Instr) { - if p.vk() != reflect.Ptr { - panic("marshal_p: invalid type") - } else { - self.call_marshaler_v(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt(), false) - } -} - -func (self *_Assembler) _asm_OP_marshal_text(p *_Instr) { - self.call_marshaler(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt()) -} - -func (self *_Assembler) _asm_OP_marshal_text_p(p *_Instr) { - if p.vk() != reflect.Ptr { - panic("marshal_text_p: invalid type") - } else { - self.call_marshaler_v(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt(), false) - } -} - -func (self *_Assembler) _asm_OP_cond_set(_ *_Instr) { - self.Emit("ORQ", jit.Imm(1 << _S_cond), _SP_f) // ORQ $(1<<_S_cond), SP.f -} - -func (self *_Assembler) _asm_OP_cond_testc(p *_Instr) { - self.Emit("BTRQ", jit.Imm(_S_cond), _SP_f) // BTRQ $_S_cond, SP.f - self.Xjmp("JC" , p.vi()) -} - -func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { - self.Emit("MOVQ", jit.Imm(int64(p2.op())), jit.Ptr(_SP, 16))// MOVQ $(p2.op()), 16(SP) - self.Emit("MOVQ", jit.Imm(int64(p1.op())), jit.Ptr(_SP, 8)) // MOVQ $(p1.op()), 8(SP) - 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/assembler_amd64_go117.go b/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go117.go deleted file mode 100644 index 1f1b280..0000000 --- a/vendor/github.com/bytedance/sonic/internal/encoder/assembler_amd64_go117.go +++ /dev/null @@ -1,1202 +0,0 @@ -//go:build go1.17 && !go1.21 -// +build go1.17,!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 ( - `fmt` - `reflect` - `strconv` - `unsafe` - - `github.com/bytedance/sonic/internal/cpu` - `github.com/bytedance/sonic/internal/jit` - `github.com/bytedance/sonic/internal/native/types` - `github.com/twitchyliquid64/golang-asm/obj` - `github.com/twitchyliquid64/golang-asm/obj/x86` - - `github.com/bytedance/sonic/internal/native` - `github.com/bytedance/sonic/internal/rt` -) - -/** Register Allocations - * - * State Registers: - * - * %rbx : stack base - * %rdi : result pointer - * %rsi : result length - * %rdx : result capacity - * %r12 : sp->p - * %r13 : sp->q - * %r14 : sp->x - * %r15 : sp->f - * - * Error Registers: - * - * %r10 : error type register - * %r11 : error pointer register - */ - -/** Function Prototype & Stack Map - * - * func (buf *[]byte, p unsafe.Pointer, sb *_Stack, fv uint64) (err error) - * - * buf : (FP) - * p : 8(FP) - * sb : 16(FP) - * fv : 24(FP) - * err.vt : 32(FP) - * err.vp : 40(FP) - */ - -const ( - _S_cond = iota - _S_init -) - -const ( - _FP_args = 32 // 32 bytes for spill registers of arguments - _FP_fargs = 40 // 40 bytes for passing arguments to other Go functions - _FP_saves = 64 // 64 bytes for saving the registers before CALL instructions - _FP_locals = 24 // 24 bytes for local variables -) - -const ( - _FP_loffs = _FP_fargs + _FP_saves - _FP_offs = _FP_loffs + _FP_locals - // _FP_offs = _FP_loffs + _FP_locals + _FP_debug - _FP_size = _FP_offs + 8 // 8 bytes for the parent frame pointer - _FP_base = _FP_size + 8 // 8 bytes for the return address -) - -const ( - _FM_exp32 = 0x7f800000 - _FM_exp64 = 0x7ff0000000000000 -) - -const ( - _IM_null = 0x6c6c756e // 'null' - _IM_true = 0x65757274 // 'true' - _IM_fals = 0x736c6166 // 'fals' ('false' without the 'e') - _IM_open = 0x00225c22 // '"\"∅' - _IM_array = 0x5d5b // '[]' - _IM_object = 0x7d7b // '{}' - _IM_mulv = -0x5555555555555555 -) - -const ( - _LB_more_space = "_more_space" - _LB_more_space_return = "_more_space_return_" -) - -const ( - _LB_error = "_error" - _LB_error_too_deep = "_error_too_deep" - _LB_error_invalid_number = "_error_invalid_number" - _LB_error_nan_or_infinite = "_error_nan_or_infinite" - _LB_panic = "_panic" -) - -var ( - _AX = jit.Reg("AX") - _BX = jit.Reg("BX") - _CX = jit.Reg("CX") - _DX = jit.Reg("DX") - _DI = jit.Reg("DI") - _SI = jit.Reg("SI") - _BP = jit.Reg("BP") - _SP = jit.Reg("SP") - _R8 = jit.Reg("R8") - _R9 = jit.Reg("R9") -) - -var ( - _X0 = jit.Reg("X0") - _Y0 = jit.Reg("Y0") -) - -var ( - _ST = jit.Reg("R15") // can't use R14 since it's always scratched by Go... - _RP = jit.Reg("DI") - _RL = jit.Reg("SI") - _RC = jit.Reg("DX") -) - -var ( - _LR = jit.Reg("R9") - _ET = jit.Reg("AX") - _EP = jit.Reg("BX") -) - -var ( - _SP_p = jit.Reg("R10") // saved on BX when call_c - _SP_q = jit.Reg("R11") // saved on BP when call_c - _SP_x = jit.Reg("R12") - _SP_f = jit.Reg("R13") -) - -var ( - _ARG_rb = jit.Ptr(_SP, _FP_base) - _ARG_vp = jit.Ptr(_SP, _FP_base + 8) - _ARG_sb = jit.Ptr(_SP, _FP_base + 16) - _ARG_fv = jit.Ptr(_SP, _FP_base + 24) -) - -var ( - _RET_et = _ET - _RET_ep = _EP -) - -var ( - _VAR_sp = jit.Ptr(_SP, _FP_fargs + _FP_saves) - _VAR_dn = jit.Ptr(_SP, _FP_fargs + _FP_saves + 8) - _VAR_vp = jit.Ptr(_SP, _FP_fargs + _FP_saves + 16) -) - -var ( - _REG_ffi = []obj.Addr{ _RP, _RL, _RC} - _REG_b64 = []obj.Addr{_SP_p, _SP_q} - - _REG_all = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RP, _RL, _RC} - _REG_ms = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _LR} - _REG_enc = []obj.Addr{_ST, _SP_x, _SP_f, _SP_p, _SP_q, _RL} -) - -type _Assembler struct { - jit.BaseAssembler - p _Program - x int - name string -} - -func newAssembler(p _Program) *_Assembler { - return new(_Assembler).Init(p) -} - -/** Assembler Interface **/ - -func (self *_Assembler) Load() _Encoder { - return ptoenc(self.BaseAssembler.Load("encode_"+self.name, _FP_size, _FP_args, argPtrs, localPtrs)) -} - -func (self *_Assembler) Init(p _Program) *_Assembler { - self.p = p - self.BaseAssembler.Init(self.compile) - return self -} - -func (self *_Assembler) compile() { - self.prologue() - self.instrs() - self.epilogue() - self.builtins() -} - -/** Assembler Stages **/ - -var _OpFuncTab = [256]func(*_Assembler, *_Instr) { - _OP_null : (*_Assembler)._asm_OP_null, - _OP_empty_arr : (*_Assembler)._asm_OP_empty_arr, - _OP_empty_obj : (*_Assembler)._asm_OP_empty_obj, - _OP_bool : (*_Assembler)._asm_OP_bool, - _OP_i8 : (*_Assembler)._asm_OP_i8, - _OP_i16 : (*_Assembler)._asm_OP_i16, - _OP_i32 : (*_Assembler)._asm_OP_i32, - _OP_i64 : (*_Assembler)._asm_OP_i64, - _OP_u8 : (*_Assembler)._asm_OP_u8, - _OP_u16 : (*_Assembler)._asm_OP_u16, - _OP_u32 : (*_Assembler)._asm_OP_u32, - _OP_u64 : (*_Assembler)._asm_OP_u64, - _OP_f32 : (*_Assembler)._asm_OP_f32, - _OP_f64 : (*_Assembler)._asm_OP_f64, - _OP_str : (*_Assembler)._asm_OP_str, - _OP_bin : (*_Assembler)._asm_OP_bin, - _OP_quote : (*_Assembler)._asm_OP_quote, - _OP_number : (*_Assembler)._asm_OP_number, - _OP_eface : (*_Assembler)._asm_OP_eface, - _OP_iface : (*_Assembler)._asm_OP_iface, - _OP_byte : (*_Assembler)._asm_OP_byte, - _OP_text : (*_Assembler)._asm_OP_text, - _OP_deref : (*_Assembler)._asm_OP_deref, - _OP_index : (*_Assembler)._asm_OP_index, - _OP_load : (*_Assembler)._asm_OP_load, - _OP_save : (*_Assembler)._asm_OP_save, - _OP_drop : (*_Assembler)._asm_OP_drop, - _OP_drop_2 : (*_Assembler)._asm_OP_drop_2, - _OP_recurse : (*_Assembler)._asm_OP_recurse, - _OP_is_nil : (*_Assembler)._asm_OP_is_nil, - _OP_is_nil_p1 : (*_Assembler)._asm_OP_is_nil_p1, - _OP_is_zero_1 : (*_Assembler)._asm_OP_is_zero_1, - _OP_is_zero_2 : (*_Assembler)._asm_OP_is_zero_2, - _OP_is_zero_4 : (*_Assembler)._asm_OP_is_zero_4, - _OP_is_zero_8 : (*_Assembler)._asm_OP_is_zero_8, - _OP_is_zero_map : (*_Assembler)._asm_OP_is_zero_map, - _OP_goto : (*_Assembler)._asm_OP_goto, - _OP_map_iter : (*_Assembler)._asm_OP_map_iter, - _OP_map_stop : (*_Assembler)._asm_OP_map_stop, - _OP_map_check_key : (*_Assembler)._asm_OP_map_check_key, - _OP_map_write_key : (*_Assembler)._asm_OP_map_write_key, - _OP_map_value_next : (*_Assembler)._asm_OP_map_value_next, - _OP_slice_len : (*_Assembler)._asm_OP_slice_len, - _OP_slice_next : (*_Assembler)._asm_OP_slice_next, - _OP_marshal : (*_Assembler)._asm_OP_marshal, - _OP_marshal_p : (*_Assembler)._asm_OP_marshal_p, - _OP_marshal_text : (*_Assembler)._asm_OP_marshal_text, - _OP_marshal_text_p : (*_Assembler)._asm_OP_marshal_text_p, - _OP_cond_set : (*_Assembler)._asm_OP_cond_set, - _OP_cond_testc : (*_Assembler)._asm_OP_cond_testc, -} - -func (self *_Assembler) instr(v *_Instr) { - if fn := _OpFuncTab[v.op()]; fn != nil { - fn(self, v) - } else { - panic(fmt.Sprintf("invalid opcode: %d", v.op())) - } -} - -func (self *_Assembler) instrs() { - for i, v := range self.p { - self.Mark(i) - self.instr(&v) - self.debug_instr(i, &v) - } -} - -func (self *_Assembler) builtins() { - self.more_space() - self.error_too_deep() - self.error_invalid_number() - self.error_nan_or_infinite() - self.go_panic() -} - -func (self *_Assembler) epilogue() { - self.Mark(len(self.p)) - self.Emit("XORL", _ET, _ET) - self.Emit("XORL", _EP, _EP) - self.Link(_LB_error) - self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX - self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) - self.Emit("MOVQ", jit.Imm(0), _ARG_rb) // MOVQ AX, rb<>+0(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_vp) // MOVQ BX, vp<>+8(FP) - self.Emit("MOVQ", jit.Imm(0), _ARG_sb) // MOVQ CX, sb<>+16(FP) - self.Emit("MOVQ", jit.Ptr(_SP, _FP_offs), _BP) // MOVQ _FP_offs(SP), BP - self.Emit("ADDQ", jit.Imm(_FP_size), _SP) // ADDQ $_FP_size, SP - self.Emit("RET") // RET -} - -func (self *_Assembler) prologue() { - self.Emit("SUBQ", jit.Imm(_FP_size), _SP) // SUBQ $_FP_size, SP - self.Emit("MOVQ", _BP, jit.Ptr(_SP, _FP_offs)) // MOVQ BP, _FP_offs(SP) - self.Emit("LEAQ", jit.Ptr(_SP, _FP_offs), _BP) // LEAQ _FP_offs(SP), BP - self.Emit("MOVQ", _AX, _ARG_rb) // MOVQ AX, rb<>+0(FP) - self.Emit("MOVQ", _BX, _ARG_vp) // MOVQ BX, vp<>+8(FP) - self.Emit("MOVQ", _CX, _ARG_sb) // MOVQ CX, sb<>+16(FP) - self.Emit("MOVQ", _DI, _ARG_fv) // MOVQ DI, rb<>+24(FP) - self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX) , DI - self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX) , SI - self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), DX - self.Emit("MOVQ", _BX, _SP_p) // MOVQ BX, R10 - self.Emit("MOVQ", _CX, _ST) // MOVQ CX, R8 - self.Emit("XORL", _SP_x, _SP_x) // XORL R10, R12 - self.Emit("XORL", _SP_f, _SP_f) // XORL R11, R13 - self.Emit("XORL", _SP_q, _SP_q) // XORL R13, R11 -} - -/** Assembler Inline Functions **/ - -func (self *_Assembler) xsave(reg ...obj.Addr) { - for i, v := range reg { - if i > _FP_saves / 8 - 1 { - panic("too many registers to save") - } else { - self.Emit("MOVQ", v, jit.Ptr(_SP, _FP_fargs + int64(i) * 8)) - } - } -} - -func (self *_Assembler) xload(reg ...obj.Addr) { - for i, v := range reg { - if i > _FP_saves / 8 - 1 { - panic("too many registers to load") - } else { - self.Emit("MOVQ", jit.Ptr(_SP, _FP_fargs + int64(i) * 8), v) - } - } -} - -func (self *_Assembler) rbuf_di() { - if _RP.Reg != x86.REG_DI { - panic("register allocation messed up: RP != DI") - } else { - self.Emit("ADDQ", _RL, _RP) - } -} - -func (self *_Assembler) store_int(nd int, fn obj.Addr, ins string) { - self.check_size(nd) - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit(ins, jit.Ptr(_SP_p, 0), _SI) // $ins (SP.p), SI - self.call_c(fn) // CALL_C $fn - self.Emit("ADDQ", _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) store_str(s string) { - i := 0 - m := rt.Str2Mem(s) - - /* 8-byte stores */ - for i <= len(m) - 8 { - self.Emit("MOVQ", jit.Imm(rt.Get64(m[i:])), _AX) // MOVQ $s[i:], AX - self.Emit("MOVQ", _AX, jit.Sib(_RP, _RL, 1, int64(i))) // MOVQ AX, i(RP)(RL) - i += 8 - } - - /* 4-byte stores */ - if i <= len(m) - 4 { - self.Emit("MOVL", jit.Imm(int64(rt.Get32(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVL $s[i:], i(RP)(RL) - i += 4 - } - - /* 2-byte stores */ - if i <= len(m) - 2 { - self.Emit("MOVW", jit.Imm(int64(rt.Get16(m[i:]))), jit.Sib(_RP, _RL, 1, int64(i))) // MOVW $s[i:], i(RP)(RL) - i += 2 - } - - /* last byte */ - if i < len(m) { - self.Emit("MOVB", jit.Imm(int64(m[i])), jit.Sib(_RP, _RL, 1, int64(i))) // MOVB $s[i:], i(RP)(RL) - } -} - -func (self *_Assembler) check_size(n int) { - self.check_size_rl(jit.Ptr(_RL, int64(n))) -} - -func (self *_Assembler) check_size_r(r obj.Addr, d int) { - self.check_size_rl(jit.Sib(_RL, r, 1, int64(d))) -} - -func (self *_Assembler) check_size_rl(v obj.Addr) { - idx := self.x - key := _LB_more_space_return + strconv.Itoa(idx) - - /* the following code relies on LR == R9 to work */ - if _LR.Reg != x86.REG_R9 { - panic("register allocation messed up: LR != R9") - } - - /* check for buffer capacity */ - self.x++ - self.Emit("LEAQ", v, _AX) // LEAQ $v, AX - self.Emit("CMPQ", _AX, _RC) // CMPQ AX, RC - self.Sjmp("JBE" , key) // JBE _more_space_return_{n} - self.slice_grow_ax(key) // GROW $key - self.Link(key) // _more_space_return_{n}: -} - -func (self *_Assembler) slice_grow_ax(ret string) { - self.Byte(0x4c, 0x8d, 0x0d) // LEAQ ?(PC), R9 - self.Sref(ret, 4) // .... &ret - self.Sjmp("JMP" , _LB_more_space) // JMP _more_space -} - -/** State Stack Helpers **/ - -const ( - _StateSize = int64(unsafe.Sizeof(_State{})) - _StackLimit = _MaxStack * _StateSize -) - -func (self *_Assembler) save_state() { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _CX) // MOVQ (ST), CX - self.Emit("LEAQ", jit.Ptr(_CX, _StateSize), _R9) // LEAQ _StateSize(CX), R9 - self.Emit("CMPQ", _R9, jit.Imm(_StackLimit)) // CMPQ R9, $_StackLimit - 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.Emit("MOVQ", _R9, jit.Ptr(_ST, 0)) // MOVQ R9, (ST) -} - -func (self *_Assembler) drop_state(decr int64) { - self.Emit("MOVQ" , jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("SUBQ" , jit.Imm(decr), _AX) // SUBQ $decr, AX - self.Emit("MOVQ" , _AX, jit.Ptr(_ST, 0)) // MOVQ AX, (ST) - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 8), _SP_x) // MOVQ 8(ST)(AX), SP.x - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 16), _SP_f) // MOVQ 16(ST)(AX), SP.f - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 24), _SP_p) // MOVQ 24(ST)(AX), SP.p - self.Emit("MOVQ" , jit.Sib(_ST, _AX, 1, 32), _SP_q) // MOVQ 32(ST)(AX), SP.q - self.Emit("PXOR" , _X0, _X0) // PXOR X0, X0 - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 8)) // MOVOU X0, 8(ST)(AX) - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 24)) // MOVOU X0, 24(ST)(AX) -} - -/** Buffer Helpers **/ - -func (self *_Assembler) add_char(ch byte) { - self.Emit("MOVB", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVB $ch, (RP)(RL) - self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL -} - -func (self *_Assembler) add_long(ch uint32, n int64) { - self.Emit("MOVL", jit.Imm(int64(ch)), jit.Sib(_RP, _RL, 1, 0)) // MOVL $ch, (RP)(RL) - self.Emit("ADDQ", jit.Imm(n), _RL) // ADDQ $n, RL -} - -func (self *_Assembler) add_text(ss string) { - self.store_str(ss) // TEXT $ss - self.Emit("ADDQ", jit.Imm(int64(len(ss))), _RL) // ADDQ ${len(ss)}, RL -} - -// get *buf at AX -func (self *_Assembler) prep_buffer_AX() { - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) -} - -func (self *_Assembler) save_buffer() { - self.Emit("MOVQ", _ARG_rb, _CX) // MOVQ rb<>+0(FP), CX - self.Emit("MOVQ", _RP, jit.Ptr(_CX, 0)) // MOVQ RP, (CX) - self.Emit("MOVQ", _RL, jit.Ptr(_CX, 8)) // MOVQ RL, 8(CX) - self.Emit("MOVQ", _RC, jit.Ptr(_CX, 16)) // MOVQ RC, 16(CX) -} - -// get *buf at AX -func (self *_Assembler) load_buffer_AX() { - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", jit.Ptr(_AX, 0), _RP) // MOVQ (AX), RP - self.Emit("MOVQ", jit.Ptr(_AX, 8), _RL) // MOVQ 8(AX), RL - self.Emit("MOVQ", jit.Ptr(_AX, 16), _RC) // MOVQ 16(AX), RC -} - -/** Function Interface Helpers **/ - -func (self *_Assembler) call(pc obj.Addr) { - self.Emit("MOVQ", pc, _LR) // MOVQ $pc, AX - self.Rjmp("CALL", _LR) // CALL AX -} - -func (self *_Assembler) save_c() { - self.xsave(_REG_ffi...) // SAVE $REG_ffi -} - -func (self *_Assembler) call_b64(pc obj.Addr) { - self.xsave(_REG_b64...) // SAVE $REG_all - self.call(pc) // CALL $pc - self.xload(_REG_b64...) // LOAD $REG_ffi -} - -func (self *_Assembler) call_c(pc obj.Addr) { - self.Emit("XCHGQ", _SP_p, _BX) - self.Emit("XCHGQ", _SP_q, _BP) - self.call(pc) // CALL $pc - self.xload(_REG_ffi...) // LOAD $REG_ffi - self.Emit("XCHGQ", _SP_p, _BX) - self.Emit("XCHGQ", _SP_q, _BP) -} - -func (self *_Assembler) call_go(pc obj.Addr) { - self.xsave(_REG_all...) // SAVE $REG_all - self.call(pc) // CALL $pc - self.xload(_REG_all...) // LOAD $REG_all -} - -func (self *_Assembler) call_more_space(pc obj.Addr) { - self.xsave(_REG_ms...) // SAVE $REG_all - self.call(pc) // CALL $pc - self.xload(_REG_ms...) // LOAD $REG_all -} - -func (self *_Assembler) call_encoder(pc obj.Addr) { - self.xsave(_REG_enc...) // SAVE $REG_all - self.call(pc) // CALL $pc - self.xload(_REG_enc...) // LOAD $REG_all -} - -func (self *_Assembler) call_marshaler(fn obj.Addr, it *rt.GoType, vt reflect.Type) { - switch vt.Kind() { - case reflect.Interface : self.call_marshaler_i(fn, it) - case reflect.Ptr, reflect.Map : self.call_marshaler_v(fn, it, vt, true) - // struct/array of 1 direct iface type can be direct - default : self.call_marshaler_v(fn, it, vt, !rt.UnpackType(vt).Indirect()) - } -} - -func (self *_Assembler) call_marshaler_i(fn obj.Addr, it *rt.GoType) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} - self.Emit("MOVQ" , _AX, _BX) // MOVQ AX, BX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _CX) // MOVQ 8(SP.p), CX - self.Emit("MOVQ" , jit.Gtype(it), _AX) // MOVQ $it, AX - self.call_go(_F_assertI2I) // CALL_GO assertI2I - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_null_{n}") // JZ _null_{n} - self.Emit("MOVQ", _BX, _CX) // MOVQ BX, CX - self.Emit("MOVQ", _AX, _BX) // MOVQ AX, BX - self.prep_buffer_AX() - self.Emit("MOVQ", _ARG_fv, _DI) // MOVQ ARG.fv, DI - self.call_go(fn) // CALL $fn - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.load_buffer_AX() - self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} - self.Link("_null_{n}") // _null_{n}: - self.check_size(4) // SIZE $4 - self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL - self.Link("_done_{n}") // _done_{n}: -} - -func (self *_Assembler) call_marshaler_v(fn obj.Addr, it *rt.GoType, vt reflect.Type, deref bool) { - self.prep_buffer_AX() // MOVE {buf}, (SP) - self.Emit("MOVQ", jit.Itab(it, vt), _BX) // MOVQ $(itab(it, vt)), BX - - /* dereference the pointer if needed */ - if !deref { - self.Emit("MOVQ", _SP_p, _CX) // MOVQ SP.p, CX - } else { - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _CX) // MOVQ 0(SP.p), CX - } - - /* call the encoder, and perform error checks */ - self.Emit("MOVQ", _ARG_fv, _DI) // MOVQ ARG.fv, DI - self.call_go(fn) // CALL $fn - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.load_buffer_AX() -} - -/** Builtin: _more_space **/ - -var ( - _T_byte = jit.Type(byteType) - _F_growslice = jit.Func(growslice) -) - -// AX must saving n -func (self *_Assembler) more_space() { - self.Link(_LB_more_space) - self.Emit("MOVQ", _RP, _BX) // MOVQ DI, BX - self.Emit("MOVQ", _RL, _CX) // MOVQ SI, CX - self.Emit("MOVQ", _RC, _DI) // MOVQ DX, DI - self.Emit("MOVQ", _AX, _SI) // MOVQ AX, SI - self.Emit("MOVQ", _T_byte, _AX) // MOVQ $_T_byte, AX - self.call_more_space(_F_growslice) // CALL $pc - self.Emit("MOVQ", _AX, _RP) // MOVQ AX, DI - self.Emit("MOVQ", _BX, _RL) // MOVQ BX, SI - self.Emit("MOVQ", _CX, _RC) // MOVQ CX, DX - self.save_buffer() // SAVE {buf} - self.Rjmp("JMP" , _LR) // JMP LR -} - -/** Builtin Errors **/ - -var ( - _V_ERR_too_deep = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_too_deep)))) - _V_ERR_nan_or_infinite = jit.Imm(int64(uintptr(unsafe.Pointer(_ERR_nan_or_infinite)))) - _I_json_UnsupportedValueError = jit.Itab(rt.UnpackType(errorType), jsonUnsupportedValueType) -) - -func (self *_Assembler) error_too_deep() { - self.Link(_LB_error_too_deep) - self.Emit("MOVQ", _V_ERR_too_deep, _EP) // MOVQ $_V_ERR_too_deep, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) error_invalid_number() { - self.Link(_LB_error_invalid_number) - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _AX) // MOVQ 0(SP), AX - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _BX) // MOVQ 8(SP), BX - self.call_go(_F_error_number) // CALL_GO error_number - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -func (self *_Assembler) error_nan_or_infinite() { - self.Link(_LB_error_nan_or_infinite) - self.Emit("MOVQ", _V_ERR_nan_or_infinite, _EP) // MOVQ $_V_ERR_nan_or_infinite, EP - self.Emit("MOVQ", _I_json_UnsupportedValueError, _ET) // MOVQ $_I_json_UnsupportedValuError, ET - self.Sjmp("JMP" , _LB_error) // JMP _error -} - -/** String Encoding Routine **/ - -var ( - _F_quote = jit.Imm(int64(native.S_quote)) - _F_panic = jit.Func(goPanic) -) - -func (self *_Assembler) go_panic() { - self.Link(_LB_panic) - self.Emit("MOVQ", _SP_p, _BX) - self.call_go(_F_panic) -} - -func (self *_Assembler) encode_string(doubleQuote bool) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JZ" , "_str_empty_{n}") // JZ _str_empty_{n} - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) - self.Sjmp("JNE" , "_str_next_{n}") - self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), _AX) - self.Sjmp("JMP", _LB_panic) - self.Link("_str_next_{n}") - - /* openning quote, check for double quote */ - if !doubleQuote { - self.check_size_r(_AX, 2) // SIZE $2 - self.add_char('"') // CHAR $'"' - } else { - self.check_size_r(_AX, 6) // SIZE $6 - self.add_long(_IM_open, 3) // TEXT $`"\"` - } - - /* quoting loop */ - self.Emit("XORL", _AX, _AX) // XORL AX, AX - self.Emit("MOVQ", _AX, _VAR_sp) // MOVQ AX, sp - self.Link("_str_loop_{n}") // _str_loop_{n}: - self.save_c() // SAVE $REG_ffi - - /* load the output buffer first, and then input buffer, - * because the parameter registers collide with RP / RL / RC */ - self.Emit("MOVQ", _RC, _CX) // MOVQ RC, CX - self.Emit("SUBQ", _RL, _CX) // SUBQ RL, CX - self.Emit("MOVQ", _CX, _VAR_dn) // MOVQ CX, dn - self.Emit("LEAQ", jit.Sib(_RP, _RL, 1, 0), _DX) // LEAQ (RP)(RL), DX - self.Emit("LEAQ", _VAR_dn, _CX) // LEAQ dn, CX - self.Emit("MOVQ", _VAR_sp, _AX) // MOVQ sp, AX - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _DI) // MOVQ (SP.p), DI - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _SI) // MOVQ 8(SP.p), SI - self.Emit("ADDQ", _AX, _DI) // ADDQ AX, DI - self.Emit("SUBQ", _AX, _SI) // SUBQ AX, SI - - /* set the flags based on `doubleQuote` */ - if !doubleQuote { - self.Emit("XORL", _R8, _R8) // XORL R8, R8 - } else { - self.Emit("MOVL", jit.Imm(types.F_DOUBLE_UNQUOTE), _R8) // MOVL ${types.F_DOUBLE_UNQUOTE}, R8 - } - - /* call the native quoter */ - self.call_c(_F_quote) // CALL quote - self.Emit("ADDQ" , _VAR_dn, _RL) // ADDQ dn, RL - - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JS" , "_str_space_{n}") // JS _str_space_{n} - - /* close the string, check for double quote */ - if !doubleQuote { - self.check_size(1) // SIZE $1 - self.add_char('"') // CHAR $'"' - self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} - } else { - self.check_size(3) // SIZE $3 - self.add_text("\\\"\"") // TEXT $'\""' - self.Sjmp("JMP", "_str_end_{n}") // JMP _str_end_{n} - } - - /* not enough space to contain the quoted string */ - self.Link("_str_space_{n}") // _str_space_{n}: - self.Emit("NOTQ", _AX) // NOTQ AX - self.Emit("ADDQ", _AX, _VAR_sp) // ADDQ AX, sp - self.Emit("LEAQ", jit.Sib(_RC, _RC, 1, 0), _AX) // LEAQ (RC)(RC), AX - self.slice_grow_ax("_str_loop_{n}") // GROW _str_loop_{n} - - /* empty string, check for double quote */ - if !doubleQuote { - self.Link("_str_empty_{n}") // _str_empty_{n}: - self.check_size(2) // SIZE $2 - self.add_text("\"\"") // TEXT $'""' - self.Link("_str_end_{n}") // _str_end_{n}: - } else { - self.Link("_str_empty_{n}") // _str_empty_{n}: - self.check_size(6) // SIZE $6 - self.add_text("\"\\\"\\\"\"") // TEXT $'"\"\""' - self.Link("_str_end_{n}") // _str_end_{n}: - } -} - -/** OpCode Assembler Functions **/ - -var ( - _T_json_Marshaler = rt.UnpackType(jsonMarshalerType) - _T_encoding_TextMarshaler = rt.UnpackType(encodingTextMarshalerType) -) - -var ( - _F_f64toa = jit.Imm(int64(native.S_f64toa)) - _F_f32toa = jit.Imm(int64(native.S_f32toa)) - _F_i64toa = jit.Imm(int64(native.S_i64toa)) - _F_u64toa = jit.Imm(int64(native.S_u64toa)) - _F_b64encode = jit.Imm(int64(_subr__b64encode)) -) - -var ( - _F_memmove = jit.Func(memmove) - _F_error_number = jit.Func(error_number) - _F_isValidNumber = jit.Func(isValidNumber) -) - -var ( - _F_iteratorStop = jit.Func(iteratorStop) - _F_iteratorNext = jit.Func(iteratorNext) - _F_iteratorStart = jit.Func(iteratorStart) -) - -var ( - _F_encodeTypedPointer obj.Addr - _F_encodeJsonMarshaler obj.Addr - _F_encodeTextMarshaler obj.Addr -) - -const ( - _MODE_AVX2 = 1 << 2 -) - -func init() { - _F_encodeTypedPointer = jit.Func(encodeTypedPointer) - _F_encodeJsonMarshaler = jit.Func(encodeJsonMarshaler) - _F_encodeTextMarshaler = jit.Func(encodeTextMarshaler) -} - -func (self *_Assembler) _asm_OP_null(_ *_Instr) { - self.check_size(4) - self.Emit("MOVL", jit.Imm(_IM_null), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'null', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL -} - -func (self *_Assembler) _asm_OP_empty_arr(_ *_Instr) { - self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) - self.Sjmp("JC", "_empty_arr_{n}") - self._asm_OP_null(nil) - self.Sjmp("JMP", "_empty_arr_end_{n}") - self.Link("_empty_arr_{n}") - self.check_size(2) - self.Emit("MOVW", jit.Imm(_IM_array), jit.Sib(_RP, _RL, 1, 0)) - self.Emit("ADDQ", jit.Imm(2), _RL) - self.Link("_empty_arr_end_{n}") -} - -func (self *_Assembler) _asm_OP_empty_obj(_ *_Instr) { - self.Emit("BTQ", jit.Imm(int64(bitNoNullSliceOrMap)), _ARG_fv) - self.Sjmp("JC", "_empty_obj_{n}") - self._asm_OP_null(nil) - self.Sjmp("JMP", "_empty_obj_end_{n}") - self.Link("_empty_obj_{n}") - self.check_size(2) - self.Emit("MOVW", jit.Imm(_IM_object), jit.Sib(_RP, _RL, 1, 0)) - self.Emit("ADDQ", jit.Imm(2), _RL) - self.Link("_empty_obj_end_{n}") -} - -func (self *_Assembler) _asm_OP_bool(_ *_Instr) { - self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 - self.Sjmp("JE" , "_false_{n}") // JE _false_{n} - self.check_size(4) // SIZE $4 - self.Emit("MOVL", jit.Imm(_IM_true), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'true', (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(4), _RL) // ADDQ $4, RL - self.Sjmp("JMP" , "_end_{n}") // JMP _end_{n} - self.Link("_false_{n}") // _false_{n}: - self.check_size(5) // SIZE $5 - self.Emit("MOVL", jit.Imm(_IM_fals), jit.Sib(_RP, _RL, 1, 0)) // MOVL $'fals', (RP)(RL*1) - self.Emit("MOVB", jit.Imm('e'), jit.Sib(_RP, _RL, 1, 4)) // MOVB $'e', 4(RP)(RL*1) - self.Emit("ADDQ", jit.Imm(5), _RL) // ADDQ $5, RL - self.Link("_end_{n}") // _end_{n}: -} - -func (self *_Assembler) _asm_OP_i8(_ *_Instr) { - self.store_int(4, _F_i64toa, "MOVBQSX") -} - -func (self *_Assembler) _asm_OP_i16(_ *_Instr) { - self.store_int(6, _F_i64toa, "MOVWQSX") -} - -func (self *_Assembler) _asm_OP_i32(_ *_Instr) { - self.store_int(17, _F_i64toa, "MOVLQSX") -} - -func (self *_Assembler) _asm_OP_i64(_ *_Instr) { - self.store_int(21, _F_i64toa, "MOVQ") -} - -func (self *_Assembler) _asm_OP_u8(_ *_Instr) { - self.store_int(3, _F_u64toa, "MOVBQZX") -} - -func (self *_Assembler) _asm_OP_u16(_ *_Instr) { - self.store_int(5, _F_u64toa, "MOVWQZX") -} - -func (self *_Assembler) _asm_OP_u32(_ *_Instr) { - self.store_int(16, _F_u64toa, "MOVLQZX") -} - -func (self *_Assembler) _asm_OP_u64(_ *_Instr) { - self.store_int(20, _F_u64toa, "MOVQ") -} - -func (self *_Assembler) _asm_OP_f32(_ *_Instr) { - self.check_size(32) - self.Emit("MOVL" , jit.Ptr(_SP_p, 0), _AX) // MOVL (SP.p), AX - self.Emit("ANDL" , jit.Imm(_FM_exp32), _AX) // ANDL $_FM_exp32, AX - self.Emit("XORL" , jit.Imm(_FM_exp32), _AX) // XORL $_FM_exp32, AX - self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit("MOVSS" , jit.Ptr(_SP_p, 0), _X0) // MOVSS (SP.p), X0 - self.call_c(_F_f32toa) // CALL_C f64toa - self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) _asm_OP_f64(_ *_Instr) { - self.check_size(32) - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("MOVQ" , jit.Imm(_FM_exp64), _CX) // MOVQ $_FM_exp64, CX - self.Emit("ANDQ" , _CX, _AX) // ANDQ CX, AX - self.Emit("XORQ" , _CX, _AX) // XORQ CX, AX - self.Sjmp("JZ" , _LB_error_nan_or_infinite) // JZ _error_nan_or_infinite - self.save_c() // SAVE $C_regs - self.rbuf_di() // MOVQ RP, DI - self.Emit("MOVSD" , jit.Ptr(_SP_p, 0), _X0) // MOVSD (SP.p), X0 - self.call_c(_F_f64toa) // CALL_C f64toa - self.Emit("ADDQ" , _AX, _RL) // ADDQ AX, RL -} - -func (self *_Assembler) _asm_OP_str(_ *_Instr) { - self.encode_string(false) -} - -func (self *_Assembler) _asm_OP_bin(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _AX) // MOVQ 8(SP.p), AX - self.Emit("ADDQ", jit.Imm(2), _AX) // ADDQ $2, AX - self.Emit("MOVQ", jit.Imm(_IM_mulv), _CX) // MOVQ $_MF_mulv, CX - self.Emit("MOVQ", _DX, _BX) // MOVQ DX, BX - self.From("MULQ", _CX) // MULQ CX - self.Emit("LEAQ", jit.Sib(_DX, _DX, 1, 1), _AX) // LEAQ 1(DX)(DX), AX - self.Emit("ORQ" , jit.Imm(2), _AX) // ORQ $2, AX - self.Emit("MOVQ", _BX, _DX) // MOVQ BX, DX - self.check_size_r(_AX, 0) // SIZE AX - self.add_char('"') // CHAR $'"' - self.Emit("MOVQ", _ARG_rb, _DI) // MOVQ rb<>+0(FP), DI - self.Emit("MOVQ", _RL, jit.Ptr(_DI, 8)) // MOVQ SI, 8(DI) - self.Emit("MOVQ", _SP_p, _SI) // MOVQ SP.p, SI - - /* check for AVX2 support */ - if !cpu.HasAVX2 { - self.Emit("XORL", _DX, _DX) // XORL DX, DX - } else { - self.Emit("MOVL", jit.Imm(_MODE_AVX2), _DX) // MOVL $_MODE_AVX2, DX - } - - /* call the encoder */ - self.call_b64(_F_b64encode) // CALL b64encode - self.load_buffer_AX() // LOAD {buf} - self.add_char('"') // CHAR $'"' -} - -func (self *_Assembler) _asm_OP_quote(_ *_Instr) { - self.encode_string(true) -} - -func (self *_Assembler) _asm_OP_number(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _BX) // MOVQ (SP.p), BX - self.Emit("TESTQ", _BX, _BX) // TESTQ BX, BX - self.Sjmp("JZ" , "_empty_{n}") - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Sjmp("JNZ" , "_number_next_{n}") - self.Emit("MOVQ", jit.Imm(int64(panicNilPointerOfNonEmptyString)), _AX) - self.Sjmp("JMP", _LB_panic) - self.Link("_number_next_{n}") - self.call_go(_F_isValidNumber) // CALL_GO isValidNumber - self.Emit("CMPB" , _AX, jit.Imm(0)) // CMPB AX, $0 - self.Sjmp("JE" , _LB_error_invalid_number) // JE _error_invalid_number - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _BX) // MOVQ (SP.p), BX - self.check_size_r(_BX, 0) // SIZE BX - self.Emit("LEAQ" , jit.Sib(_RP, _RL, 1, 0), _AX) // LEAQ (RP)(RL), AX - self.Emit("ADDQ" , jit.Ptr(_SP_p, 8), _RL) // ADDQ 8(SP.p), RL - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _BX) // MOVOU (SP.p), BX - self.Emit("MOVQ", jit.Ptr(_SP_p, 8), _CX) // MOVOU X0, 8(SP) - self.call_go(_F_memmove) // CALL_GO memmove - self.Emit("MOVQ", _ARG_rb, _AX) // MOVQ rb<>+0(FP), AX - self.Emit("MOVQ", _RL, jit.Ptr(_AX, 8)) // MOVQ RL, 8(AX) - self.Sjmp("JMP" , "_done_{n}") // JMP _done_{n} - self.Link("_empty_{n}") // _empty_{n} - self.check_size(1) // SIZE $1 - self.add_char('0') // CHAR $'0' - self.Link("_done_{n}") // _done_{n}: -} - -func (self *_Assembler) _asm_OP_eface(_ *_Instr) { - self.prep_buffer_AX() // MOVE {buf}, AX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _BX) // MOVQ (SP.p), BX - self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _CX) // LEAQ 8(SP.p), CX - self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI - self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ fv, AX - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.load_buffer_AX() -} - -func (self *_Assembler) _asm_OP_iface(_ *_Instr) { - self.prep_buffer_AX() // MOVE {buf}, AX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _CX) // MOVQ (SP.p), CX - self.Emit("MOVQ" , jit.Ptr(_CX, 8), _BX) // MOVQ 8(CX), BX - self.Emit("LEAQ" , jit.Ptr(_SP_p, 8), _CX) // LEAQ 8(SP.p), CX - self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI - self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ fv, AX - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.load_buffer_AX() -} - -func (self *_Assembler) _asm_OP_byte(p *_Instr) { - self.check_size(1) - self.Emit("MOVB", jit.Imm(p.i64()), jit.Sib(_RP, _RL, 1, 0)) // MOVL p.vi(), (RP)(RL*1) - self.Emit("ADDQ", jit.Imm(1), _RL) // ADDQ $1, RL -} - -func (self *_Assembler) _asm_OP_text(p *_Instr) { - self.check_size(len(p.vs())) // SIZE ${len(p.vs())} - self.add_text(p.vs()) // TEXT ${p.vs()} -} - -func (self *_Assembler) _asm_OP_deref(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p -} - -func (self *_Assembler) _asm_OP_index(p *_Instr) { - self.Emit("MOVQ", jit.Imm(p.i64()), _AX) // MOVQ $p.vi(), AX - self.Emit("ADDQ", _AX, _SP_p) // ADDQ AX, SP.p -} - -func (self *_Assembler) _asm_OP_load(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_ST, 0), _AX) // MOVQ (ST), AX - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -24), _SP_x) // MOVQ -24(ST)(AX), SP.x - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, -8), _SP_p) // MOVQ -8(ST)(AX), SP.p - self.Emit("MOVQ", jit.Sib(_ST, _AX, 1, 0), _SP_q) // MOVQ (ST)(AX), SP.q -} - -func (self *_Assembler) _asm_OP_save(_ *_Instr) { - self.save_state() -} - -func (self *_Assembler) _asm_OP_drop(_ *_Instr) { - self.drop_state(_StateSize) -} - -func (self *_Assembler) _asm_OP_drop_2(_ *_Instr) { - self.drop_state(_StateSize * 2) // DROP $(_StateSize * 2) - self.Emit("MOVOU", _X0, jit.Sib(_ST, _AX, 1, 56)) // MOVOU X0, 56(ST)(AX) -} - -func (self *_Assembler) _asm_OP_recurse(p *_Instr) { - self.prep_buffer_AX() // MOVE {buf}, (SP) - vt, pv := p.vp() - self.Emit("MOVQ", jit.Type(vt), _BX) // MOVQ $(type(p.vt())), BX - - /* check for indirection */ - if !rt.UnpackType(vt).Indirect() { - self.Emit("MOVQ", _SP_p, _CX) // MOVQ SP.p, CX - } else { - self.Emit("MOVQ", _SP_p, _VAR_vp) // MOVQ SP.p, VAR.vp - self.Emit("LEAQ", _VAR_vp, _CX) // LEAQ VAR.vp, CX - } - - /* call the encoder */ - self.Emit("MOVQ" , _ST, _DI) // MOVQ ST, DI - self.Emit("MOVQ" , _ARG_fv, _SI) // MOVQ $fv, SI - if pv { - self.Emit("BTCQ", jit.Imm(bitPointerValue), _SI) // BTCQ $1, SI - } - self.call_encoder(_F_encodeTypedPointer) // CALL encodeTypedPointer - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error - self.load_buffer_AX() -} - -func (self *_Assembler) _asm_OP_is_nil(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_nil_p1(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 8), jit.Imm(0)) // CMPQ 8(SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_1(p *_Instr) { - self.Emit("CMPB", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPB (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_2(p *_Instr) { - self.Emit("CMPW", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPW (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_4(p *_Instr) { - self.Emit("CMPL", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPL (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_8(p *_Instr) { - self.Emit("CMPQ", jit.Ptr(_SP_p, 0), jit.Imm(0)) // CMPQ (SP.p), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_is_zero_map(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _AX) // MOVQ (SP.p), AX - self.Emit("TESTQ", _AX, _AX) // TESTQ AX, AX - self.Xjmp("JZ" , p.vi()) // JZ p.vi() - self.Emit("CMPQ" , jit.Ptr(_AX, 0), jit.Imm(0)) // CMPQ (AX), $0 - self.Xjmp("JE" , p.vi()) // JE p.vi() -} - -func (self *_Assembler) _asm_OP_goto(p *_Instr) { - self.Xjmp("JMP", p.vi()) -} - -func (self *_Assembler) _asm_OP_map_iter(p *_Instr) { - self.Emit("MOVQ" , jit.Type(p.vt()), _AX) // MOVQ $p.vt(), AX - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _BX) // MOVQ (SP.p), BX - self.Emit("MOVQ" , _ARG_fv, _CX) // MOVQ fv, CX - self.call_go(_F_iteratorStart) // CALL_GO iteratorStart - self.Emit("MOVQ" , _AX, _SP_q) // MOVQ AX, SP.q - self.Emit("MOVQ" , _BX, _ET) // MOVQ 32(SP), ET - self.Emit("MOVQ" , _CX, _EP) // MOVQ 40(SP), EP - self.Emit("TESTQ", _ET, _ET) // TESTQ ET, ET - self.Sjmp("JNZ" , _LB_error) // JNZ _error -} - -func (self *_Assembler) _asm_OP_map_stop(_ *_Instr) { - self.Emit("MOVQ", _SP_q, _AX) // MOVQ SP.q, AX - self.call_go(_F_iteratorStop) // CALL_GO iteratorStop - self.Emit("XORL", _SP_q, _SP_q) // XORL SP.q, SP.q -} - -func (self *_Assembler) _asm_OP_map_check_key(p *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_q, 0), _SP_p) // MOVQ (SP.q), SP.p - self.Emit("TESTQ", _SP_p, _SP_p) // TESTQ SP.p, SP.p - self.Xjmp("JZ" , p.vi()) // JNZ p.vi() -} - -func (self *_Assembler) _asm_OP_map_write_key(p *_Instr) { - self.Emit("BTQ", jit.Imm(bitSortMapKeys), _ARG_fv) // BTQ ${SortMapKeys}, fv - self.Sjmp("JNC", "_unordered_key_{n}") // JNC _unordered_key_{n} - self.encode_string(false) // STR $false - self.Xjmp("JMP", p.vi()) // JMP ${p.vi()} - self.Link("_unordered_key_{n}") // _unordered_key_{n}: -} - -func (self *_Assembler) _asm_OP_map_value_next(_ *_Instr) { - self.Emit("MOVQ", jit.Ptr(_SP_q, 8), _SP_p) // MOVQ 8(SP.q), SP.p - self.Emit("MOVQ", _SP_q, _AX) // MOVQ SP.q, AX - self.call_go(_F_iteratorNext) // CALL_GO iteratorNext -} - -func (self *_Assembler) _asm_OP_slice_len(_ *_Instr) { - self.Emit("MOVQ" , jit.Ptr(_SP_p, 8), _SP_x) // MOVQ 8(SP.p), SP.x - self.Emit("MOVQ" , jit.Ptr(_SP_p, 0), _SP_p) // MOVQ (SP.p), SP.p - self.Emit("ORQ" , jit.Imm(1 << _S_init), _SP_f) // ORQ $(1<<_S_init), SP.f -} - -func (self *_Assembler) _asm_OP_slice_next(p *_Instr) { - self.Emit("TESTQ" , _SP_x, _SP_x) // TESTQ SP.x, SP.x - self.Xjmp("JZ" , p.vi()) // JZ p.vi() - self.Emit("SUBQ" , jit.Imm(1), _SP_x) // SUBQ $1, SP.x - self.Emit("BTRQ" , jit.Imm(_S_init), _SP_f) // BTRQ $_S_init, SP.f - self.Emit("LEAQ" , jit.Ptr(_SP_p, int64(p.vlen())), _AX) // LEAQ $(p.vlen())(SP.p), AX - self.Emit("CMOVQCC", _AX, _SP_p) // CMOVQNC AX, SP.p -} - -func (self *_Assembler) _asm_OP_marshal(p *_Instr) { - self.call_marshaler(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt()) -} - -func (self *_Assembler) _asm_OP_marshal_p(p *_Instr) { - if p.vk() != reflect.Ptr { - panic("marshal_p: invalid type") - } else { - self.call_marshaler_v(_F_encodeJsonMarshaler, _T_json_Marshaler, p.vt(), false) - } -} - -func (self *_Assembler) _asm_OP_marshal_text(p *_Instr) { - self.call_marshaler(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt()) -} - -func (self *_Assembler) _asm_OP_marshal_text_p(p *_Instr) { - if p.vk() != reflect.Ptr { - panic("marshal_text_p: invalid type") - } else { - self.call_marshaler_v(_F_encodeTextMarshaler, _T_encoding_TextMarshaler, p.vt(), false) - } -} - -func (self *_Assembler) _asm_OP_cond_set(_ *_Instr) { - self.Emit("ORQ", jit.Imm(1 << _S_cond), _SP_f) // ORQ $(1<<_S_cond), SP.f -} - -func (self *_Assembler) _asm_OP_cond_testc(p *_Instr) { - self.Emit("BTRQ", jit.Imm(_S_cond), _SP_f) // BTRQ $_S_cond, SP.f - self.Xjmp("JC" , p.vi()) -} - -func (self *_Assembler) print_gc(i int, p1 *_Instr, p2 *_Instr) { - self.Emit("MOVQ", jit.Imm(int64(p2.op())), _CX) // MOVQ $(p2.op()), AX - self.Emit("MOVQ", jit.Imm(int64(p1.op())), _BX) // MOVQ $(p1.op()), BX - 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/debug_go116.go b/vendor/github.com/bytedance/sonic/internal/encoder/debug_go116.go index 4bc9c15..d8d0c45 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 e1016de..56a6cbf 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 3c46061..757e73f 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/encoder.go @@ -292,7 +292,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 +324,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 ac6848a..6e9d0c7 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 9892ba1..a2800dd 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 78fb29f..3180389 100644 --- a/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go +++ b/vendor/github.com/bytedance/sonic/internal/encoder/primitives.go @@ -165,4 +165,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 8f73a2b..b6f3ce5 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 40d06f4..5577c58 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 f1a7d10..94a2c0f 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/loader/asm.s b/vendor/github.com/bytedance/sonic/internal/loader/asm.s deleted file mode 100644 index e69de29..0000000 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 59a3cb3..0000000 --- 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 b0d2d6c..0000000 --- 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 f01747f..0000000 --- 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 f1d585d..0000000 --- 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 c12f8a7..0000000 --- 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 6446a5f..0000000 --- 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 4053ee9..0000000 --- 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 d6a8610..627ac17 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 86eb365..0000000 --- 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 1ca7f57..0000000 --- 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 f20095d..ebbc57a 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx/native_subr_amd64.go @@ -3,107 +3,601 @@ package avx -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 31264 - _subr__f64toa = __native_entry__() + 192 - _subr__get_by_path = __native_entry__() + 25856 - _subr__html_escape = __native_entry__() + 9040 - _subr__i64toa = __native_entry__() + 3488 - _subr__lspace = __native_entry__() + 16 - _subr__quote = __native_entry__() + 4880 - _subr__skip_array = __native_entry__() + 17952 - _subr__skip_number = __native_entry__() + 21952 - _subr__skip_object = __native_entry__() + 20368 - _subr__skip_one = __native_entry__() + 22112 - _subr__skip_one_fast = __native_entry__() + 22352 - _subr__u64toa = __native_entry__() + 3600 - _subr__unquote = __native_entry__() + 6672 - _subr__validate_one = __native_entry__() + 22176 - _subr__validate_utf8 = __native_entry__() + 30000 - _subr__validate_utf8_fast = __native_entry__() + 30672 - _subr__value = __native_entry__() + 12224 - _subr__vnumber = __native_entry__() + 15616 - _subr__vsigned = __native_entry__() + 17232 - _subr__vstring = __native_entry__() + 14064 - _subr__vunsigned = __native_entry__() + 17600 +const ( + _entry__f32toa = 31136 + _entry__f64toa = 192 + _entry__format_significand = 35248 + _entry__format_integer = 3040 + _entry__fsm_exec = 17920 + _entry__advance_string = 14320 + _entry__advance_string_default = 36640 + _entry__do_skip_number = 20528 + _entry__get_by_path = 25680 + _entry__skip_one_fast = 22160 + _entry__html_escape = 8912 + _entry__i64toa = 3472 + _entry__u64toa = 3584 + _entry__lspace = 16 + _entry__quote = 4864 + _entry__skip_array = 17872 + _entry__skip_number = 21792 + _entry__skip_object = 20160 + _entry__skip_one = 21936 + _entry__unquote = 6576 + _entry__validate_one = 21984 + _entry__validate_utf8 = 29888 + _entry__validate_utf8_fast = 30560 + _entry__value = 12320 + _entry__vnumber = 15648 + _entry__atof_eisel_lemire64 = 10160 + _entry__atof_native = 11712 + _entry__decimal_to_f64 = 10528 + _entry__right_shift = 36208 + _entry__left_shift = 35712 + _entry__vsigned = 17200 + _entry__vstring = 14144 + _entry__vunsigned = 17520 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 304 - _stack__html_escape = 64 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 + _stack__get_by_path = 280 + _stack__skip_one_fast = 176 + _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 56 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 200 - _stack__u64toa = 8 + _stack__skip_array = 176 + _stack__skip_number = 88 + _stack__skip_object = 176 + _stack__skip_one = 176 _stack__unquote = 88 - _stack__validate_one = 128 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 -) - -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 = 120 + _stack__vunsigned = 8 ) 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 = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1692 + _size__advance_string = 1280 + _size__advance_string_default = 944 + _size__do_skip_number = 924 + _size__get_by_path = 4208 + _size__skip_one_fast = 3016 + _size__html_escape = 1248 + _size__i64toa = 48 + _size__u64toa = 1232 + _size__lspace = 144 + _size__quote = 1696 + _size__skip_array = 48 + _size__skip_number = 144 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2272 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 544 + _size__value = 1316 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 320 + _size__vstring = 128 + _size__vunsigned = 336 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {557, 56}, + {561, 48}, + {562, 40}, + {564, 32}, + {566, 24}, + {568, 16}, + {570, 8}, + {571, 0}, + {1268, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {552, 64}, + {556, 48}, + {557, 40}, + {559, 32}, + {561, 24}, + {563, 16}, + {565, 8}, + {566, 0}, + {931, 64}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {849, 48}, + {850, 40}, + {852, 32}, + {854, 24}, + {856, 16}, + {858, 8}, + {859, 0}, + {924, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {658, 176}, + {659, 168}, + {661, 160}, + {663, 152}, + {665, 144}, + {667, 136}, + {671, 128}, + {3016, 176}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1224, 72}, + {1228, 48}, + {1229, 40}, + {1231, 32}, + {1233, 24}, + {1235, 16}, + {1237, 8}, + {1239, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {756, 8}, + {757, 0}, + {1221, 8}, + {1223, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1649, 56}, + {1653, 48}, + {1654, 40}, + {1656, 32}, + {1658, 24}, + {1660, 16}, + {1662, 8}, + {1663, 0}, + {1690, 56}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {247, 24}, + {251, 16}, + {252, 8}, + {253, 0}, + {527, 24}, + {531, 16}, + {532, 8}, + {534, 0}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1316, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } +) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_amd64.go index bebd83c..1a4ea0a 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 07789ae..0000000 --- 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 8adf5e9..0000000 --- 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 10b3d60..5f85c5b 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/avx2/native_subr_amd64.go @@ -3,107 +3,608 @@ package avx2 -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 33888 - _subr__f64toa = __native_entry__() + 288 - _subr__get_by_path = __native_entry__() + 28336 - _subr__html_escape = __native_entry__() + 10496 - _subr__i64toa = __native_entry__() + 3584 - _subr__lspace = __native_entry__() + 64 - _subr__quote = __native_entry__() + 5072 - _subr__skip_array = __native_entry__() + 20688 - _subr__skip_number = __native_entry__() + 24912 - _subr__skip_object = __native_entry__() + 22736 - _subr__skip_one = __native_entry__() + 25072 - _subr__skip_one_fast = __native_entry__() + 25488 - _subr__u64toa = __native_entry__() + 3696 - _subr__unquote = __native_entry__() + 7888 - _subr__validate_one = __native_entry__() + 25136 - _subr__validate_utf8 = __native_entry__() + 30320 - _subr__validate_utf8_fast = __native_entry__() + 31280 - _subr__value = __native_entry__() + 15024 - _subr__vnumber = __native_entry__() + 18352 - _subr__vsigned = __native_entry__() + 19968 - _subr__vstring = __native_entry__() + 17024 - _subr__vunsigned = __native_entry__() + 20336 +const ( + _entry__f32toa = 34624 + _entry__f64toa = 320 + _entry__format_significand = 38736 + _entry__format_integer = 3168 + _entry__fsm_exec = 21072 + _entry__advance_ns = 16928 + _entry__advance_string = 17664 + _entry__advance_string_default = 40160 + _entry__do_skip_number = 23696 + _entry__get_by_path = 28864 + _entry__skip_one_fast = 25936 + _entry__html_escape = 10560 + _entry__i64toa = 3600 + _entry__u64toa = 3712 + _entry__lspace = 64 + _entry__quote = 5104 + _entry__skip_array = 21024 + _entry__skip_number = 25392 + _entry__skip_object = 23088 + _entry__skip_one = 25536 + _entry__unquote = 7888 + _entry__validate_one = 25584 + _entry__validate_utf8 = 31040 + _entry__validate_utf8_fast = 31984 + _entry__value = 15376 + _entry__vnumber = 18800 + _entry__atof_eisel_lemire64 = 12624 + _entry__atof_native = 14768 + _entry__decimal_to_f64 = 13056 + _entry__right_shift = 39696 + _entry__left_shift = 39200 + _entry__vsigned = 20352 + _entry__vstring = 17424 + _entry__vunsigned = 20672 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 296 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 144 + _stack__advance_ns = 8 + _stack__advance_string = 56 + _stack__advance_string_default = 48 + _stack__do_skip_number = 48 + _stack__get_by_path = 272 + _stack__skip_one_fast = 184 _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 56 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 208 - _stack__u64toa = 8 + _stack__skip_array = 152 + _stack__skip_number = 88 + _stack__skip_object = 152 + _stack__skip_one = 152 _stack__unquote = 72 - _stack__validate_one = 128 + _stack__validate_one = 152 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 176 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 _stack__vstring = 112 - _stack__vunsigned = 16 -) - -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__vunsigned = 8 ) 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 = 3392 + _size__f64toa = 2848 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1468 + _size__advance_ns = 496 + _size__advance_string = 1088 + _size__advance_string_default = 768 + _size__do_skip_number = 1360 + _size__get_by_path = 2176 + _size__skip_one_fast = 2428 + _size__html_escape = 2064 + _size__i64toa = 48 + _size__u64toa = 1248 + _size__lspace = 224 + _size__quote = 2736 + _size__skip_array = 48 + _size__skip_number = 144 + _size__skip_object = 48 + _size__skip_one = 48 + _size__unquote = 2480 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 2608 + _size__value = 1004 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1712 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 320 + _size__vstring = 144 + _size__vunsigned = 336 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3350, 48}, + {3351, 40}, + {3353, 32}, + {3355, 24}, + {3357, 16}, + {3359, 8}, + {3363, 0}, + {3385, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2788, 56}, + {2792, 48}, + {2793, 40}, + {2795, 32}, + {2797, 24}, + {2799, 16}, + {2801, 8}, + {2805, 0}, + {2843, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1157, 88}, + {1161, 48}, + {1162, 40}, + {1164, 32}, + {1166, 24}, + {1168, 16}, + {1170, 8}, + {1171, 0}, + {1468, 88}, + } + _pcsp__advance_ns = [][2]uint32{ + {1, 0}, + {453, 8}, + {457, 0}, + {481, 8}, + {486, 0}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {433, 56}, + {437, 48}, + {438, 40}, + {440, 32}, + {442, 24}, + {444, 16}, + {446, 8}, + {450, 0}, + {1078, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {332, 48}, + {333, 40}, + {335, 32}, + {337, 24}, + {339, 16}, + {341, 8}, + {345, 0}, + {757, 48}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {1274, 48}, + {1275, 40}, + {1277, 32}, + {1279, 24}, + {1281, 16}, + {1283, 8}, + {1287, 0}, + {1360, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2049, 88}, + {2053, 48}, + {2054, 40}, + {2056, 32}, + {2058, 24}, + {2060, 16}, + {2062, 8}, + {2063, 0}, + {2170, 88}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {418, 176}, + {419, 168}, + {421, 160}, + {423, 152}, + {425, 144}, + {427, 136}, + {431, 128}, + {2428, 176}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2045, 72}, + {2049, 48}, + {2050, 40}, + {2052, 32}, + {2054, 24}, + {2056, 16}, + {2058, 8}, + {2063, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {758, 8}, + {759, 0}, + {1225, 8}, + {1227, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {184, 8}, + {188, 0}, + {204, 8}, + {208, 0}, + {215, 8}, + {220, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2687, 56}, + {2691, 48}, + {2692, 40}, + {2694, 32}, + {2696, 24}, + {2698, 16}, + {2700, 8}, + {2704, 0}, + {2731, 56}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {28, 8}, + {34, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {79, 72}, + {83, 48}, + {84, 40}, + {86, 32}, + {88, 24}, + {90, 16}, + {92, 8}, + {96, 0}, + {2464, 72}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {1738, 176}, + {1739, 168}, + {1743, 160}, + {2018, 176}, + {2019, 168}, + {2023, 160}, + {2600, 176}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {988, 88}, + {992, 48}, + {993, 40}, + {995, 32}, + {997, 24}, + {999, 16}, + {1001, 8}, + {1004, 0}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1547, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1673, 56}, + {1677, 48}, + {1678, 40}, + {1680, 32}, + {1682, 24}, + {1684, 16}, + {1686, 8}, + {1690, 0}, + {1702, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {112, 16}, + {113, 8}, + {114, 0}, + {125, 16}, + {126, 8}, + {127, 0}, + {260, 16}, + {261, 8}, + {262, 0}, + {266, 16}, + {267, 8}, + {268, 0}, + {306, 16}, + {307, 8}, + {308, 0}, + {316, 16}, + {317, 8}, + {319, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {71, 8}, + {72, 0}, + {83, 8}, + {84, 0}, + {107, 8}, + {108, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } +) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_ns", _entry__advance_ns, _size__advance_ns, _stack__advance_ns, _pcsp__advance_ns}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/dispatch_amd64.go index 11e5172..41441f5 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 bfd2f52..0000000 --- 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 7ed9e47..c619d8a 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 cb06090..c4acc75 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 40cbf16..1a55640 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) +} \ No newline at end of file diff --git a/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl b/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl index bd9ce0c..7c35f20 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl +++ b/vendor/github.com/bytedance/sonic/internal/native/native_amd64_test.tmpl @@ -1,3 +1,5 @@ +// Code generated by Makefile, DO NOT EDIT. + /* * Copyright 2021 ByteDance Inc. * @@ -20,6 +22,7 @@ import ( `encoding/hex` `fmt` `math` + `strings` `testing` `unsafe` @@ -34,7 +37,7 @@ func TestNative_Value(t *testing.T) { var v types.JsonState s := ` -12345` p := (*rt.GoString)(unsafe.Pointer(&s)) - x := __value(p.Ptr, p.Len, 0, &v, 0) + x := value(p.Ptr, p.Len, 0, &v, 0) assert.Equal(t, 9, x) assert.Equal(t, types.V_INTEGER, v.Vt) assert.Equal(t, int64(-12345), v.Iv) @@ -46,7 +49,7 @@ func TestNative_Value_OutOfBound(t *testing.T) { mem := []byte{'"', '"'} s := rt.Mem2Str(mem[:1]) p := (*rt.GoString)(unsafe.Pointer(&s)) - x := __value(p.Ptr, p.Len, 0, &v, 0) + x := value(p.Ptr, p.Len, 0, &v, 0) assert.Equal(t, 1, x) assert.Equal(t, -int(types.ERR_EOF), int(v.Vt)) } @@ -56,7 +59,7 @@ func TestNative_Quote(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -70,7 +73,7 @@ func TestNative_QuoteNoMem(t *testing.T) { d := make([]byte, 10) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, 0) assert.Equal(t, -6, rv) assert.Equal(t, 5, len(d)) assert.Equal(t, `hello`, string(d)) @@ -81,7 +84,7 @@ func TestNative_DoubleQuote(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, types.F_DOUBLE_UNQUOTE) + rv := quote(sp.Ptr, sp.Len, dp.Ptr, &dp.Len, types.F_DOUBLE_UNQUOTE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -96,7 +99,7 @@ func TestNative_Unquote(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -111,7 +114,7 @@ func TestNative_UnquoteError(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_EOF), rv) assert.Equal(t, 5, ep) s = `asdf\gqwer` @@ -119,7 +122,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_ESCAPE), rv) assert.Equal(t, 5, ep) s = `asdf\u1gggqwer` @@ -127,7 +130,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_CHAR), rv) assert.Equal(t, 7, ep) s = `asdf\ud800qwer` @@ -135,7 +138,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 6, ep) s = `asdf\\ud800qwer` @@ -143,7 +146,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 7, ep) s = `asdf\ud800\ud800qwer` @@ -151,7 +154,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, 0) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 12, ep) s = `asdf\\ud800\\ud800qwer` @@ -159,7 +162,7 @@ func TestNative_UnquoteError(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) assert.Equal(t, -int(types.ERR_INVALID_UNICODE), rv) assert.Equal(t, 14, ep) } @@ -170,7 +173,7 @@ func TestNative_DoubleUnquote(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_DOUBLE_UNQUOTE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -185,7 +188,7 @@ func TestNative_UnquoteUnicodeReplacement(t *testing.T) { ep := -1 dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) + rv := unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -197,7 +200,7 @@ func TestNative_UnquoteUnicodeReplacement(t *testing.T) { ep = -1 dp = (*rt.GoSlice)(unsafe.Pointer(&d)) sp = (*rt.GoString)(unsafe.Pointer(&s)) - rv = __unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) + rv = unquote(sp.Ptr, sp.Len, dp.Ptr, &ep, types.F_UNICODE_REPLACE) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -211,7 +214,7 @@ func TestNative_HTMLEscape(t *testing.T) { d := make([]byte, 256) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) + rv := html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) if rv < 0 { require.NoError(t, types.ParsingError(-rv)) } @@ -225,7 +228,7 @@ func TestNative_HTMLEscapeNoMem(t *testing.T) { d := make([]byte, 10) dp := (*rt.GoSlice)(unsafe.Pointer(&d)) sp := (*rt.GoString)(unsafe.Pointer(&s)) - rv := __html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) + rv := html_escape(sp.Ptr, sp.Len, dp.Ptr, &dp.Len) assert.Equal(t, -6, rv) assert.Equal(t, 5, len(d)) assert.Equal(t, `hello`, string(d)) @@ -235,11 +238,11 @@ func TestNative_Vstring(t *testing.T) { var v types.JsonState i := 0 s := `test"test\n2"` - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 5, i) assert.Equal(t, -1, v.Ep) assert.Equal(t, int64(0), v.Iv) - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 13, i) assert.Equal(t, 9, v.Ep) assert.Equal(t, int64(5), v.Iv) @@ -250,7 +253,7 @@ func TestNative_Vstring_ValidUnescapedChars(t *testing.T) { valid := uint64(types.F_VALIDATE_STRING) i := 0 s := "test\x1f\"" - __vstring(&s, &i, &v, valid) + vstring(&s, &i, &v, valid) assert.Equal(t, -int(types.ERR_INVALID_CHAR), int(v.Vt)) } @@ -258,7 +261,7 @@ func TestNative_VstringEscapeEOF(t *testing.T) { var v types.JsonState i := 0 s := `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"xxxxxxxxxxxxxxxxxxxxxxxxxxxxx"x` - __vstring(&s, &i, &v, 0) + vstring(&s, &i, &v, 0) assert.Equal(t, 95, i) assert.Equal(t, 63, v.Ep) assert.Equal(t, int64(0), v.Iv) @@ -274,7 +277,7 @@ func TestNative_VstringHangUpOnRandomData(t *testing.T) { p := 1 s := rt.Mem2Str(v) var js types.JsonState - __vstring(&s, &p, &js, 0) + vstring(&s, &p, &js, 0) fmt.Printf("js: %s\n", spew.Sdump(js)) } @@ -282,49 +285,49 @@ func TestNative_Vnumber(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "1.234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 1.234, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "1.234e5" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 7, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 1.234e5, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "0.0125" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 6, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 0.0125, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "100000000000000000000" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 21, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 100000000000000000000.0, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "999999999999999900000" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 21, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, 999999999999999900000.0, v.Dv) assert.Equal(t, types.V_DOUBLE, v.Vt) i = 0 s = "-1.234" - __vnumber(&s, &i, &v) + vnumber(&s, &i, &v) assert.Equal(t, 6, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, -1.234, v.Dv) @@ -335,65 +338,65 @@ func TestNative_Vsigned(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "-1234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(-1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "9223372036854775807" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(math.MaxInt64), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "-9223372036854775808" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 20, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(math.MinInt64), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "9223372036854775808" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 18, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "-9223372036854775809" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "1.234" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "0.0125" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e5" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e-5" - __vsigned(&s, &i, &v) + vsigned(&s, &i, &v) assert.Equal(t, 5, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) @@ -403,63 +406,63 @@ func TestNative_Vunsigned(t *testing.T) { var v types.JsonState i := 0 s := "1234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, int64(1234), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "18446744073709551615" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 20, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, ^int64(0), v.Iv) assert.Equal(t, types.V_INTEGER, v.Vt) i = 0 s = "18446744073709551616" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 19, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INTEGER_OVERFLOW)), v.Vt) i = 0 s = "-1234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "1.234" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "0.0125" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 1, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "1234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 4, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1.234e5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) i = 0 s = "-1.234e-5" - __vunsigned(&s, &i, &v) + vunsigned(&s, &i, &v) assert.Equal(t, 0, i) assert.Equal(t, 0, v.Ep) assert.Equal(t, types.ValueType(-int(types.ERR_INVALID_NUMBER_FMT)), v.Vt) @@ -468,36 +471,36 @@ func TestNative_Vunsigned(t *testing.T) { func TestNative_SkipOne(t *testing.T) { p := 0 s := ` {"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` - q := __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q := skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 42, p) assert.Equal(t, 1, q) p = 0 s = `1 2.5 -3 "asdf\nqwer" true false null {} []` - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 1, p) assert.Equal(t, 0, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 5, p) assert.Equal(t, 2, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 8, p) assert.Equal(t, 6, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 21, p) assert.Equal(t, 9, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 26, p) assert.Equal(t, 22, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 32, p) assert.Equal(t, 27, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 37, p) assert.Equal(t, 33, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 40, p) assert.Equal(t, 38, q) - q = __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q = skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, 43, p) assert.Equal(t, 41, q) } @@ -509,7 +512,7 @@ func TestNative_SkipOne_Error(t *testing.T) { `"asdf`, `"\\\"`, }) { p := 0 - q := __skip_one(&s, &p, &types.StateMachine{}, uint64(0)) + q := skip_one(&s, &p, &types.StateMachine{}, uint64(0)) assert.True(t, q < 0) } } @@ -517,21 +520,21 @@ func TestNative_SkipOne_Error(t *testing.T) { func TestNative_SkipArray(t *testing.T) { p := 0 s := `null, true, false, 1, 2.0, -3, {"asdf": "wqer"}],` - __skip_array(&s, &p, &types.StateMachine{}, uint64(0)) + skip_array(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, p, 48) } func TestNative_SkipObject(t *testing.T) { p := 0 s := `"asdf": "wqer"},` - __skip_object(&s, &p, &types.StateMachine{}, uint64(0)) + skip_object(&s, &p, &types.StateMachine{}, uint64(0)) assert.Equal(t, p, 15) } func TestNative_SkipNumber(t *testing.T) { p := 0 s := `-1.23e+12` - q := __skip_number(&s, &p) + q := skip_number(&s, &p) assert.Equal(t, 9, p) assert.Equal(t, 0, q) } @@ -539,44 +542,44 @@ func TestNative_SkipNumber(t *testing.T) { func TestNative_SkipOneFast(t *testing.T) { p := 0 s := ` {"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` - q := __skip_one_fast(&s, &p) + q := skip_one_fast(&s, &p) assert.Equal(t, 42, p) assert.Equal(t, 1, q) p = 0 s = `1, 2.5, -3, "asdf\nqwer", true, false, null, {}, [],` - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 1, p) assert.Equal(t, 0, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 6, p) assert.Equal(t, 3, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 10, p) assert.Equal(t, 8, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 24, p) assert.Equal(t, 12, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 30, p) assert.Equal(t, 26, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 37, p) assert.Equal(t, 32, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 43, p) assert.Equal(t, 39, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 47, p) assert.Equal(t, 45, q) p += 1 - q = __skip_one_fast(&s, &p) + q = skip_one_fast(&s, &p) assert.Equal(t, 51, p) assert.Equal(t, 49, q) } @@ -587,7 +590,36 @@ func TestNative_SkipOneFast_Error(t *testing.T) { `"asdf`, `"\\\"`, }) { p := 0 - q := __skip_one_fast(&s, &p) + q := skip_one_fast(&s, &p) assert.True(t, q < 0) } +} + +func TestNative_GetByPath(t *testing.T) { + s := `{"asdf": [null, true, false, 1, 2.0, -3]}, 1234.5` + p := 0 + path := []interface{}{"asdf", 4} + ret := get_by_path(&s, &p, &path, types.NewStateMachine()) + assert.Equal(t, strings.Index(s, "2.0"), ret) +} + +func BenchmarkNative_SkipOneFast(b *testing.B) { + b.ResetTimer() + for i:=0; i(SB) - JMP _entry - -TEXT ·__f64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -80(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_f64toa: - MOVQ out+0(FP), DI - MOVSD val+8(FP), X0 - CALL ·__native_entry__+160(SB) // _f64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__get_by_path(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_get_by_path: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ path+16(FP), DX - MOVQ m+24(FP), CX - CALL ·__native_entry__+26384(SB) // _get_by_path - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__html_escape(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -64(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_html_escape: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - CALL ·__native_entry__+9072(SB) // _html_escape - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__i64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_i64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3424(SB) // _i64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__lspace(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_lspace: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ off+16(FP), DX - CALL ·__native_entry__+16(SB) // _lspace - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__quote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -64(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_quote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ dn+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+4864(SB) // _quote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_array(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_array: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+18112(SB) // _skip_array - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_number(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -72(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_number: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+22128(SB) // _skip_number - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_object(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_object: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+20512(SB) // _skip_object - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one(SB), NOSPLIT | NOFRAME, $0 - 40 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - MOVQ flags+24(FP), CX - CALL ·__native_entry__+22288(SB) // _skip_one - MOVQ AX, ret+32(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__skip_one_fast(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -136(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_skip_one_fast: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - CALL ·__native_entry__+22512(SB) // _skip_one_fast - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__u64toa(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -8(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_u64toa: - MOVQ out+0(FP), DI - MOVQ val+8(FP), SI - CALL ·__native_entry__+3552(SB) // _u64toa - MOVQ AX, ret+16(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__unquote(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -88(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_unquote: - MOVQ sp+0(FP), DI - MOVQ nb+8(FP), SI - MOVQ dp+16(FP), DX - MOVQ ep+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+6704(SB) // _unquote - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_one(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -128(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_one: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+22336(SB) // _validate_one - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -48(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ m+16(FP), DX - CALL ·__native_entry__+30528(SB) // _validate_utf8 - MOVQ AX, ret+24(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__validate_utf8_fast(SB), NOSPLIT | NOFRAME, $0 - 16 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -24(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_validate_utf8_fast: - MOVQ s+0(FP), DI - CALL ·__native_entry__+31200(SB) // _validate_utf8_fast - MOVQ AX, ret+8(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__value(SB), NOSPLIT | NOFRAME, $0 - 48 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -328(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_value: - MOVQ s+0(FP), DI - MOVQ n+8(FP), SI - MOVQ p+16(FP), DX - MOVQ v+24(FP), CX - MOVQ flags+32(FP), R8 - CALL ·__native_entry__+12272(SB) // _value - MOVQ AX, ret+40(FP) - RET - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vnumber(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -240(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vnumber: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+15728(SB), AX // _vnumber - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17376(SB), AX // _vsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vstring(SB), NOSPLIT | NOFRAME, $0 - 32 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -136(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vstring: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - MOVQ flags+24(FP), CX - LEAQ ·__native_entry__+14112(SB), AX // _vstring - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry - -TEXT ·__vunsigned(SB), NOSPLIT | NOFRAME, $0 - 24 - NO_LOCAL_POINTERS - -_entry: - MOVQ (TLS), R14 - LEAQ -16(SP), R12 - CMPQ R12, 16(R14) - JBE _stack_grow - -_vunsigned: - MOVQ s+0(FP), DI - MOVQ p+8(FP), SI - MOVQ v+16(FP), DX - LEAQ ·__native_entry__+17760(SB), AX // _vunsigned - JMP AX - -_stack_grow: - CALL runtime·morestack_noctxt<>(SB) - JMP _entry diff --git a/vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go b/vendor/github.com/bytedance/sonic/internal/native/sse/native_export_amd64.go deleted file mode 100644 index 898bad4..0000000 --- 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 2682825..7d71e20 100644 --- a/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go +++ b/vendor/github.com/bytedance/sonic/internal/native/sse/native_subr_amd64.go @@ -3,107 +3,602 @@ package sse -//go:nosplit -//go:noescape -//goland:noinspection ALL -func __native_entry__() uintptr +import ( + `github.com/bytedance/sonic/loader` +) -var ( - _subr__f32toa = __native_entry__() + 31760 - _subr__f64toa = __native_entry__() + 160 - _subr__get_by_path = __native_entry__() + 26384 - _subr__html_escape = __native_entry__() + 9072 - _subr__i64toa = __native_entry__() + 3424 - _subr__lspace = __native_entry__() + 16 - _subr__quote = __native_entry__() + 4864 - _subr__skip_array = __native_entry__() + 18112 - _subr__skip_number = __native_entry__() + 22128 - _subr__skip_object = __native_entry__() + 20512 - _subr__skip_one = __native_entry__() + 22288 - _subr__skip_one_fast = __native_entry__() + 22512 - _subr__u64toa = __native_entry__() + 3552 - _subr__unquote = __native_entry__() + 6704 - _subr__validate_one = __native_entry__() + 22336 - _subr__validate_utf8 = __native_entry__() + 30528 - _subr__validate_utf8_fast = __native_entry__() + 31200 - _subr__value = __native_entry__() + 12272 - _subr__vnumber = __native_entry__() + 15728 - _subr__vsigned = __native_entry__() + 17376 - _subr__vstring = __native_entry__() + 14112 - _subr__vunsigned = __native_entry__() + 17760 +const ( + _entry__f32toa = 31616 + _entry__f64toa = 160 + _entry__format_significand = 35888 + _entry__format_integer = 2960 + _entry__fsm_exec = 18016 + _entry__advance_string = 14352 + _entry__advance_string_default = 37280 + _entry__do_skip_number = 20608 + _entry__get_by_path = 26176 + _entry__skip_one_fast = 22272 + _entry__html_escape = 8912 + _entry__i64toa = 3392 + _entry__u64toa = 3520 + _entry__lspace = 16 + _entry__quote = 4832 + _entry__skip_array = 17984 + _entry__skip_number = 21904 + _entry__skip_object = 20256 + _entry__skip_one = 22048 + _entry__unquote = 6576 + _entry__validate_one = 22096 + _entry__validate_utf8 = 30384 + _entry__validate_utf8_fast = 31056 + _entry__value = 12352 + _entry__vnumber = 15744 + _entry__atof_eisel_lemire64 = 10192 + _entry__atof_native = 11744 + _entry__decimal_to_f64 = 10560 + _entry__right_shift = 36848 + _entry__left_shift = 36352 + _entry__vsigned = 17296 + _entry__vstring = 14176 + _entry__vunsigned = 17632 ) const ( _stack__f32toa = 48 _stack__f64toa = 80 - _stack__get_by_path = 240 - _stack__html_escape = 64 + _stack__format_significand = 24 + _stack__format_integer = 16 + _stack__fsm_exec = 168 + _stack__advance_string = 64 + _stack__advance_string_default = 64 + _stack__do_skip_number = 48 + _stack__get_by_path = 272 + _stack__skip_one_fast = 136 + _stack__html_escape = 72 _stack__i64toa = 16 + _stack__u64toa = 8 _stack__lspace = 8 _stack__quote = 64 - _stack__skip_array = 128 - _stack__skip_number = 72 - _stack__skip_object = 128 - _stack__skip_one = 128 - _stack__skip_one_fast = 136 - _stack__u64toa = 8 + _stack__skip_array = 176 + _stack__skip_number = 88 + _stack__skip_object = 176 + _stack__skip_one = 176 _stack__unquote = 88 - _stack__validate_one = 128 + _stack__validate_one = 176 _stack__validate_utf8 = 48 _stack__validate_utf8_fast = 24 _stack__value = 328 _stack__vnumber = 240 + _stack__atof_eisel_lemire64 = 32 + _stack__atof_native = 136 + _stack__decimal_to_f64 = 80 + _stack__right_shift = 8 + _stack__left_shift = 24 _stack__vsigned = 16 - _stack__vstring = 136 - _stack__vunsigned = 16 -) - -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 = 120 + _stack__vunsigned = 8 ) 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 = 3328 + _size__f64toa = 2800 + _size__format_significand = 464 + _size__format_integer = 432 + _size__fsm_exec = 1692 + _size__advance_string = 1344 + _size__advance_string_default = 960 + _size__do_skip_number = 956 + _size__get_by_path = 4208 + _size__skip_one_fast = 3404 + _size__html_escape = 1280 + _size__i64toa = 48 + _size__u64toa = 1264 + _size__lspace = 128 + _size__quote = 1728 + _size__skip_array = 32 + _size__skip_number = 144 + _size__skip_object = 32 + _size__skip_one = 48 + _size__unquote = 2272 + _size__validate_one = 48 + _size__validate_utf8 = 672 + _size__validate_utf8_fast = 544 + _size__value = 1316 + _size__vnumber = 1552 + _size__atof_eisel_lemire64 = 368 + _size__atof_native = 608 + _size__decimal_to_f64 = 1184 + _size__right_shift = 400 + _size__left_shift = 496 + _size__vsigned = 336 + _size__vstring = 128 + _size__vunsigned = 336 ) + +var ( + _pcsp__f32toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {3286, 48}, + {3287, 40}, + {3289, 32}, + {3291, 24}, + {3293, 16}, + {3295, 8}, + {3296, 0}, + {3318, 48}, + } + _pcsp__f64toa = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {2740, 56}, + {2744, 48}, + {2745, 40}, + {2747, 32}, + {2749, 24}, + {2751, 16}, + {2753, 8}, + {2754, 0}, + {2792, 56}, + } + _pcsp__format_significand = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {452, 24}, + {453, 16}, + {455, 8}, + {457, 0}, + } + _pcsp__format_integer = [][2]uint32{ + {1, 0}, + {4, 8}, + {412, 16}, + {413, 8}, + {414, 0}, + {423, 16}, + {424, 8}, + {426, 0}, + } + _pcsp__fsm_exec = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1342, 104}, + {1346, 48}, + {1347, 40}, + {1349, 32}, + {1351, 24}, + {1353, 16}, + {1355, 8}, + {1356, 0}, + {1692, 104}, + } + _pcsp__advance_string = [][2]uint32{ + {14, 0}, + {18, 8}, + {20, 16}, + {22, 24}, + {24, 32}, + {26, 40}, + {27, 48}, + {614, 56}, + {618, 48}, + {619, 40}, + {621, 32}, + {623, 24}, + {625, 16}, + {627, 8}, + {628, 0}, + {1339, 56}, + } + _pcsp__advance_string_default = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {576, 64}, + {580, 48}, + {581, 40}, + {583, 32}, + {585, 24}, + {587, 16}, + {589, 8}, + {590, 0}, + {955, 64}, + } + _pcsp__do_skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {881, 48}, + {882, 40}, + {884, 32}, + {886, 24}, + {888, 16}, + {890, 8}, + {891, 0}, + {956, 48}, + } + _pcsp__get_by_path = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {4012, 104}, + {4016, 48}, + {4017, 40}, + {4019, 32}, + {4021, 24}, + {4023, 16}, + {4025, 8}, + {4026, 0}, + {4194, 104}, + } + _pcsp__skip_one_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {658, 136}, + {662, 48}, + {663, 40}, + {665, 32}, + {667, 24}, + {669, 16}, + {671, 8}, + {672, 0}, + {3404, 136}, + } + _pcsp__html_escape = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1256, 72}, + {1260, 48}, + {1261, 40}, + {1263, 32}, + {1265, 24}, + {1267, 16}, + {1269, 8}, + {1271, 0}, + } + _pcsp__i64toa = [][2]uint32{ + {14, 0}, + {34, 8}, + {36, 0}, + } + _pcsp__u64toa = [][2]uint32{ + {1, 0}, + {161, 8}, + {162, 0}, + {457, 8}, + {458, 0}, + {772, 8}, + {773, 0}, + {1249, 8}, + {1251, 0}, + } + _pcsp__lspace = [][2]uint32{ + {1, 0}, + {89, 8}, + {90, 0}, + {103, 8}, + {104, 0}, + {111, 8}, + {113, 0}, + } + _pcsp__quote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1681, 64}, + {1685, 48}, + {1686, 40}, + {1688, 32}, + {1690, 24}, + {1692, 16}, + {1694, 8}, + {1695, 0}, + {1722, 64}, + } + _pcsp__skip_array = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__skip_number = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {100, 40}, + {101, 32}, + {103, 24}, + {105, 16}, + {107, 8}, + {108, 0}, + {139, 40}, + } + _pcsp__skip_object = [][2]uint32{ + {1, 0}, + {26, 8}, + {32, 0}, + } + _pcsp__skip_one = [][2]uint32{ + {1, 0}, + {30, 8}, + {36, 0}, + } + _pcsp__unquote = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1684, 88}, + {1688, 48}, + {1689, 40}, + {1691, 32}, + {1693, 24}, + {1695, 16}, + {1697, 8}, + {1698, 0}, + {2270, 88}, + } + _pcsp__validate_one = [][2]uint32{ + {1, 0}, + {35, 8}, + {41, 0}, + } + _pcsp__validate_utf8 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {623, 48}, + {627, 40}, + {628, 32}, + {630, 24}, + {632, 16}, + {634, 8}, + {635, 0}, + {666, 48}, + } + _pcsp__validate_utf8_fast = [][2]uint32{ + {1, 0}, + {4, 8}, + {5, 16}, + {247, 24}, + {251, 16}, + {252, 8}, + {253, 0}, + {527, 24}, + {531, 16}, + {532, 8}, + {534, 0}, + } + _pcsp__value = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {495, 88}, + {499, 48}, + {500, 40}, + {502, 32}, + {504, 24}, + {506, 16}, + {508, 8}, + {509, 0}, + {1316, 88}, + } + _pcsp__vnumber = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {803, 104}, + {807, 48}, + {808, 40}, + {810, 32}, + {812, 24}, + {814, 16}, + {816, 8}, + {817, 0}, + {1551, 104}, + } + _pcsp__atof_eisel_lemire64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {292, 32}, + {293, 24}, + {295, 16}, + {297, 8}, + {298, 0}, + {362, 32}, + } + _pcsp__atof_native = [][2]uint32{ + {1, 0}, + {4, 8}, + {587, 56}, + {591, 8}, + {593, 0}, + } + _pcsp__decimal_to_f64 = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {12, 40}, + {13, 48}, + {1144, 56}, + {1148, 48}, + {1149, 40}, + {1151, 32}, + {1153, 24}, + {1155, 16}, + {1157, 8}, + {1158, 0}, + {1169, 56}, + } + _pcsp__right_shift = [][2]uint32{ + {1, 0}, + {318, 8}, + {319, 0}, + {387, 8}, + {388, 0}, + {396, 8}, + {398, 0}, + } + _pcsp__left_shift = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {363, 24}, + {364, 16}, + {366, 8}, + {367, 0}, + {470, 24}, + {471, 16}, + {473, 8}, + {474, 0}, + {486, 24}, + } + _pcsp__vsigned = [][2]uint32{ + {1, 0}, + {4, 8}, + {119, 16}, + {120, 8}, + {121, 0}, + {132, 16}, + {133, 8}, + {134, 0}, + {276, 16}, + {277, 8}, + {278, 0}, + {282, 16}, + {283, 8}, + {284, 0}, + {322, 16}, + {323, 8}, + {324, 0}, + {332, 16}, + {333, 8}, + {335, 0}, + } + _pcsp__vstring = [][2]uint32{ + {1, 0}, + {4, 8}, + {6, 16}, + {8, 24}, + {10, 32}, + {11, 40}, + {105, 56}, + {109, 40}, + {110, 32}, + {112, 24}, + {114, 16}, + {116, 8}, + {118, 0}, + } + _pcsp__vunsigned = [][2]uint32{ + {1, 0}, + {78, 8}, + {79, 0}, + {90, 8}, + {91, 0}, + {114, 8}, + {115, 0}, + {273, 8}, + {274, 0}, + {312, 8}, + {313, 0}, + {320, 8}, + {322, 0}, + } +) + +var Funcs = []loader.CFunc{ + {"__native_entry__", 0, 67, 0, nil}, + {"_f32toa", _entry__f32toa, _size__f32toa, _stack__f32toa, _pcsp__f32toa}, + {"_f64toa", _entry__f64toa, _size__f64toa, _stack__f64toa, _pcsp__f64toa}, + {"_format_significand", _entry__format_significand, _size__format_significand, _stack__format_significand, _pcsp__format_significand}, + {"_format_integer", _entry__format_integer, _size__format_integer, _stack__format_integer, _pcsp__format_integer}, + {"_fsm_exec", _entry__fsm_exec, _size__fsm_exec, _stack__fsm_exec, _pcsp__fsm_exec}, + {"_advance_string", _entry__advance_string, _size__advance_string, _stack__advance_string, _pcsp__advance_string}, + {"_advance_string_default", _entry__advance_string_default, _size__advance_string_default, _stack__advance_string_default, _pcsp__advance_string_default}, + {"_do_skip_number", _entry__do_skip_number, _size__do_skip_number, _stack__do_skip_number, _pcsp__do_skip_number}, + {"_get_by_path", _entry__get_by_path, _size__get_by_path, _stack__get_by_path, _pcsp__get_by_path}, + {"_skip_one_fast", _entry__skip_one_fast, _size__skip_one_fast, _stack__skip_one_fast, _pcsp__skip_one_fast}, + {"_html_escape", _entry__html_escape, _size__html_escape, _stack__html_escape, _pcsp__html_escape}, + {"_i64toa", _entry__i64toa, _size__i64toa, _stack__i64toa, _pcsp__i64toa}, + {"_u64toa", _entry__u64toa, _size__u64toa, _stack__u64toa, _pcsp__u64toa}, + {"_lspace", _entry__lspace, _size__lspace, _stack__lspace, _pcsp__lspace}, + {"_quote", _entry__quote, _size__quote, _stack__quote, _pcsp__quote}, + {"_skip_array", _entry__skip_array, _size__skip_array, _stack__skip_array, _pcsp__skip_array}, + {"_skip_number", _entry__skip_number, _size__skip_number, _stack__skip_number, _pcsp__skip_number}, + {"_skip_object", _entry__skip_object, _size__skip_object, _stack__skip_object, _pcsp__skip_object}, + {"_skip_one", _entry__skip_one, _size__skip_one, _stack__skip_one, _pcsp__skip_one}, + {"_unquote", _entry__unquote, _size__unquote, _stack__unquote, _pcsp__unquote}, + {"_validate_one", _entry__validate_one, _size__validate_one, _stack__validate_one, _pcsp__validate_one}, + {"_validate_utf8", _entry__validate_utf8, _size__validate_utf8, _stack__validate_utf8, _pcsp__validate_utf8}, + {"_validate_utf8_fast", _entry__validate_utf8_fast, _size__validate_utf8_fast, _stack__validate_utf8_fast, _pcsp__validate_utf8_fast}, + {"_value", _entry__value, _size__value, _stack__value, _pcsp__value}, + {"_vnumber", _entry__vnumber, _size__vnumber, _stack__vnumber, _pcsp__vnumber}, + {"_atof_eisel_lemire64", _entry__atof_eisel_lemire64, _size__atof_eisel_lemire64, _stack__atof_eisel_lemire64, _pcsp__atof_eisel_lemire64}, + {"_atof_native", _entry__atof_native, _size__atof_native, _stack__atof_native, _pcsp__atof_native}, + {"_decimal_to_f64", _entry__decimal_to_f64, _size__decimal_to_f64, _stack__decimal_to_f64, _pcsp__decimal_to_f64}, + {"_right_shift", _entry__right_shift, _size__right_shift, _stack__right_shift, _pcsp__right_shift}, + {"_left_shift", _entry__left_shift, _size__left_shift, _stack__left_shift, _pcsp__left_shift}, + {"_vsigned", _entry__vsigned, _size__vsigned, _stack__vsigned, _pcsp__vsigned}, + {"_vstring", _entry__vstring, _size__vstring, _stack__vstring, _pcsp__vstring}, + {"_vunsigned", _entry__vunsigned, _size__vunsigned, _stack__vunsigned, _pcsp__vunsigned}, +} diff --git a/vendor/github.com/bytedance/sonic/internal/native/types/types.go b/vendor/github.com/bytedance/sonic/internal/native/types/types.go index e4e7570..b4afec9 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.go deleted file mode 100644 index ac27aa3..0000000 --- a/vendor/github.com/bytedance/sonic/internal/resolver/stubs.go +++ /dev/null @@ -1,46 +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 resolver - -import ( - _ `encoding/json` - `reflect` - _ `unsafe` -) - -type StdField struct { - name string - nameBytes []byte - equalFold func() - 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]int -} - -//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 5bf80dd..e3bf0db 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 9b760f6..0e8594c 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_go115.go deleted file mode 100644 index a2e3e65..0000000 --- a/vendor/github.com/bytedance/sonic/loader/funcdata_go115.go +++ /dev/null @@ -1,549 +0,0 @@ -//go:build go1.15 && !go1.16 -// +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 ( - `encoding` - `os` - `unsafe` - - `github.com/bytedance/sonic/internal/rt` -) - -const ( - _Magic uint32 = 0xfffffffa -) - -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 - 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 - 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 - end, gcdata, gcbss uintptr - types, etypes uintptr - - textsectmap []textSection // see runtime/symtab.go: textAddr() - typelinks []int32 // offsets from types - itablinks []*rt.GoItab - - ptab []ptabEntry - - pluginpath string - pkghashes []modulehash - - 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 { - entry uintptr // 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 - funcID uint8 // set for certain special runtime functions - _ [2]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 -} - -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 - 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 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) { - // 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*_PtrSize + 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{uintptr(f.entry), uintptr(startLocations[i])}) - } - - // Final entry of table is just end pc offset. - lastFunc := funcs[len(funcs)-1] - ftab = append(ftab, funcTab{lastFunc.entry + uintptr(lastFuncSize), 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) { - pclntab = make([]byte, size, size) - - // write a map of pc->func info offsets - offs := 0 - for i, f := range funcs { - byteOrder.PutUint64(pclntab[offs:offs+8], uint64(f.entry)) - byteOrder.PutUint64(pclntab[offs+8:offs+16], uint64(startLocations[i])) - 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)) - offs += 8 - - // write func info table - for i, f := range funcs { - off := startLocations[i] - - // write _func structure to pclntab - byteOrder.PutUint64(pclntab[off:off+8], uint64(f.entry)) - off += 8 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.nameOff)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.args)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.deferreturn)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.pcsp)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.pcfile)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.pcln)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.npcdata)) - off += 4 - byteOrder.PutUint32(pclntab[off:off+4], uint32(f.cuOffset)) - off += 4 - pclntab[off] = f.funcID - // NOTICE: _[2]byte alignment - off += 3 - pclntab[off] = f.nfuncdata - off += 1 - - // 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 - } - - off = uint32(rnd(int64(off), int64(_PtrSize))) - - // funcdata refs as offsets from gofunc - for _, funcdata := range funcdataOffs[i] { - if funcdata == _INVALID_FUNCDATA_OFFSET { - byteOrder.PutUint64(pclntab[off:off+8], 0) - } else { - byteOrder.PutUint64(pclntab[off:off+8], uint64(funcdataAddr)+uint64(funcdata)) - } - off += 8 - } - } - - 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 - - // 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) - - // make pcdata table - // NOTICE: _func only use offset to index pcdata, thus no need mmap() pcdata - pctab, pcdataOffs, _funcs := makePctab(funcs, addr, 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, pclntSize, startLocations := makeFtab(_funcs, lastFuncsize) - 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.findfunctab = uintptr(rt.IndexByte(cache, ffstart)) - funcdataAddr := uintptr(rt.IndexByte(cache, fstart)) - - // make pclnt table - pclntab := makePclntable(pclntSize, startLocations, _funcs, lastFuncsize, 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, - minLC : _MinLC, - ptrSize : _PtrSize, - nfunc : len(funcs), - nfiles: uint(len(cu)), - 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, 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 - // 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.entry = addr + uintptr(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.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_go116.go b/vendor/github.com/bytedance/sonic/loader/funcdata_go116.go index 508268e..1dfe229 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 a2bac85..84178ab 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 906fe37..ed3e7d1 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/loader.go b/vendor/github.com/bytedance/sonic/loader/loader.go index 929d8c2..43eaeb4 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_go115.go b/vendor/github.com/bytedance/sonic/loader/loader_go115.go deleted file mode 100644 index a1d4d78..0000000 --- a/vendor/github.com/bytedance/sonic/loader/loader_go115.go +++ /dev/null @@ -1,28 +0,0 @@ -//go:build go1.15 && !go1.16 -// +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 ( - `github.com/bytedance/sonic/internal/loader` -) - -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 diff --git a/vendor/github.com/bytedance/sonic/loader/loader_go116.go b/vendor/github.com/bytedance/sonic/loader/loader_go116.go deleted file mode 100644 index ea30ec9..0000000 --- a/vendor/github.com/bytedance/sonic/loader/loader_go116.go +++ /dev/null @@ -1,104 +0,0 @@ -//go:build go1.16 && !go1.21 -// +build go1.16,!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 loader - -import ( - `github.com/bytedance/sonic/internal/rt` -) - -// LoadFuncs loads only one function as module, and returns the function pointer -// - text: machine code -// - funcName: function name -// - frameSize: stack frame size. -// - argSize: argument total size (in bytes) -// - argPtrs: indicates if a slot (8 Bytes) of arguments memory stores pointer, from low to high -// - localPtrs: indicates if a slot (8 Bytes) of local variants memory stores pointer, from low to high -// -// WARN: -// - the function MUST has fixed SP offset equaling to this, otherwise it go.gentraceback will fail -// - the function MUST has only one stack map for all arguments and local variants -func (self Loader) LoadOne(text []byte, funcName string, frameSize int, argSize int, argPtrs []bool, localPtrs []bool) Function { - size := uint32(len(text)) - - fn := Func{ - Name: funcName, - TextSize: size, - ArgsSize: int32(argSize), - } - - // NOTICE: suppose the function has fixed SP offset equaling to frameSize, thus make only one pcsp pair - fn.Pcsp = &Pcdata{ - {PC: size, Val: int32(frameSize)}, - } - - if self.NoPreempt { - fn.PcUnsafePoint = &Pcdata{ - {PC: size, Val: PCDATA_UnsafePointUnsafe}, - } - } else { - fn.PcUnsafePoint = &Pcdata{ - {PC: size, Val: PCDATA_UnsafePointSafe}, - } - } - - // NOTICE: suppose the function has only one stack map at index 0 - fn.PcStackMapIndex = &Pcdata{ - {PC: size, Val: 0}, - } - - if argPtrs != nil { - args := rt.StackMapBuilder{} - for _, b := range argPtrs { - args.AddField(b) - } - fn.ArgsPointerMaps = args.Build() - } - - if localPtrs != nil { - locals := rt .StackMapBuilder{} - for _, b := range localPtrs { - locals.AddField(b) - } - fn.LocalsPointerMaps = locals.Build() - } - - out := Load(text, []Func{fn}, self.Name + funcName, []string{self.File}) - return out[0] -} - -// Load loads given machine codes and corresponding function information into go moduledata -// and returns runnable function pointer -// WARN: this API is experimental, use it carefully -func Load(text []byte, funcs []Func, modulename string, filenames []string) (out []Function) { - // generate module data and allocate memory address - 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) - } - 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 50b80bf..3ea944e 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 b5c62d1..efab4da 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/sonic.go b/vendor/github.com/bytedance/sonic/sonic.go index 6cbb1ad..58edb28 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. diff --git a/vendor/github.com/bytedance/sonic/utf8/utf8.go b/vendor/github.com/bytedance/sonic/utf8/utf8.go index 59d2cae..52c35fb 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 436d8ba..a0793f4 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 3d45717..f0746fc 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 a768c76..68ba613 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 83b58ea..7334b06 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 a6f9557..39a9161 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 7f7a587..0000000 --- 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 f18de54..3bcb090 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/klauspost/cpuid/v2/README.md b/vendor/github.com/klauspost/cpuid/v2/README.md index 37b5167..accd7ab 100644 --- a/vendor/github.com/klauspost/cpuid/v2/README.md +++ b/vendor/github.com/klauspost/cpuid/v2/README.md @@ -435,6 +435,7 @@ Exit Code 1 | SYSCALL | System-Call Extension (SCE): SYSCALL and SYSRET instructions. | | SYSEE | SYSENTER and SYSEXIT instructions | | TBM | AMD Trailing Bit Manipulation | +| TDX_GUEST | Intel Trust Domain Extensions Guest | | TLB_FLUSH_NESTED | AMD: Flushing includes all the nested translations for guest translations | | TME | Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. | | TOPEXT | TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. | diff --git a/vendor/github.com/klauspost/cpuid/v2/cpuid.go b/vendor/github.com/klauspost/cpuid/v2/cpuid.go index 89a861d..d015c74 100644 --- a/vendor/github.com/klauspost/cpuid/v2/cpuid.go +++ b/vendor/github.com/klauspost/cpuid/v2/cpuid.go @@ -226,6 +226,7 @@ const ( SYSCALL // System-Call Extension (SCE): SYSCALL and SYSRET instructions. SYSEE // SYSENTER and SYSEXIT instructions TBM // AMD Trailing Bit Manipulation + TDX_GUEST // Intel Trust Domain Extensions Guest TLB_FLUSH_NESTED // AMD: Flushing includes all the nested translations for guest translations TME // Intel Total Memory Encryption. The following MSRs are supported: IA32_TME_CAPABILITY, IA32_TME_ACTIVATE, IA32_TME_EXCLUDE_MASK, and IA32_TME_EXCLUDE_BASE. TOPEXT // TopologyExtensions: topology extensions support. Indicates support for CPUID Fn8000_001D_EAX_x[N:0]-CPUID Fn8000_001E_EDX. @@ -1186,13 +1187,8 @@ func support() flagSet { fs.setIf(edx&(1<<30) != 0, IA32_CORE_CAP) fs.setIf(edx&(1<<31) != 0, SPEC_CTRL_SSBD) - // CPUID.(EAX=7, ECX=1).EDX - fs.setIf(edx&(1<<4) != 0, AVXVNNIINT8) - fs.setIf(edx&(1<<5) != 0, AVXNECONVERT) - fs.setIf(edx&(1<<14) != 0, PREFETCHI) - // CPUID.(EAX=7, ECX=1).EAX - eax1, _, _, _ := cpuidex(7, 1) + eax1, _, _, edx1 := cpuidex(7, 1) fs.setIf(fs.inSet(AVX) && eax1&(1<<4) != 0, AVXVNNI) fs.setIf(eax1&(1<<7) != 0, CMPCCXADD) fs.setIf(eax1&(1<<10) != 0, MOVSB_ZL) @@ -1202,6 +1198,11 @@ func support() flagSet { fs.setIf(eax1&(1<<23) != 0, AVXIFMA) fs.setIf(eax1&(1<<26) != 0, LAM) + // CPUID.(EAX=7, ECX=1).EDX + fs.setIf(edx1&(1<<4) != 0, AVXVNNIINT8) + fs.setIf(edx1&(1<<5) != 0, AVXNECONVERT) + fs.setIf(edx1&(1<<14) != 0, PREFETCHI) + // Only detect AVX-512 features if XGETBV is supported if c&((1<<26)|(1<<27)) == (1<<26)|(1<<27) { // Check for OS support @@ -1393,6 +1394,13 @@ func support() flagSet { fs.setIf((a>>24)&1 == 1, VMSA_REGPROT) } + if mfi >= 0x21 { + // Intel Trusted Domain Extensions Guests have their own cpuid leaf (0x21). + _, ebx, ecx, edx := cpuid(0x21) + identity := string(valAsString(ebx, edx, ecx)) + fs.setIf(identity == "IntelTDX ", TDX_GUEST) + } + return fs } diff --git a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go index 2a27f44..024c706 100644 --- a/vendor/github.com/klauspost/cpuid/v2/featureid_string.go +++ b/vendor/github.com/klauspost/cpuid/v2/featureid_string.go @@ -166,59 +166,60 @@ func _() { _ = x[SYSCALL-156] _ = x[SYSEE-157] _ = x[TBM-158] - _ = x[TLB_FLUSH_NESTED-159] - _ = x[TME-160] - _ = x[TOPEXT-161] - _ = x[TSCRATEMSR-162] - _ = x[TSXLDTRK-163] - _ = x[VAES-164] - _ = x[VMCBCLEAN-165] - _ = x[VMPL-166] - _ = x[VMSA_REGPROT-167] - _ = x[VMX-168] - _ = x[VPCLMULQDQ-169] - _ = x[VTE-170] - _ = x[WAITPKG-171] - _ = x[WBNOINVD-172] - _ = x[WRMSRNS-173] - _ = x[X87-174] - _ = x[XGETBV1-175] - _ = x[XOP-176] - _ = x[XSAVE-177] - _ = x[XSAVEC-178] - _ = x[XSAVEOPT-179] - _ = x[XSAVES-180] - _ = x[AESARM-181] - _ = x[ARMCPUID-182] - _ = x[ASIMD-183] - _ = x[ASIMDDP-184] - _ = x[ASIMDHP-185] - _ = x[ASIMDRDM-186] - _ = x[ATOMICS-187] - _ = x[CRC32-188] - _ = x[DCPOP-189] - _ = x[EVTSTRM-190] - _ = x[FCMA-191] - _ = x[FP-192] - _ = x[FPHP-193] - _ = x[GPA-194] - _ = x[JSCVT-195] - _ = x[LRCPC-196] - _ = x[PMULL-197] - _ = x[SHA1-198] - _ = x[SHA2-199] - _ = x[SHA3-200] - _ = x[SHA512-201] - _ = x[SM3-202] - _ = x[SM4-203] - _ = x[SVE-204] - _ = x[lastID-205] + _ = x[TDX_GUEST-159] + _ = x[TLB_FLUSH_NESTED-160] + _ = x[TME-161] + _ = x[TOPEXT-162] + _ = x[TSCRATEMSR-163] + _ = x[TSXLDTRK-164] + _ = x[VAES-165] + _ = x[VMCBCLEAN-166] + _ = x[VMPL-167] + _ = x[VMSA_REGPROT-168] + _ = x[VMX-169] + _ = x[VPCLMULQDQ-170] + _ = x[VTE-171] + _ = x[WAITPKG-172] + _ = x[WBNOINVD-173] + _ = x[WRMSRNS-174] + _ = x[X87-175] + _ = x[XGETBV1-176] + _ = x[XOP-177] + _ = x[XSAVE-178] + _ = x[XSAVEC-179] + _ = x[XSAVEOPT-180] + _ = x[XSAVES-181] + _ = x[AESARM-182] + _ = x[ARMCPUID-183] + _ = x[ASIMD-184] + _ = x[ASIMDDP-185] + _ = x[ASIMDHP-186] + _ = x[ASIMDRDM-187] + _ = x[ATOMICS-188] + _ = x[CRC32-189] + _ = x[DCPOP-190] + _ = x[EVTSTRM-191] + _ = x[FCMA-192] + _ = x[FP-193] + _ = x[FPHP-194] + _ = x[GPA-195] + _ = x[JSCVT-196] + _ = x[LRCPC-197] + _ = x[PMULL-198] + _ = x[SHA1-199] + _ = x[SHA2-200] + _ = x[SHA3-201] + _ = x[SHA512-202] + _ = x[SM3-203] + _ = x[SM4-204] + _ = x[SVE-205] + _ = x[lastID-206] _ = x[firstID-0] } -const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" +const _FeatureID_name = "firstIDADXAESNIAMD3DNOWAMD3DNOWEXTAMXBF16AMXFP16AMXINT8AMXTILEAVXAVX2AVX512BF16AVX512BITALGAVX512BWAVX512CDAVX512DQAVX512ERAVX512FAVX512FP16AVX512IFMAAVX512PFAVX512VBMIAVX512VBMI2AVX512VLAVX512VNNIAVX512VP2INTERSECTAVX512VPOPCNTDQAVXIFMAAVXNECONVERTAVXSLOWAVXVNNIAVXVNNIINT8BHI_CTRLBMI1BMI2CETIBTCETSSCLDEMOTECLMULCLZEROCMOVCMPCCXADDCMPSB_SCADBS_SHORTCMPXCHG8CPBOOSTCPPCCX16EFER_LMSLE_UNSENQCMDERMSF16CFLUSH_L1DFMA3FMA4FP128FP256FSRMFXSRFXSROPTGFNIHLEHRESETHTTHWAHYBRID_CPUHYPERVISORIA32_ARCH_CAPIA32_CORE_CAPIBPBIBRSIBRS_PREFERREDIBRS_PROVIDES_SMPIBSIBSBRNTRGTIBSFETCHSAMIBSFFVIBSOPCNTIBSOPCNTEXTIBSOPSAMIBSRDWROPCNTIBSRIPINVALIDCHKIBS_FETCH_CTLXIBS_OPDATA4IBS_OPFUSEIBS_PREVENTHOSTIBS_ZEN4IDPRED_CTRLINT_WBINVDINVLPGBLAHFLAMLBRVIRTLZCNTMCAOVERFLOWMCDT_NOMCOMMITMD_CLEARMMXMMXEXTMOVBEMOVDIR64BMOVDIRIMOVSB_ZLMOVUMPXMSRIRCMSRLISTMSR_PAGEFLUSHNRIPSNXOSXSAVEPCONFIGPOPCNTPPINPREFETCHIPSFDRDPRURDRANDRDSEEDRDTSCPRRSBA_CTRLRTMRTM_ALWAYS_ABORTSERIALIZESEVSEV_64BITSEV_ALTERNATIVESEV_DEBUGSWAPSEV_ESSEV_RESTRICTEDSEV_SNPSGXSGXLCSHASMESME_COHERENTSPEC_CTRL_SSBDSRBDS_CTRLSSESSE2SSE3SSE4SSE42SSE4ASSSE3STIBPSTIBP_ALWAYSONSTOSB_SHORTSUCCORSVMSVMDASVMFBASIDSVMLSVMNPSVMPFSVMPFTSYSCALLSYSEETBMTDX_GUESTTLB_FLUSH_NESTEDTMETOPEXTTSCRATEMSRTSXLDTRKVAESVMCBCLEANVMPLVMSA_REGPROTVMXVPCLMULQDQVTEWAITPKGWBNOINVDWRMSRNSX87XGETBV1XOPXSAVEXSAVECXSAVEOPTXSAVESAESARMARMCPUIDASIMDASIMDDPASIMDHPASIMDRDMATOMICSCRC32DCPOPEVTSTRMFCMAFPFPHPGPAJSCVTLRCPCPMULLSHA1SHA2SHA3SHA512SM3SM4SVElastID" -var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 65, 69, 79, 91, 99, 107, 115, 123, 130, 140, 150, 158, 168, 179, 187, 197, 215, 230, 237, 249, 256, 263, 274, 282, 286, 290, 296, 301, 309, 314, 320, 324, 333, 351, 359, 366, 370, 374, 388, 394, 398, 402, 411, 415, 419, 424, 429, 433, 437, 444, 448, 451, 457, 460, 463, 473, 483, 496, 509, 513, 517, 531, 548, 551, 561, 572, 578, 586, 597, 605, 617, 633, 647, 658, 668, 683, 691, 702, 712, 719, 723, 726, 733, 738, 749, 756, 763, 771, 774, 780, 785, 794, 801, 809, 813, 816, 822, 829, 842, 847, 849, 856, 863, 869, 873, 882, 886, 891, 897, 903, 909, 919, 922, 938, 947, 950, 959, 974, 987, 993, 1007, 1014, 1017, 1022, 1025, 1028, 1040, 1054, 1064, 1067, 1071, 1075, 1079, 1084, 1089, 1094, 1099, 1113, 1124, 1130, 1133, 1138, 1147, 1151, 1156, 1161, 1167, 1174, 1179, 1182, 1198, 1201, 1207, 1217, 1225, 1229, 1238, 1242, 1254, 1257, 1267, 1270, 1277, 1285, 1292, 1295, 1302, 1305, 1310, 1316, 1324, 1330, 1336, 1344, 1349, 1356, 1363, 1371, 1378, 1383, 1388, 1395, 1399, 1401, 1405, 1408, 1413, 1418, 1423, 1427, 1431, 1435, 1441, 1444, 1447, 1450, 1456} +var _FeatureID_index = [...]uint16{0, 7, 10, 15, 23, 34, 41, 48, 55, 62, 65, 69, 79, 91, 99, 107, 115, 123, 130, 140, 150, 158, 168, 179, 187, 197, 215, 230, 237, 249, 256, 263, 274, 282, 286, 290, 296, 301, 309, 314, 320, 324, 333, 351, 359, 366, 370, 374, 388, 394, 398, 402, 411, 415, 419, 424, 429, 433, 437, 444, 448, 451, 457, 460, 463, 473, 483, 496, 509, 513, 517, 531, 548, 551, 561, 572, 578, 586, 597, 605, 617, 633, 647, 658, 668, 683, 691, 702, 712, 719, 723, 726, 733, 738, 749, 756, 763, 771, 774, 780, 785, 794, 801, 809, 813, 816, 822, 829, 842, 847, 849, 856, 863, 869, 873, 882, 886, 891, 897, 903, 909, 919, 922, 938, 947, 950, 959, 974, 987, 993, 1007, 1014, 1017, 1022, 1025, 1028, 1040, 1054, 1064, 1067, 1071, 1075, 1079, 1084, 1089, 1094, 1099, 1113, 1124, 1130, 1133, 1138, 1147, 1151, 1156, 1161, 1167, 1174, 1179, 1182, 1191, 1207, 1210, 1216, 1226, 1234, 1238, 1247, 1251, 1263, 1266, 1276, 1279, 1286, 1294, 1301, 1304, 1311, 1314, 1319, 1325, 1333, 1339, 1345, 1353, 1358, 1365, 1372, 1380, 1387, 1392, 1397, 1404, 1408, 1410, 1414, 1417, 1422, 1427, 1432, 1436, 1440, 1444, 1450, 1453, 1456, 1459, 1465} func (i FeatureID) String() string { if i < 0 || i >= FeatureID(len(_FeatureID_index)-1) { diff --git a/vendor/github.com/pelletier/go-toml/v2/ci.sh b/vendor/github.com/pelletier/go-toml/v2/ci.sh index 05c76f2..9ae8b75 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/marshaler.go b/vendor/github.com/pelletier/go-toml/v2/marshaler.go index 6ab1d82..8387526 100644 --- a/vendor/github.com/pelletier/go-toml/v2/marshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/marshaler.go @@ -273,7 +273,7 @@ func (enc *Encoder) encode(b []byte, ctx encoderCtx, v reflect.Value) ([]byte, e return enc.encodeMap(b, ctx, v) case reflect.Struct: return enc.encodeStruct(b, ctx, v) - case reflect.Slice: + case reflect.Slice, reflect.Array: return enc.encodeSlice(b, ctx, v) case reflect.Interface: if v.IsNil() { @@ -930,7 +930,7 @@ func willConvertToTableOrArrayTable(ctx encoderCtx, v reflect.Value) bool { return willConvertToTableOrArrayTable(ctx, v.Elem()) } - if t.Kind() == reflect.Slice { + if t.Kind() == reflect.Slice || t.Kind() == reflect.Array { if v.Len() == 0 { // An empty slice should be a kv = []. return false diff --git a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go index 3935034..5cede08 100644 --- a/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go +++ b/vendor/github.com/pelletier/go-toml/v2/unmarshaler.go @@ -1170,10 +1170,10 @@ func initAndDereferencePointer(v reflect.Value) reflect.Value { // Same as reflect.Value.FieldByIndex, but creates pointers if needed. func fieldByIndex(v reflect.Value, path []int) reflect.Value { - for i, x := range path { + for _, x := range path { v = v.Field(x) - if i < len(path)-1 && v.Kind() == reflect.Ptr { + if v.Kind() == reflect.Ptr { if v.IsNil() { v.Set(reflect.New(v.Type().Elem())) } diff --git a/vendor/golang.org/x/arch/x86/x86asm/plan9x.go b/vendor/golang.org/x/arch/x86/x86asm/plan9x.go index de41794..9e866d8 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/golang.org/x/crypto/LICENSE b/vendor/golang.org/x/crypto/LICENSE index 6a66aea..2a7cf70 100644 --- a/vendor/golang.org/x/crypto/LICENSE +++ b/vendor/golang.org/x/crypto/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. +Copyright 2009 The Go Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its + * Neither the name of Google LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go index 904b57e..28cd99c 100644 --- a/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go +++ b/vendor/golang.org/x/crypto/pbkdf2/pbkdf2.go @@ -16,7 +16,7 @@ Hash Functions SHA-1, SHA-224, SHA-256, SHA-384 and SHA-512 for HMAC. To choose, you can pass the `New` functions from the different SHA packages to pbkdf2.Key. */ -package pbkdf2 // import "golang.org/x/crypto/pbkdf2" +package pbkdf2 import ( "crypto/hmac" diff --git a/vendor/golang.org/x/crypto/sha3/doc.go b/vendor/golang.org/x/crypto/sha3/doc.go index decd8cf..7e02309 100644 --- a/vendor/golang.org/x/crypto/sha3/doc.go +++ b/vendor/golang.org/x/crypto/sha3/doc.go @@ -59,4 +59,4 @@ // They produce output of the same length, with the same security strengths // against all attacks. This means, in particular, that SHA3-256 only has // 128-bit collision resistance, because its output length is 32 bytes. -package sha3 // import "golang.org/x/crypto/sha3" +package sha3 diff --git a/vendor/golang.org/x/crypto/sha3/hashes.go b/vendor/golang.org/x/crypto/sha3/hashes.go index 0d8043f..c544b29 100644 --- a/vendor/golang.org/x/crypto/sha3/hashes.go +++ b/vendor/golang.org/x/crypto/sha3/hashes.go @@ -9,6 +9,7 @@ package sha3 // bytes. import ( + "crypto" "hash" ) @@ -16,39 +17,50 @@ import ( // Its generic security strength is 224 bits against preimage attacks, // and 112 bits against collision attacks. func New224() hash.Hash { - if h := new224Asm(); h != nil { - return h - } - return &state{rate: 144, outputLen: 28, dsbyte: 0x06} + return new224() } // New256 creates a new SHA3-256 hash. // Its generic security strength is 256 bits against preimage attacks, // and 128 bits against collision attacks. func New256() hash.Hash { - if h := new256Asm(); h != nil { - return h - } - return &state{rate: 136, outputLen: 32, dsbyte: 0x06} + return new256() } // New384 creates a new SHA3-384 hash. // Its generic security strength is 384 bits against preimage attacks, // and 192 bits against collision attacks. func New384() hash.Hash { - if h := new384Asm(); h != nil { - return h - } - return &state{rate: 104, outputLen: 48, dsbyte: 0x06} + return new384() } // New512 creates a new SHA3-512 hash. // Its generic security strength is 512 bits against preimage attacks, // and 256 bits against collision attacks. func New512() hash.Hash { - if h := new512Asm(); h != nil { - return h - } + return new512() +} + +func init() { + crypto.RegisterHash(crypto.SHA3_224, New224) + crypto.RegisterHash(crypto.SHA3_256, New256) + crypto.RegisterHash(crypto.SHA3_384, New384) + crypto.RegisterHash(crypto.SHA3_512, New512) +} + +func new224Generic() *state { + return &state{rate: 144, outputLen: 28, dsbyte: 0x06} +} + +func new256Generic() *state { + return &state{rate: 136, outputLen: 32, dsbyte: 0x06} +} + +func new384Generic() *state { + return &state{rate: 104, outputLen: 48, dsbyte: 0x06} +} + +func new512Generic() *state { return &state{rate: 72, outputLen: 64, dsbyte: 0x06} } diff --git a/vendor/golang.org/x/crypto/sha3/hashes_generic.go b/vendor/golang.org/x/crypto/sha3/hashes_generic.go deleted file mode 100644 index c74fc20..0000000 --- a/vendor/golang.org/x/crypto/sha3/hashes_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !gc || purego || !s390x -// +build !gc purego !s390x - -package sha3 - -import ( - "hash" -) - -// new224Asm returns an assembly implementation of SHA3-224 if available, -// otherwise it returns nil. -func new224Asm() hash.Hash { return nil } - -// new256Asm returns an assembly implementation of SHA3-256 if available, -// otherwise it returns nil. -func new256Asm() hash.Hash { return nil } - -// new384Asm returns an assembly implementation of SHA3-384 if available, -// otherwise it returns nil. -func new384Asm() hash.Hash { return nil } - -// new512Asm returns an assembly implementation of SHA3-512 if available, -// otherwise it returns nil. -func new512Asm() hash.Hash { return nil } diff --git a/vendor/golang.org/x/crypto/sha3/keccakf.go b/vendor/golang.org/x/crypto/sha3/keccakf.go index e5faa37..ce48b1d 100644 --- a/vendor/golang.org/x/crypto/sha3/keccakf.go +++ b/vendor/golang.org/x/crypto/sha3/keccakf.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build !amd64 || purego || !gc -// +build !amd64 purego !gc package sha3 diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go index 248a382..b908696 100644 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build amd64 && !purego && gc -// +build amd64,!purego,gc package sha3 diff --git a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s index 4cfa543..99e2f16 100644 --- a/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s +++ b/vendor/golang.org/x/crypto/sha3/keccakf_amd64.s @@ -1,391 +1,5419 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. +// Code generated by command: go run keccakf_amd64_asm.go -out ../keccakf_amd64.s -pkg sha3. DO NOT EDIT. //go:build amd64 && !purego && gc -// +build amd64,!purego,gc -// This code was translated into a form compatible with 6a from the public -// domain sources at https://github.com/gvanas/KeccakCodePackage - -// Offsets in state -#define _ba (0*8) -#define _be (1*8) -#define _bi (2*8) -#define _bo (3*8) -#define _bu (4*8) -#define _ga (5*8) -#define _ge (6*8) -#define _gi (7*8) -#define _go (8*8) -#define _gu (9*8) -#define _ka (10*8) -#define _ke (11*8) -#define _ki (12*8) -#define _ko (13*8) -#define _ku (14*8) -#define _ma (15*8) -#define _me (16*8) -#define _mi (17*8) -#define _mo (18*8) -#define _mu (19*8) -#define _sa (20*8) -#define _se (21*8) -#define _si (22*8) -#define _so (23*8) -#define _su (24*8) - -// Temporary registers -#define rT1 AX - -// Round vars -#define rpState DI -#define rpStack SP - -#define rDa BX -#define rDe CX -#define rDi DX -#define rDo R8 -#define rDu R9 - -#define rBa R10 -#define rBe R11 -#define rBi R12 -#define rBo R13 -#define rBu R14 - -#define rCa SI -#define rCe BP -#define rCi rBi -#define rCo rBo -#define rCu R15 - -#define MOVQ_RBI_RCE MOVQ rBi, rCe -#define XORQ_RT1_RCA XORQ rT1, rCa -#define XORQ_RT1_RCE XORQ rT1, rCe -#define XORQ_RBA_RCU XORQ rBa, rCu -#define XORQ_RBE_RCU XORQ rBe, rCu -#define XORQ_RDU_RCU XORQ rDu, rCu -#define XORQ_RDA_RCA XORQ rDa, rCa -#define XORQ_RDE_RCE XORQ rDe, rCe - -#define mKeccakRound(iState, oState, rc, B_RBI_RCE, G_RT1_RCA, G_RT1_RCE, G_RBA_RCU, K_RT1_RCA, K_RT1_RCE, K_RBA_RCU, M_RT1_RCA, M_RT1_RCE, M_RBE_RCU, S_RDU_RCU, S_RDA_RCA, S_RDE_RCE) \ - /* Prepare round */ \ - MOVQ rCe, rDa; \ - ROLQ $1, rDa; \ - \ - MOVQ _bi(iState), rCi; \ - XORQ _gi(iState), rDi; \ - XORQ rCu, rDa; \ - XORQ _ki(iState), rCi; \ - XORQ _mi(iState), rDi; \ - XORQ rDi, rCi; \ - \ - MOVQ rCi, rDe; \ - ROLQ $1, rDe; \ - \ - MOVQ _bo(iState), rCo; \ - XORQ _go(iState), rDo; \ - XORQ rCa, rDe; \ - XORQ _ko(iState), rCo; \ - XORQ _mo(iState), rDo; \ - XORQ rDo, rCo; \ - \ - MOVQ rCo, rDi; \ - ROLQ $1, rDi; \ - \ - MOVQ rCu, rDo; \ - XORQ rCe, rDi; \ - ROLQ $1, rDo; \ - \ - MOVQ rCa, rDu; \ - XORQ rCi, rDo; \ - ROLQ $1, rDu; \ - \ - /* Result b */ \ - MOVQ _ba(iState), rBa; \ - MOVQ _ge(iState), rBe; \ - XORQ rCo, rDu; \ - MOVQ _ki(iState), rBi; \ - MOVQ _mo(iState), rBo; \ - MOVQ _su(iState), rBu; \ - XORQ rDe, rBe; \ - ROLQ $44, rBe; \ - XORQ rDi, rBi; \ - XORQ rDa, rBa; \ - ROLQ $43, rBi; \ - \ - MOVQ rBe, rCa; \ - MOVQ rc, rT1; \ - ORQ rBi, rCa; \ - XORQ rBa, rT1; \ - XORQ rT1, rCa; \ - MOVQ rCa, _ba(oState); \ - \ - XORQ rDu, rBu; \ - ROLQ $14, rBu; \ - MOVQ rBa, rCu; \ - ANDQ rBe, rCu; \ - XORQ rBu, rCu; \ - MOVQ rCu, _bu(oState); \ - \ - XORQ rDo, rBo; \ - ROLQ $21, rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _bi(oState); \ - \ - NOTQ rBi; \ - ORQ rBa, rBu; \ - ORQ rBo, rBi; \ - XORQ rBo, rBu; \ - XORQ rBe, rBi; \ - MOVQ rBu, _bo(oState); \ - MOVQ rBi, _be(oState); \ - B_RBI_RCE; \ - \ - /* Result g */ \ - MOVQ _gu(iState), rBe; \ - XORQ rDu, rBe; \ - MOVQ _ka(iState), rBi; \ - ROLQ $20, rBe; \ - XORQ rDa, rBi; \ - ROLQ $3, rBi; \ - MOVQ _bo(iState), rBa; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDo, rBa; \ - MOVQ _me(iState), rBo; \ - MOVQ _si(iState), rBu; \ - ROLQ $28, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ga(oState); \ - G_RT1_RCA; \ - \ - XORQ rDe, rBo; \ - ROLQ $45, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ge(oState); \ - G_RT1_RCE; \ - \ - XORQ rDi, rBu; \ - ROLQ $61, rBu; \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _go(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _gu(oState); \ - NOTQ rBu; \ - G_RBA_RCU; \ - \ - ORQ rBu, rBo; \ - XORQ rBi, rBo; \ - MOVQ rBo, _gi(oState); \ - \ - /* Result k */ \ - MOVQ _be(iState), rBa; \ - MOVQ _gi(iState), rBe; \ - MOVQ _ko(iState), rBi; \ - MOVQ _mu(iState), rBo; \ - MOVQ _sa(iState), rBu; \ - XORQ rDi, rBe; \ - ROLQ $6, rBe; \ - XORQ rDo, rBi; \ - ROLQ $25, rBi; \ - MOVQ rBe, rT1; \ - ORQ rBi, rT1; \ - XORQ rDe, rBa; \ - ROLQ $1, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ka(oState); \ - K_RT1_RCA; \ - \ - XORQ rDu, rBo; \ - ROLQ $8, rBo; \ - MOVQ rBi, rT1; \ - ANDQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _ke(oState); \ - K_RT1_RCE; \ - \ - XORQ rDa, rBu; \ - ROLQ $18, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ANDQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _ki(oState); \ - \ - MOVQ rBu, rT1; \ - ORQ rBa, rT1; \ - XORQ rBo, rT1; \ - MOVQ rT1, _ko(oState); \ - \ - ANDQ rBe, rBa; \ - XORQ rBu, rBa; \ - MOVQ rBa, _ku(oState); \ - K_RBA_RCU; \ - \ - /* Result m */ \ - MOVQ _ga(iState), rBe; \ - XORQ rDa, rBe; \ - MOVQ _ke(iState), rBi; \ - ROLQ $36, rBe; \ - XORQ rDe, rBi; \ - MOVQ _bu(iState), rBa; \ - ROLQ $10, rBi; \ - MOVQ rBe, rT1; \ - MOVQ _mi(iState), rBo; \ - ANDQ rBi, rT1; \ - XORQ rDu, rBa; \ - MOVQ _so(iState), rBu; \ - ROLQ $27, rBa; \ - XORQ rBa, rT1; \ - MOVQ rT1, _ma(oState); \ - M_RT1_RCA; \ - \ - XORQ rDi, rBo; \ - ROLQ $15, rBo; \ - MOVQ rBi, rT1; \ - ORQ rBo, rT1; \ - XORQ rBe, rT1; \ - MOVQ rT1, _me(oState); \ - M_RT1_RCE; \ - \ - XORQ rDo, rBu; \ - ROLQ $56, rBu; \ - NOTQ rBo; \ - MOVQ rBo, rT1; \ - ORQ rBu, rT1; \ - XORQ rBi, rT1; \ - MOVQ rT1, _mi(oState); \ - \ - ORQ rBa, rBe; \ - XORQ rBu, rBe; \ - MOVQ rBe, _mu(oState); \ - \ - ANDQ rBa, rBu; \ - XORQ rBo, rBu; \ - MOVQ rBu, _mo(oState); \ - M_RBE_RCU; \ - \ - /* Result s */ \ - MOVQ _bi(iState), rBa; \ - MOVQ _go(iState), rBe; \ - MOVQ _ku(iState), rBi; \ - XORQ rDi, rBa; \ - MOVQ _ma(iState), rBo; \ - ROLQ $62, rBa; \ - XORQ rDo, rBe; \ - MOVQ _se(iState), rBu; \ - ROLQ $55, rBe; \ - \ - XORQ rDu, rBi; \ - MOVQ rBa, rDu; \ - XORQ rDe, rBu; \ - ROLQ $2, rBu; \ - ANDQ rBe, rDu; \ - XORQ rBu, rDu; \ - MOVQ rDu, _su(oState); \ - \ - ROLQ $39, rBi; \ - S_RDU_RCU; \ - NOTQ rBe; \ - XORQ rDa, rBo; \ - MOVQ rBe, rDa; \ - ANDQ rBi, rDa; \ - XORQ rBa, rDa; \ - MOVQ rDa, _sa(oState); \ - S_RDA_RCA; \ - \ - ROLQ $41, rBo; \ - MOVQ rBi, rDe; \ - ORQ rBo, rDe; \ - XORQ rBe, rDe; \ - MOVQ rDe, _se(oState); \ - S_RDE_RCE; \ - \ - MOVQ rBo, rDi; \ - MOVQ rBu, rDo; \ - ANDQ rBu, rDi; \ - ORQ rBa, rDo; \ - XORQ rBi, rDi; \ - XORQ rBo, rDo; \ - MOVQ rDi, _si(oState); \ - MOVQ rDo, _so(oState) \ - -// func keccakF1600(state *[25]uint64) -TEXT ·keccakF1600(SB), 0, $200-8 - MOVQ state+0(FP), rpState +// func keccakF1600(a *[25]uint64) +TEXT ·keccakF1600(SB), $200-8 + MOVQ a+0(FP), DI // Convert the user state into an internal state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) + NOTQ 8(DI) + NOTQ 16(DI) + NOTQ 64(DI) + NOTQ 96(DI) + NOTQ 136(DI) + NOTQ 160(DI) // Execute the KeccakF permutation - MOVQ _ba(rpState), rCa - MOVQ _be(rpState), rCe - MOVQ _bu(rpState), rCu + MOVQ (DI), SI + MOVQ 8(DI), BP + MOVQ 32(DI), R15 + XORQ 40(DI), SI + XORQ 48(DI), BP + XORQ 72(DI), R15 + XORQ 80(DI), SI + XORQ 88(DI), BP + XORQ 112(DI), R15 + XORQ 120(DI), SI + XORQ 128(DI), BP + XORQ 152(DI), R15 + XORQ 160(DI), SI + XORQ 168(DI), BP + MOVQ 176(DI), DX + MOVQ 184(DI), R8 + XORQ 192(DI), R15 - XORQ _ga(rpState), rCa - XORQ _ge(rpState), rCe - XORQ _gu(rpState), rCu + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 - XORQ _ka(rpState), rCa - XORQ _ke(rpState), rCe - XORQ _ku(rpState), rCu + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000000000001, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP - XORQ _ma(rpState), rCa - XORQ _me(rpState), rCe - XORQ _mu(rpState), rCu + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) - XORQ _sa(rpState), rCa - XORQ _se(rpState), rCe - MOVQ _si(rpState), rDi - MOVQ _so(rpState), rDo - XORQ _su(rpState), rCu + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 - mKeccakRound(rpState, rpStack, $0x0000000000000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000008082, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x800000000000808a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008000, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000008a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x0000000000000088, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080008009, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x000000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000008000808b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000000000008b, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008089, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008003, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000000008002, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000000080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x000000000000800a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x800000008000000a, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x8000000080008081, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000000008080, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpState, rpStack, $0x0000000080000001, MOVQ_RBI_RCE, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBA_RCU, XORQ_RT1_RCA, XORQ_RT1_RCE, XORQ_RBE_RCU, XORQ_RDU_RCU, XORQ_RDA_RCA, XORQ_RDE_RCE) - mKeccakRound(rpStack, rpState, $0x8000000080008008, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP, NOP) + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000000008082, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x800000000000808a, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000080008000, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x000000000000808b, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000080000001, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000080008081, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000008009, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x000000000000008a, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000000000088, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000080008009, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x000000008000000a, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x000000008000808b, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x800000000000008b, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000008089, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000008003, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000008002, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000000080, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x000000000000800a, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x800000008000000a, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000080008081, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000000008080, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + MOVQ R12, BP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + XORQ R10, R15 + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + XORQ R11, R15 + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(DI), R12 + XORQ 56(DI), DX + XORQ R15, BX + XORQ 96(DI), R12 + XORQ 136(DI), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(DI), R13 + XORQ 64(DI), R8 + XORQ SI, CX + XORQ 104(DI), R13 + XORQ 144(DI), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (DI), R10 + MOVQ 48(DI), R11 + XORQ R13, R9 + MOVQ 96(DI), R12 + MOVQ 144(DI), R13 + MOVQ 192(DI), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x0000000080000001, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (SP) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(SP) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(SP) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(SP) + MOVQ R12, 8(SP) + MOVQ R12, BP + + // Result g + MOVQ 72(DI), R11 + XORQ R9, R11 + MOVQ 80(DI), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(DI), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(DI), R13 + MOVQ 176(DI), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(SP) + XORQ AX, SI + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(SP) + XORQ AX, BP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(SP) + NOTQ R14 + XORQ R10, R15 + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(SP) + + // Result k + MOVQ 8(DI), R10 + MOVQ 56(DI), R11 + MOVQ 104(DI), R12 + MOVQ 152(DI), R13 + MOVQ 160(DI), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(SP) + XORQ AX, SI + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(SP) + XORQ AX, BP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(SP) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(SP) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(SP) + XORQ R10, R15 + + // Result m + MOVQ 40(DI), R11 + XORQ BX, R11 + MOVQ 88(DI), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(DI), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(DI), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(DI), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(SP) + XORQ AX, SI + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(SP) + XORQ AX, BP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(SP) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(SP) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(SP) + XORQ R11, R15 + + // Result s + MOVQ 16(DI), R10 + MOVQ 64(DI), R11 + MOVQ 112(DI), R12 + XORQ DX, R10 + MOVQ 120(DI), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(DI), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(SP) + ROLQ $0x27, R12 + XORQ R9, R15 + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(SP) + XORQ BX, SI + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(SP) + XORQ CX, BP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(SP) + MOVQ R8, 184(SP) + + // Prepare round + MOVQ BP, BX + ROLQ $0x01, BX + MOVQ 16(SP), R12 + XORQ 56(SP), DX + XORQ R15, BX + XORQ 96(SP), R12 + XORQ 136(SP), DX + XORQ DX, R12 + MOVQ R12, CX + ROLQ $0x01, CX + MOVQ 24(SP), R13 + XORQ 64(SP), R8 + XORQ SI, CX + XORQ 104(SP), R13 + XORQ 144(SP), R8 + XORQ R8, R13 + MOVQ R13, DX + ROLQ $0x01, DX + MOVQ R15, R8 + XORQ BP, DX + ROLQ $0x01, R8 + MOVQ SI, R9 + XORQ R12, R8 + ROLQ $0x01, R9 + + // Result b + MOVQ (SP), R10 + MOVQ 48(SP), R11 + XORQ R13, R9 + MOVQ 96(SP), R12 + MOVQ 144(SP), R13 + MOVQ 192(SP), R14 + XORQ CX, R11 + ROLQ $0x2c, R11 + XORQ DX, R12 + XORQ BX, R10 + ROLQ $0x2b, R12 + MOVQ R11, SI + MOVQ $0x8000000080008008, AX + ORQ R12, SI + XORQ R10, AX + XORQ AX, SI + MOVQ SI, (DI) + XORQ R9, R14 + ROLQ $0x0e, R14 + MOVQ R10, R15 + ANDQ R11, R15 + XORQ R14, R15 + MOVQ R15, 32(DI) + XORQ R8, R13 + ROLQ $0x15, R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 16(DI) + NOTQ R12 + ORQ R10, R14 + ORQ R13, R12 + XORQ R13, R14 + XORQ R11, R12 + MOVQ R14, 24(DI) + MOVQ R12, 8(DI) + NOP + + // Result g + MOVQ 72(SP), R11 + XORQ R9, R11 + MOVQ 80(SP), R12 + ROLQ $0x14, R11 + XORQ BX, R12 + ROLQ $0x03, R12 + MOVQ 24(SP), R10 + MOVQ R11, AX + ORQ R12, AX + XORQ R8, R10 + MOVQ 128(SP), R13 + MOVQ 176(SP), R14 + ROLQ $0x1c, R10 + XORQ R10, AX + MOVQ AX, 40(DI) + NOP + XORQ CX, R13 + ROLQ $0x2d, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 48(DI) + NOP + XORQ DX, R14 + ROLQ $0x3d, R14 + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 64(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 72(DI) + NOTQ R14 + NOP + ORQ R14, R13 + XORQ R12, R13 + MOVQ R13, 56(DI) + + // Result k + MOVQ 8(SP), R10 + MOVQ 56(SP), R11 + MOVQ 104(SP), R12 + MOVQ 152(SP), R13 + MOVQ 160(SP), R14 + XORQ DX, R11 + ROLQ $0x06, R11 + XORQ R8, R12 + ROLQ $0x19, R12 + MOVQ R11, AX + ORQ R12, AX + XORQ CX, R10 + ROLQ $0x01, R10 + XORQ R10, AX + MOVQ AX, 80(DI) + NOP + XORQ R9, R13 + ROLQ $0x08, R13 + MOVQ R12, AX + ANDQ R13, AX + XORQ R11, AX + MOVQ AX, 88(DI) + NOP + XORQ BX, R14 + ROLQ $0x12, R14 + NOTQ R13 + MOVQ R13, AX + ANDQ R14, AX + XORQ R12, AX + MOVQ AX, 96(DI) + MOVQ R14, AX + ORQ R10, AX + XORQ R13, AX + MOVQ AX, 104(DI) + ANDQ R11, R10 + XORQ R14, R10 + MOVQ R10, 112(DI) + NOP + + // Result m + MOVQ 40(SP), R11 + XORQ BX, R11 + MOVQ 88(SP), R12 + ROLQ $0x24, R11 + XORQ CX, R12 + MOVQ 32(SP), R10 + ROLQ $0x0a, R12 + MOVQ R11, AX + MOVQ 136(SP), R13 + ANDQ R12, AX + XORQ R9, R10 + MOVQ 184(SP), R14 + ROLQ $0x1b, R10 + XORQ R10, AX + MOVQ AX, 120(DI) + NOP + XORQ DX, R13 + ROLQ $0x0f, R13 + MOVQ R12, AX + ORQ R13, AX + XORQ R11, AX + MOVQ AX, 128(DI) + NOP + XORQ R8, R14 + ROLQ $0x38, R14 + NOTQ R13 + MOVQ R13, AX + ORQ R14, AX + XORQ R12, AX + MOVQ AX, 136(DI) + ORQ R10, R11 + XORQ R14, R11 + MOVQ R11, 152(DI) + ANDQ R10, R14 + XORQ R13, R14 + MOVQ R14, 144(DI) + NOP + + // Result s + MOVQ 16(SP), R10 + MOVQ 64(SP), R11 + MOVQ 112(SP), R12 + XORQ DX, R10 + MOVQ 120(SP), R13 + ROLQ $0x3e, R10 + XORQ R8, R11 + MOVQ 168(SP), R14 + ROLQ $0x37, R11 + XORQ R9, R12 + MOVQ R10, R9 + XORQ CX, R14 + ROLQ $0x02, R14 + ANDQ R11, R9 + XORQ R14, R9 + MOVQ R9, 192(DI) + ROLQ $0x27, R12 + NOP + NOTQ R11 + XORQ BX, R13 + MOVQ R11, BX + ANDQ R12, BX + XORQ R10, BX + MOVQ BX, 160(DI) + NOP + ROLQ $0x29, R13 + MOVQ R12, CX + ORQ R13, CX + XORQ R11, CX + MOVQ CX, 168(DI) + NOP + MOVQ R13, DX + MOVQ R14, R8 + ANDQ R14, DX + ORQ R10, R8 + XORQ R12, DX + XORQ R13, R8 + MOVQ DX, 176(DI) + MOVQ R8, 184(DI) // Revert the internal state to the user state - NOTQ _be(rpState) - NOTQ _bi(rpState) - NOTQ _go(rpState) - NOTQ _ki(rpState) - NOTQ _mi(rpState) - NOTQ _sa(rpState) - + NOTQ 8(DI) + NOTQ 16(DI) + NOTQ 64(DI) + NOTQ 96(DI) + NOTQ 136(DI) + NOTQ 160(DI) RET diff --git a/vendor/golang.org/x/crypto/sha3/register.go b/vendor/golang.org/x/crypto/sha3/register.go deleted file mode 100644 index 8b4453a..0000000 --- a/vendor/golang.org/x/crypto/sha3/register.go +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.4 -// +build go1.4 - -package sha3 - -import ( - "crypto" -) - -func init() { - crypto.RegisterHash(crypto.SHA3_224, New224) - crypto.RegisterHash(crypto.SHA3_256, New256) - crypto.RegisterHash(crypto.SHA3_384, New384) - crypto.RegisterHash(crypto.SHA3_512, New512) -} diff --git a/vendor/golang.org/x/crypto/sha3/sha3.go b/vendor/golang.org/x/crypto/sha3/sha3.go index 4884d17..afedde5 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3.go +++ b/vendor/golang.org/x/crypto/sha3/sha3.go @@ -23,7 +23,6 @@ const ( type state struct { // Generic sponge components. a [25]uint64 // main state of the hash - buf []byte // points into storage rate int // the number of bytes of state to use // dsbyte contains the "domain separation" bits and the first bit of @@ -40,7 +39,8 @@ type state struct { // Extendable-Output Functions (May 2014)" dsbyte byte - storage storageBuf + i, n int // storage[i:n] is the buffer, i is only used while squeezing + storage [maxRate]byte // Specific to SHA-3 and SHAKE. outputLen int // the default output size in bytes @@ -54,24 +54,18 @@ func (d *state) BlockSize() int { return d.rate } func (d *state) Size() int { return d.outputLen } // Reset clears the internal state by zeroing the sponge state and -// the byte buffer, and setting Sponge.state to absorbing. +// the buffer indexes, and setting Sponge.state to absorbing. func (d *state) Reset() { // Zero the permutation's state. for i := range d.a { d.a[i] = 0 } d.state = spongeAbsorbing - d.buf = d.storage.asBytes()[:0] + d.i, d.n = 0, 0 } func (d *state) clone() *state { ret := *d - if ret.state == spongeAbsorbing { - ret.buf = ret.storage.asBytes()[:len(ret.buf)] - } else { - ret.buf = ret.storage.asBytes()[d.rate-cap(d.buf) : d.rate] - } - return &ret } @@ -82,43 +76,40 @@ func (d *state) permute() { case spongeAbsorbing: // If we're absorbing, we need to xor the input into the state // before applying the permutation. - xorIn(d, d.buf) - d.buf = d.storage.asBytes()[:0] + xorIn(d, d.storage[:d.rate]) + d.n = 0 keccakF1600(&d.a) case spongeSqueezing: // If we're squeezing, we need to apply the permutation before // copying more output. keccakF1600(&d.a) - d.buf = d.storage.asBytes()[:d.rate] - copyOut(d, d.buf) + d.i = 0 + copyOut(d, d.storage[:d.rate]) } } // pads appends the domain separation bits in dsbyte, applies // the multi-bitrate 10..1 padding rule, and permutes the state. -func (d *state) padAndPermute(dsbyte byte) { - if d.buf == nil { - d.buf = d.storage.asBytes()[:0] - } +func (d *state) padAndPermute() { // Pad with this instance's domain-separator bits. We know that there's // at least one byte of space in d.buf because, if it were full, // permute would have been called to empty it. dsbyte also contains the // first one bit for the padding. See the comment in the state struct. - d.buf = append(d.buf, dsbyte) - zerosStart := len(d.buf) - d.buf = d.storage.asBytes()[:d.rate] - for i := zerosStart; i < d.rate; i++ { - d.buf[i] = 0 + d.storage[d.n] = d.dsbyte + d.n++ + for d.n < d.rate { + d.storage[d.n] = 0 + d.n++ } // This adds the final one bit for the padding. Because of the way that // bits are numbered from the LSB upwards, the final bit is the MSB of // the last byte. - d.buf[d.rate-1] ^= 0x80 + d.storage[d.rate-1] ^= 0x80 // Apply the permutation d.permute() d.state = spongeSqueezing - d.buf = d.storage.asBytes()[:d.rate] - copyOut(d, d.buf) + d.n = d.rate + copyOut(d, d.storage[:d.rate]) } // Write absorbs more data into the hash's state. It panics if any @@ -127,28 +118,25 @@ func (d *state) Write(p []byte) (written int, err error) { if d.state != spongeAbsorbing { panic("sha3: Write after Read") } - if d.buf == nil { - d.buf = d.storage.asBytes()[:0] - } written = len(p) for len(p) > 0 { - if len(d.buf) == 0 && len(p) >= d.rate { + if d.n == 0 && len(p) >= d.rate { // The fast path; absorb a full "rate" bytes of input and apply the permutation. xorIn(d, p[:d.rate]) p = p[d.rate:] keccakF1600(&d.a) } else { // The slow path; buffer the input until we can fill the sponge, and then xor it in. - todo := d.rate - len(d.buf) + todo := d.rate - d.n if todo > len(p) { todo = len(p) } - d.buf = append(d.buf, p[:todo]...) + d.n += copy(d.storage[d.n:], p[:todo]) p = p[todo:] // If the sponge is full, apply the permutation. - if len(d.buf) == d.rate { + if d.n == d.rate { d.permute() } } @@ -161,19 +149,19 @@ func (d *state) Write(p []byte) (written int, err error) { func (d *state) Read(out []byte) (n int, err error) { // If we're still absorbing, pad and apply the permutation. if d.state == spongeAbsorbing { - d.padAndPermute(d.dsbyte) + d.padAndPermute() } n = len(out) // Now, do the squeezing. for len(out) > 0 { - n := copy(out, d.buf) - d.buf = d.buf[n:] + n := copy(out, d.storage[d.i:d.n]) + d.i += n out = out[n:] // Apply the permutation if we've squeezed the sponge dry. - if len(d.buf) == 0 { + if d.i == d.rate { d.permute() } } diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go index ec26f14..00d8034 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.go +++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build gc && !purego -// +build gc,!purego package sha3 @@ -144,6 +143,12 @@ func (s *asmState) Write(b []byte) (int, error) { // Read squeezes an arbitrary number of bytes from the sponge. func (s *asmState) Read(out []byte) (n int, err error) { + // The 'compute last message digest' instruction only stores the digest + // at the first operand (dst) for SHAKE functions. + if s.function != shake_128 && s.function != shake_256 { + panic("sha3: can only call Read for SHAKE functions") + } + n = len(out) // need to pad if we were absorbing @@ -203,8 +208,17 @@ func (s *asmState) Sum(b []byte) []byte { // Hash the buffer. Note that we don't clear it because we // aren't updating the state. - klmd(s.function, &a, nil, s.buf) - return append(b, a[:s.outputLen]...) + switch s.function { + case sha3_224, sha3_256, sha3_384, sha3_512: + klmd(s.function, &a, nil, s.buf) + return append(b, a[:s.outputLen]...) + case shake_128, shake_256: + d := make([]byte, s.outputLen, 64) + klmd(s.function, &a, d, s.buf) + return append(b, d[:s.outputLen]...) + default: + panic("sha3: unknown function") + } } // Reset resets the Hash to its initial state. @@ -234,56 +248,56 @@ func (s *asmState) Clone() ShakeHash { return s.clone() } -// new224Asm returns an assembly implementation of SHA3-224 if available, -// otherwise it returns nil. -func new224Asm() hash.Hash { +// new224 returns an assembly implementation of SHA3-224 if available, +// otherwise it returns a generic implementation. +func new224() hash.Hash { if cpu.S390X.HasSHA3 { return newAsmState(sha3_224) } - return nil + return new224Generic() } -// new256Asm returns an assembly implementation of SHA3-256 if available, -// otherwise it returns nil. -func new256Asm() hash.Hash { +// new256 returns an assembly implementation of SHA3-256 if available, +// otherwise it returns a generic implementation. +func new256() hash.Hash { if cpu.S390X.HasSHA3 { return newAsmState(sha3_256) } - return nil + return new256Generic() } -// new384Asm returns an assembly implementation of SHA3-384 if available, -// otherwise it returns nil. -func new384Asm() hash.Hash { +// new384 returns an assembly implementation of SHA3-384 if available, +// otherwise it returns a generic implementation. +func new384() hash.Hash { if cpu.S390X.HasSHA3 { return newAsmState(sha3_384) } - return nil + return new384Generic() } -// new512Asm returns an assembly implementation of SHA3-512 if available, -// otherwise it returns nil. -func new512Asm() hash.Hash { +// new512 returns an assembly implementation of SHA3-512 if available, +// otherwise it returns a generic implementation. +func new512() hash.Hash { if cpu.S390X.HasSHA3 { return newAsmState(sha3_512) } - return nil + return new512Generic() } -// newShake128Asm returns an assembly implementation of SHAKE-128 if available, -// otherwise it returns nil. -func newShake128Asm() ShakeHash { +// newShake128 returns an assembly implementation of SHAKE-128 if available, +// otherwise it returns a generic implementation. +func newShake128() ShakeHash { if cpu.S390X.HasSHA3 { return newAsmState(shake_128) } - return nil + return newShake128Generic() } -// newShake256Asm returns an assembly implementation of SHAKE-256 if available, -// otherwise it returns nil. -func newShake256Asm() ShakeHash { +// newShake256 returns an assembly implementation of SHAKE-256 if available, +// otherwise it returns a generic implementation. +func newShake256() ShakeHash { if cpu.S390X.HasSHA3 { return newAsmState(shake_256) } - return nil + return newShake256Generic() } diff --git a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s index a0e051b..826b862 100644 --- a/vendor/golang.org/x/crypto/sha3/sha3_s390x.s +++ b/vendor/golang.org/x/crypto/sha3/sha3_s390x.s @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build gc && !purego -// +build gc,!purego #include "textflag.h" diff --git a/vendor/golang.org/x/crypto/sha3/shake.go b/vendor/golang.org/x/crypto/sha3/shake.go index bb69984..a01ef43 100644 --- a/vendor/golang.org/x/crypto/sha3/shake.go +++ b/vendor/golang.org/x/crypto/sha3/shake.go @@ -85,9 +85,9 @@ func newCShake(N, S []byte, rate, outputLen int, dsbyte byte) ShakeHash { // leftEncode returns max 9 bytes c.initBlock = make([]byte, 0, 9*2+len(N)+len(S)) - c.initBlock = append(c.initBlock, leftEncode(uint64(len(N)*8))...) + c.initBlock = append(c.initBlock, leftEncode(uint64(len(N))*8)...) c.initBlock = append(c.initBlock, N...) - c.initBlock = append(c.initBlock, leftEncode(uint64(len(S)*8))...) + c.initBlock = append(c.initBlock, leftEncode(uint64(len(S))*8)...) c.initBlock = append(c.initBlock, S...) c.Write(bytepad(c.initBlock, c.rate)) return &c @@ -115,19 +115,21 @@ func (c *state) Clone() ShakeHash { // Its generic security strength is 128 bits against all attacks if at // least 32 bytes of its output are used. func NewShake128() ShakeHash { - if h := newShake128Asm(); h != nil { - return h - } - return &state{rate: rate128, outputLen: 32, dsbyte: dsbyteShake} + return newShake128() } // NewShake256 creates a new SHAKE256 variable-output-length ShakeHash. // Its generic security strength is 256 bits against all attacks if // at least 64 bytes of its output are used. func NewShake256() ShakeHash { - if h := newShake256Asm(); h != nil { - return h - } + return newShake256() +} + +func newShake128Generic() *state { + return &state{rate: rate128, outputLen: 32, dsbyte: dsbyteShake} +} + +func newShake256Generic() *state { return &state{rate: rate256, outputLen: 64, dsbyte: dsbyteShake} } diff --git a/vendor/golang.org/x/crypto/sha3/shake_generic.go b/vendor/golang.org/x/crypto/sha3/shake_generic.go deleted file mode 100644 index 5c0710e..0000000 --- a/vendor/golang.org/x/crypto/sha3/shake_generic.go +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2017 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !gc || purego || !s390x -// +build !gc purego !s390x - -package sha3 - -// newShake128Asm returns an assembly implementation of SHAKE-128 if available, -// otherwise it returns nil. -func newShake128Asm() ShakeHash { - return nil -} - -// newShake256Asm returns an assembly implementation of SHAKE-256 if available, -// otherwise it returns nil. -func newShake256Asm() ShakeHash { - return nil -} diff --git a/vendor/golang.org/x/crypto/sha3/xor.go b/vendor/golang.org/x/crypto/sha3/xor.go index 59c8eb9..6ada5c9 100644 --- a/vendor/golang.org/x/crypto/sha3/xor.go +++ b/vendor/golang.org/x/crypto/sha3/xor.go @@ -2,23 +2,39 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build (!amd64 && !386 && !ppc64le) || purego -// +build !amd64,!386,!ppc64le purego - package sha3 -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate]byte +import ( + "crypto/subtle" + "encoding/binary" + "unsafe" -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(b) -} - -var ( - xorIn = xorInGeneric - copyOut = copyOutGeneric - xorInUnaligned = xorInGeneric - copyOutUnaligned = copyOutGeneric + "golang.org/x/sys/cpu" ) -const xorImplementationUnaligned = "generic" +// xorIn xors the bytes in buf into the state. +func xorIn(d *state, buf []byte) { + if cpu.IsBigEndian { + for i := 0; len(buf) >= 8; i++ { + a := binary.LittleEndian.Uint64(buf) + d.a[i] ^= a + buf = buf[8:] + } + } else { + ab := (*[25 * 64 / 8]byte)(unsafe.Pointer(&d.a)) + subtle.XORBytes(ab[:], ab[:], buf) + } +} + +// copyOut copies uint64s to a byte buffer. +func copyOut(d *state, b []byte) { + if cpu.IsBigEndian { + for i := 0; len(b) >= 8; i++ { + binary.LittleEndian.PutUint64(b, d.a[i]) + b = b[8:] + } + } else { + ab := (*[25 * 64 / 8]byte)(unsafe.Pointer(&d.a)) + copy(b, ab[:]) + } +} diff --git a/vendor/golang.org/x/crypto/sha3/xor_generic.go b/vendor/golang.org/x/crypto/sha3/xor_generic.go deleted file mode 100644 index 8d94771..0000000 --- a/vendor/golang.org/x/crypto/sha3/xor_generic.go +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package sha3 - -import "encoding/binary" - -// xorInGeneric xors the bytes in buf into the state; it -// makes no non-portable assumptions about memory layout -// or alignment. -func xorInGeneric(d *state, buf []byte) { - n := len(buf) / 8 - - for i := 0; i < n; i++ { - a := binary.LittleEndian.Uint64(buf) - d.a[i] ^= a - buf = buf[8:] - } -} - -// copyOutGeneric copies uint64s to a byte buffer. -func copyOutGeneric(d *state, b []byte) { - for i := 0; len(b) >= 8; i++ { - binary.LittleEndian.PutUint64(b, d.a[i]) - b = b[8:] - } -} diff --git a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go b/vendor/golang.org/x/crypto/sha3/xor_unaligned.go deleted file mode 100644 index 1ce6062..0000000 --- a/vendor/golang.org/x/crypto/sha3/xor_unaligned.go +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2015 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build (amd64 || 386 || ppc64le) && !purego -// +build amd64 386 ppc64le -// +build !purego - -package sha3 - -import "unsafe" - -// A storageBuf is an aligned array of maxRate bytes. -type storageBuf [maxRate / 8]uint64 - -func (b *storageBuf) asBytes() *[maxRate]byte { - return (*[maxRate]byte)(unsafe.Pointer(b)) -} - -// xorInUnaligned uses unaligned reads and writes to update d.a to contain d.a -// XOR buf. -func xorInUnaligned(d *state, buf []byte) { - n := len(buf) - bw := (*[maxRate / 8]uint64)(unsafe.Pointer(&buf[0]))[: n/8 : n/8] - if n >= 72 { - d.a[0] ^= bw[0] - d.a[1] ^= bw[1] - d.a[2] ^= bw[2] - d.a[3] ^= bw[3] - d.a[4] ^= bw[4] - d.a[5] ^= bw[5] - d.a[6] ^= bw[6] - d.a[7] ^= bw[7] - d.a[8] ^= bw[8] - } - if n >= 104 { - d.a[9] ^= bw[9] - d.a[10] ^= bw[10] - d.a[11] ^= bw[11] - d.a[12] ^= bw[12] - } - if n >= 136 { - d.a[13] ^= bw[13] - d.a[14] ^= bw[14] - d.a[15] ^= bw[15] - d.a[16] ^= bw[16] - } - if n >= 144 { - d.a[17] ^= bw[17] - } - if n >= 168 { - d.a[18] ^= bw[18] - d.a[19] ^= bw[19] - d.a[20] ^= bw[20] - } -} - -func copyOutUnaligned(d *state, buf []byte) { - ab := (*[maxRate]uint8)(unsafe.Pointer(&d.a[0])) - copy(buf, ab[:]) -} - -var ( - xorIn = xorInUnaligned - copyOut = copyOutUnaligned -) - -const xorImplementationUnaligned = "unaligned" diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE index 6a66aea..2a7cf70 100644 --- a/vendor/golang.org/x/net/LICENSE +++ b/vendor/golang.org/x/net/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. +Copyright 2009 The Go Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its + * Neither the name of Google LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/vendor/golang.org/x/net/html/doc.go b/vendor/golang.org/x/net/html/doc.go index 2466ae3..3a7e5ab 100644 --- a/vendor/golang.org/x/net/html/doc.go +++ b/vendor/golang.org/x/net/html/doc.go @@ -104,7 +104,7 @@ tokenization, and tokenization and tree construction stages of the WHATWG HTML parsing specification respectively. While the tokenizer parses and normalizes individual HTML tokens, only the parser constructs the DOM tree from the tokenized HTML, as described in the tree construction stage of the -specification, dynamically modifying or extending the docuemnt's DOM tree. +specification, dynamically modifying or extending the document's DOM tree. If your use case requires semantically well-formed HTML documents, as defined by the WHATWG specification, the parser should be used rather than the tokenizer. diff --git a/vendor/golang.org/x/net/html/render.go b/vendor/golang.org/x/net/html/render.go index 8b28031..e8c1233 100644 --- a/vendor/golang.org/x/net/html/render.go +++ b/vendor/golang.org/x/net/html/render.go @@ -194,9 +194,8 @@ func render1(w writer, n *Node) error { } } - // Render any child nodes. - switch n.Data { - case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": + // Render any child nodes + if childTextNodesAreLiteral(n) { for c := n.FirstChild; c != nil; c = c.NextSibling { if c.Type == TextNode { if _, err := w.WriteString(c.Data); err != nil { @@ -213,7 +212,7 @@ func render1(w writer, n *Node) error { // last element in the file, with no closing tag. return plaintextAbort } - default: + } else { for c := n.FirstChild; c != nil; c = c.NextSibling { if err := render1(w, c); err != nil { return err @@ -231,6 +230,27 @@ func render1(w writer, n *Node) error { return w.WriteByte('>') } +func childTextNodesAreLiteral(n *Node) bool { + // Per WHATWG HTML 13.3, if the parent of the current node is a style, + // script, xmp, iframe, noembed, noframes, or plaintext element, and the + // current node is a text node, append the value of the node's data + // literally. The specification is not explicit about it, but we only + // enforce this if we are in the HTML namespace (i.e. when the namespace is + // ""). + // NOTE: we also always include noscript elements, although the + // specification states that they should only be rendered as such if + // scripting is enabled for the node (which is not something we track). + if n.Namespace != "" { + return false + } + switch n.Data { + case "iframe", "noembed", "noframes", "noscript", "plaintext", "script", "style", "xmp": + return true + default: + return false + } +} + // writeQuoted writes s to w surrounded by quotes. Normally it will use double // quotes, but if s contains a double quote, it will use single quotes. // It is used for writing the identifiers in a doctype declaration. diff --git a/vendor/golang.org/x/net/html/token.go b/vendor/golang.org/x/net/html/token.go index 5c2a1f4..3c57880 100644 --- a/vendor/golang.org/x/net/html/token.go +++ b/vendor/golang.org/x/net/html/token.go @@ -910,10 +910,16 @@ func (z *Tokenizer) readTagAttrKey() { return } switch c { - case ' ', '\n', '\r', '\t', '\f', '/': - z.pendingAttr[0].end = z.raw.end - 1 - return - case '=', '>': + case '=': + if z.pendingAttr[0].start+1 == z.raw.end { + // WHATWG 13.2.5.32, if we see an equals sign before the attribute name + // begins, we treat it as a character in the attribute name and continue. + continue + } + fallthrough + case ' ', '\n', '\r', '\t', '\f', '/', '>': + // WHATWG 13.2.5.33 Attribute name state + // We need to reconsume the char in the after attribute name state to support the / character z.raw.end-- z.pendingAttr[0].end = z.raw.end return @@ -932,6 +938,11 @@ func (z *Tokenizer) readTagAttrVal() { if z.err != nil { return } + if c == '/' { + // WHATWG 13.2.5.34 After attribute name state + // U+002F SOLIDUS (/) - Switch to the self-closing start tag state. + return + } if c != '=' { z.raw.end-- return diff --git a/vendor/golang.org/x/net/http/httpguts/httplex.go b/vendor/golang.org/x/net/http/httpguts/httplex.go index 6e071e8..9b4de94 100644 --- a/vendor/golang.org/x/net/http/httpguts/httplex.go +++ b/vendor/golang.org/x/net/http/httpguts/httplex.go @@ -12,7 +12,7 @@ import ( "golang.org/x/net/idna" ) -var isTokenTable = [127]bool{ +var isTokenTable = [256]bool{ '!': true, '#': true, '$': true, @@ -93,12 +93,7 @@ var isTokenTable = [127]bool{ } func IsTokenRune(r rune) bool { - i := int(r) - return i < len(isTokenTable) && isTokenTable[i] -} - -func isNotToken(r rune) bool { - return !IsTokenRune(r) + return r < utf8.RuneSelf && isTokenTable[byte(r)] } // HeaderValuesContainsToken reports whether any string in values @@ -202,8 +197,8 @@ func ValidHeaderFieldName(v string) bool { if len(v) == 0 { return false } - for _, r := range v { - if !IsTokenRune(r) { + for i := 0; i < len(v); i++ { + if !isTokenTable[v[i]] { return false } } diff --git a/vendor/golang.org/x/net/http2/Dockerfile b/vendor/golang.org/x/net/http2/Dockerfile deleted file mode 100644 index 8512245..0000000 --- a/vendor/golang.org/x/net/http2/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -# -# This Dockerfile builds a recent curl with HTTP/2 client support, using -# a recent nghttp2 build. -# -# See the Makefile for how to tag it. If Docker and that image is found, the -# Go tests use this curl binary for integration tests. -# - -FROM ubuntu:trusty - -RUN apt-get update && \ - apt-get upgrade -y && \ - apt-get install -y git-core build-essential wget - -RUN apt-get install -y --no-install-recommends \ - autotools-dev libtool pkg-config zlib1g-dev \ - libcunit1-dev libssl-dev libxml2-dev libevent-dev \ - automake autoconf - -# The list of packages nghttp2 recommends for h2load: -RUN apt-get install -y --no-install-recommends make binutils \ - autoconf automake autotools-dev \ - libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev \ - libev-dev libevent-dev libjansson-dev libjemalloc-dev \ - cython python3.4-dev python-setuptools - -# Note: setting NGHTTP2_VER before the git clone, so an old git clone isn't cached: -ENV NGHTTP2_VER 895da9a -RUN cd /root && git clone https://github.com/tatsuhiro-t/nghttp2.git - -WORKDIR /root/nghttp2 -RUN git reset --hard $NGHTTP2_VER -RUN autoreconf -i -RUN automake -RUN autoconf -RUN ./configure -RUN make -RUN make install - -WORKDIR /root -RUN wget https://curl.se/download/curl-7.45.0.tar.gz -RUN tar -zxvf curl-7.45.0.tar.gz -WORKDIR /root/curl-7.45.0 -RUN ./configure --with-ssl --with-nghttp2=/usr/local -RUN make -RUN make install -RUN ldconfig - -CMD ["-h"] -ENTRYPOINT ["/usr/local/bin/curl"] - diff --git a/vendor/golang.org/x/net/http2/Makefile b/vendor/golang.org/x/net/http2/Makefile deleted file mode 100644 index 55fd826..0000000 --- a/vendor/golang.org/x/net/http2/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -curlimage: - docker build -t gohttp2/curl . - diff --git a/vendor/golang.org/x/net/http2/databuffer.go b/vendor/golang.org/x/net/http2/databuffer.go index a3067f8..e6f55cb 100644 --- a/vendor/golang.org/x/net/http2/databuffer.go +++ b/vendor/golang.org/x/net/http2/databuffer.go @@ -20,41 +20,44 @@ import ( // TODO: Benchmark to determine if the pools are necessary. The GC may have // improved enough that we can instead allocate chunks like this: // make([]byte, max(16<<10, expectedBytesRemaining)) -var ( - dataChunkSizeClasses = []int{ - 1 << 10, - 2 << 10, - 4 << 10, - 8 << 10, - 16 << 10, - } - dataChunkPools = [...]sync.Pool{ - {New: func() interface{} { return make([]byte, 1<<10) }}, - {New: func() interface{} { return make([]byte, 2<<10) }}, - {New: func() interface{} { return make([]byte, 4<<10) }}, - {New: func() interface{} { return make([]byte, 8<<10) }}, - {New: func() interface{} { return make([]byte, 16<<10) }}, - } -) +var dataChunkPools = [...]sync.Pool{ + {New: func() interface{} { return new([1 << 10]byte) }}, + {New: func() interface{} { return new([2 << 10]byte) }}, + {New: func() interface{} { return new([4 << 10]byte) }}, + {New: func() interface{} { return new([8 << 10]byte) }}, + {New: func() interface{} { return new([16 << 10]byte) }}, +} func getDataBufferChunk(size int64) []byte { - i := 0 - for ; i < len(dataChunkSizeClasses)-1; i++ { - if size <= int64(dataChunkSizeClasses[i]) { - break - } + switch { + case size <= 1<<10: + return dataChunkPools[0].Get().(*[1 << 10]byte)[:] + case size <= 2<<10: + return dataChunkPools[1].Get().(*[2 << 10]byte)[:] + case size <= 4<<10: + return dataChunkPools[2].Get().(*[4 << 10]byte)[:] + case size <= 8<<10: + return dataChunkPools[3].Get().(*[8 << 10]byte)[:] + default: + return dataChunkPools[4].Get().(*[16 << 10]byte)[:] } - return dataChunkPools[i].Get().([]byte) } func putDataBufferChunk(p []byte) { - for i, n := range dataChunkSizeClasses { - if len(p) == n { - dataChunkPools[i].Put(p) - return - } + switch len(p) { + case 1 << 10: + dataChunkPools[0].Put((*[1 << 10]byte)(p)) + case 2 << 10: + dataChunkPools[1].Put((*[2 << 10]byte)(p)) + case 4 << 10: + dataChunkPools[2].Put((*[4 << 10]byte)(p)) + case 8 << 10: + dataChunkPools[3].Put((*[8 << 10]byte)(p)) + case 16 << 10: + dataChunkPools[4].Put((*[16 << 10]byte)(p)) + default: + panic(fmt.Sprintf("unexpected buffer len=%v", len(p))) } - panic(fmt.Sprintf("unexpected buffer len=%v", len(p))) } // dataBuffer is an io.ReadWriter backed by a list of data chunks. diff --git a/vendor/golang.org/x/net/http2/frame.go b/vendor/golang.org/x/net/http2/frame.go index c1f6b90..105c3b2 100644 --- a/vendor/golang.org/x/net/http2/frame.go +++ b/vendor/golang.org/x/net/http2/frame.go @@ -490,6 +490,9 @@ func terminalReadFrameError(err error) bool { // returned error is ErrFrameTooLarge. Other errors may be of type // ConnectionError, StreamError, or anything else from the underlying // reader. +// +// If ReadFrame returns an error and a non-nil Frame, the Frame's StreamID +// indicates the stream responsible for the error. func (fr *Framer) ReadFrame() (Frame, error) { fr.errDetail = nil if fr.lastFrame != nil { @@ -1510,19 +1513,18 @@ func (mh *MetaHeadersFrame) checkPseudos() error { } func (fr *Framer) maxHeaderStringLen() int { - v := fr.maxHeaderListSize() - if uint32(int(v)) == v { - return int(v) + v := int(fr.maxHeaderListSize()) + if v < 0 { + // If maxHeaderListSize overflows an int, use no limit (0). + return 0 } - // They had a crazy big number for MaxHeaderBytes anyway, - // so give them unlimited header lengths: - return 0 + return v } // readMetaFrame returns 0 or more CONTINUATION frames from fr and // merge them into the provided hf and returns a MetaHeadersFrame // with the decoded hpack values. -func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { +func (fr *Framer) readMetaFrame(hf *HeadersFrame) (Frame, error) { if fr.AllowIllegalReads { return nil, errors.New("illegal use of AllowIllegalReads with ReadMetaHeaders") } @@ -1565,6 +1567,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { if size > remainSize { hdec.SetEmitEnabled(false) mh.Truncated = true + remainSize = 0 return } remainSize -= size @@ -1577,8 +1580,38 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { var hc headersOrContinuation = hf for { frag := hc.HeaderBlockFragment() + + // Avoid parsing large amounts of headers that we will then discard. + // If the sender exceeds the max header list size by too much, + // skip parsing the fragment and close the connection. + // + // "Too much" is either any CONTINUATION frame after we've already + // exceeded the max header list size (in which case remainSize is 0), + // or a frame whose encoded size is more than twice the remaining + // header list bytes we're willing to accept. + if int64(len(frag)) > int64(2*remainSize) { + if VerboseLogs { + log.Printf("http2: header list too large") + } + // It would be nice to send a RST_STREAM before sending the GOAWAY, + // but the structure of the server's frame writer makes this difficult. + return mh, ConnectionError(ErrCodeProtocol) + } + + // Also close the connection after any CONTINUATION frame following an + // invalid header, since we stop tracking the size of the headers after + // an invalid one. + if invalid != nil { + if VerboseLogs { + log.Printf("http2: invalid header: %v", invalid) + } + // It would be nice to send a RST_STREAM before sending the GOAWAY, + // but the structure of the server's frame writer makes this difficult. + return mh, ConnectionError(ErrCodeProtocol) + } + if _, err := hdec.Write(frag); err != nil { - return nil, ConnectionError(ErrCodeCompression) + return mh, ConnectionError(ErrCodeCompression) } if hc.HeadersEnded() { @@ -1595,7 +1628,7 @@ func (fr *Framer) readMetaFrame(hf *HeadersFrame) (*MetaHeadersFrame, error) { mh.HeadersFrame.invalidate() if err := hdec.Close(); err != nil { - return nil, ConnectionError(ErrCodeCompression) + return mh, ConnectionError(ErrCodeCompression) } if invalid != nil { fr.errDetail = invalid diff --git a/vendor/golang.org/x/net/http2/go111.go b/vendor/golang.org/x/net/http2/go111.go deleted file mode 100644 index 5bf62b0..0000000 --- a/vendor/golang.org/x/net/http2/go111.go +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.11 -// +build go1.11 - -package http2 - -import ( - "net/http/httptrace" - "net/textproto" -) - -func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { - return trace != nil && trace.WroteHeaderField != nil -} - -func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { - if trace != nil && trace.WroteHeaderField != nil { - trace.WroteHeaderField(k, []string{v}) - } -} - -func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { - if trace != nil { - return trace.Got1xxResponse - } - return nil -} diff --git a/vendor/golang.org/x/net/http2/go115.go b/vendor/golang.org/x/net/http2/go115.go deleted file mode 100644 index 908af1a..0000000 --- a/vendor/golang.org/x/net/http2/go115.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.15 -// +build go1.15 - -package http2 - -import ( - "context" - "crypto/tls" -) - -// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS -// connection. -func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { - dialer := &tls.Dialer{ - Config: cfg, - } - cn, err := dialer.DialContext(ctx, network, addr) - if err != nil { - return nil, err - } - tlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed - return tlsCn, nil -} diff --git a/vendor/golang.org/x/net/http2/go118.go b/vendor/golang.org/x/net/http2/go118.go deleted file mode 100644 index aca4b2b..0000000 --- a/vendor/golang.org/x/net/http2/go118.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.18 -// +build go1.18 - -package http2 - -import ( - "crypto/tls" - "net" -) - -func tlsUnderlyingConn(tc *tls.Conn) net.Conn { - return tc.NetConn() -} diff --git a/vendor/golang.org/x/net/http2/h2c/h2c.go b/vendor/golang.org/x/net/http2/h2c/h2c.go index a72bbed..2d6bf86 100644 --- a/vendor/golang.org/x/net/http2/h2c/h2c.go +++ b/vendor/golang.org/x/net/http2/h2c/h2c.go @@ -44,7 +44,7 @@ func init() { // HTTP/1, but unlikely to occur in practice and (2) Upgrading from HTTP/1 to // h2c - this works by using the HTTP/1 Upgrade header to request an upgrade to // h2c. When either of those situations occur we hijack the HTTP/1 connection, -// convert it to a HTTP/2 connection and pass the net.Conn to http2.ServeConn. +// convert it to an HTTP/2 connection and pass the net.Conn to http2.ServeConn. type h2cHandler struct { Handler http.Handler s *http2.Server diff --git a/vendor/golang.org/x/net/http2/http2.go b/vendor/golang.org/x/net/http2/http2.go index 6f2df28..7688c35 100644 --- a/vendor/golang.org/x/net/http2/http2.go +++ b/vendor/golang.org/x/net/http2/http2.go @@ -17,15 +17,18 @@ package http2 // import "golang.org/x/net/http2" import ( "bufio" + "context" "crypto/tls" + "errors" "fmt" - "io" + "net" "net/http" "os" "sort" "strconv" "strings" "sync" + "time" "golang.org/x/net/http/httpguts" ) @@ -210,12 +213,6 @@ type stringWriter interface { WriteString(s string) (n int, err error) } -// A gate lets two goroutines coordinate their activities. -type gate chan struct{} - -func (g gate) Done() { g <- struct{}{} } -func (g gate) Wait() { <-g } - // A closeWaiter is like a sync.WaitGroup but only goes 1 to 0 (open to closed). type closeWaiter chan struct{} @@ -241,13 +238,19 @@ func (cw closeWaiter) Wait() { // Its buffered writer is lazily allocated as needed, to minimize // idle memory usage with many connections. type bufferedWriter struct { - _ incomparable - w io.Writer // immutable - bw *bufio.Writer // non-nil when data is buffered + _ incomparable + group synctestGroupInterface // immutable + conn net.Conn // immutable + bw *bufio.Writer // non-nil when data is buffered + byteTimeout time.Duration // immutable, WriteByteTimeout } -func newBufferedWriter(w io.Writer) *bufferedWriter { - return &bufferedWriter{w: w} +func newBufferedWriter(group synctestGroupInterface, conn net.Conn, timeout time.Duration) *bufferedWriter { + return &bufferedWriter{ + group: group, + conn: conn, + byteTimeout: timeout, + } } // bufWriterPoolBufferSize is the size of bufio.Writer's @@ -274,7 +277,7 @@ func (w *bufferedWriter) Available() int { func (w *bufferedWriter) Write(p []byte) (n int, err error) { if w.bw == nil { bw := bufWriterPool.Get().(*bufio.Writer) - bw.Reset(w.w) + bw.Reset((*bufferedWriterTimeoutWriter)(w)) w.bw = bw } return w.bw.Write(p) @@ -292,6 +295,38 @@ func (w *bufferedWriter) Flush() error { return err } +type bufferedWriterTimeoutWriter bufferedWriter + +func (w *bufferedWriterTimeoutWriter) Write(p []byte) (n int, err error) { + return writeWithByteTimeout(w.group, w.conn, w.byteTimeout, p) +} + +// writeWithByteTimeout writes to conn. +// If more than timeout passes without any bytes being written to the connection, +// the write fails. +func writeWithByteTimeout(group synctestGroupInterface, conn net.Conn, timeout time.Duration, p []byte) (n int, err error) { + if timeout <= 0 { + return conn.Write(p) + } + for { + var now time.Time + if group == nil { + now = time.Now() + } else { + now = group.Now() + } + conn.SetWriteDeadline(now.Add(timeout)) + nn, err := conn.Write(p[n:]) + n += nn + if n == len(p) || nn == 0 || !errors.Is(err, os.ErrDeadlineExceeded) { + // Either we finished the write, made no progress, or hit the deadline. + // Whichever it is, we're done now. + conn.SetWriteDeadline(time.Time{}) + return n, err + } + } +} + func mustUint31(v int32) uint32 { if v < 0 || v > 2147483647 { panic("out of range") @@ -383,3 +418,14 @@ func validPseudoPath(v string) bool { // makes that struct also non-comparable, and generally doesn't add // any size (as long as it's first). type incomparable [0]func() + +// synctestGroupInterface is the methods of synctestGroup used by Server and Transport. +// It's defined as an interface here to let us keep synctestGroup entirely test-only +// and not a part of non-test builds. +type synctestGroupInterface interface { + Join() + Now() time.Time + NewTimer(d time.Duration) timer + AfterFunc(d time.Duration, f func()) timer + ContextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) +} diff --git a/vendor/golang.org/x/net/http2/not_go111.go b/vendor/golang.org/x/net/http2/not_go111.go deleted file mode 100644 index cc0baa8..0000000 --- a/vendor/golang.org/x/net/http2/not_go111.go +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2018 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.11 -// +build !go1.11 - -package http2 - -import ( - "net/http/httptrace" - "net/textproto" -) - -func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { return false } - -func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) {} - -func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { - return nil -} diff --git a/vendor/golang.org/x/net/http2/not_go115.go b/vendor/golang.org/x/net/http2/not_go115.go deleted file mode 100644 index e6c04cf..0000000 --- a/vendor/golang.org/x/net/http2/not_go115.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.15 -// +build !go1.15 - -package http2 - -import ( - "context" - "crypto/tls" -) - -// dialTLSWithContext opens a TLS connection. -func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { - cn, err := tls.Dial(network, addr, cfg) - if err != nil { - return nil, err - } - if err := cn.Handshake(); err != nil { - return nil, err - } - if cfg.InsecureSkipVerify { - return cn, nil - } - if err := cn.VerifyHostname(cfg.ServerName); err != nil { - return nil, err - } - return cn, nil -} diff --git a/vendor/golang.org/x/net/http2/not_go118.go b/vendor/golang.org/x/net/http2/not_go118.go deleted file mode 100644 index eab532c..0000000 --- a/vendor/golang.org/x/net/http2/not_go118.go +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.18 -// +build !go1.18 - -package http2 - -import ( - "crypto/tls" - "net" -) - -func tlsUnderlyingConn(tc *tls.Conn) net.Conn { - return nil -} diff --git a/vendor/golang.org/x/net/http2/pipe.go b/vendor/golang.org/x/net/http2/pipe.go index 684d984..3b9f06b 100644 --- a/vendor/golang.org/x/net/http2/pipe.go +++ b/vendor/golang.org/x/net/http2/pipe.go @@ -77,7 +77,10 @@ func (p *pipe) Read(d []byte) (n int, err error) { } } -var errClosedPipeWrite = errors.New("write on closed buffer") +var ( + errClosedPipeWrite = errors.New("write on closed buffer") + errUninitializedPipeWrite = errors.New("write on uninitialized buffer") +) // Write copies bytes from p into the buffer and wakes a reader. // It is an error to write more data than the buffer can hold. @@ -91,6 +94,12 @@ func (p *pipe) Write(d []byte) (n int, err error) { if p.err != nil || p.breakErr != nil { return 0, errClosedPipeWrite } + // pipe.setBuffer is never invoked, leaving the buffer uninitialized. + // We shouldn't try to write to an uninitialized pipe, + // but returning an error is better than panicking. + if p.b == nil { + return 0, errUninitializedPipeWrite + } return p.b.Write(d) } diff --git a/vendor/golang.org/x/net/http2/server.go b/vendor/golang.org/x/net/http2/server.go index cd057f3..617b4a4 100644 --- a/vendor/golang.org/x/net/http2/server.go +++ b/vendor/golang.org/x/net/http2/server.go @@ -29,6 +29,7 @@ import ( "bufio" "bytes" "context" + "crypto/rand" "crypto/tls" "errors" "fmt" @@ -52,10 +53,14 @@ import ( ) const ( - prefaceTimeout = 10 * time.Second - firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway - handlerChunkWriteSize = 4 << 10 - defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? + prefaceTimeout = 10 * time.Second + firstSettingsTimeout = 2 * time.Second // should be in-flight with preface anyway + handlerChunkWriteSize = 4 << 10 + defaultMaxStreams = 250 // TODO: make this 100 as the GFE seems to? + + // maxQueuedControlFrames is the maximum number of control frames like + // SETTINGS, PING and RST_STREAM that will be queued for writing before + // the connection is closed to prevent memory exhaustion attacks. maxQueuedControlFrames = 10000 ) @@ -124,8 +129,25 @@ type Server struct { // IdleTimeout specifies how long until idle clients should be // closed with a GOAWAY frame. PING frames are not considered // activity for the purposes of IdleTimeout. + // If zero or negative, there is no timeout. IdleTimeout time.Duration + // ReadIdleTimeout is the timeout after which a health check using a ping + // frame will be carried out if no frame is received on the connection. + // If zero, no health check is performed. + ReadIdleTimeout time.Duration + + // PingTimeout is the timeout after which the connection will be closed + // if a response to a ping is not received. + // If zero, a default of 15 seconds is used. + PingTimeout time.Duration + + // WriteByteTimeout is the timeout after which a connection will be + // closed if no data can be written to it. The timeout begins when data is + // available to write, and is extended whenever any bytes are written. + // If zero or negative, there is no timeout. + WriteByteTimeout time.Duration + // MaxUploadBufferPerConnection is the size of the initial flow // control window for each connections. The HTTP/2 spec does not // allow this to be smaller than 65535 or larger than 2^32-1. @@ -153,57 +175,39 @@ type Server struct { // so that we don't embed a Mutex in this struct, which will make the // struct non-copyable, which might break some callers. state *serverInternalState + + // Synchronization group used for testing. + // Outside of tests, this is nil. + group synctestGroupInterface } -func (s *Server) initialConnRecvWindowSize() int32 { - if s.MaxUploadBufferPerConnection >= initialWindowSize { - return s.MaxUploadBufferPerConnection +func (s *Server) markNewGoroutine() { + if s.group != nil { + s.group.Join() } - return 1 << 20 } -func (s *Server) initialStreamRecvWindowSize() int32 { - if s.MaxUploadBufferPerStream > 0 { - return s.MaxUploadBufferPerStream +func (s *Server) now() time.Time { + if s.group != nil { + return s.group.Now() } - return 1 << 20 + return time.Now() } -func (s *Server) maxReadFrameSize() uint32 { - if v := s.MaxReadFrameSize; v >= minMaxFrameSize && v <= maxFrameSize { - return v +// newTimer creates a new time.Timer, or a synthetic timer in tests. +func (s *Server) newTimer(d time.Duration) timer { + if s.group != nil { + return s.group.NewTimer(d) } - return defaultMaxReadFrameSize + return timeTimer{time.NewTimer(d)} } -func (s *Server) maxConcurrentStreams() uint32 { - if v := s.MaxConcurrentStreams; v > 0 { - return v +// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. +func (s *Server) afterFunc(d time.Duration, f func()) timer { + if s.group != nil { + return s.group.AfterFunc(d, f) } - return defaultMaxStreams -} - -func (s *Server) maxDecoderHeaderTableSize() uint32 { - if v := s.MaxDecoderHeaderTableSize; v > 0 { - return v - } - return initialHeaderTableSize -} - -func (s *Server) maxEncoderHeaderTableSize() uint32 { - if v := s.MaxEncoderHeaderTableSize; v > 0 { - return v - } - return initialHeaderTableSize -} - -// maxQueuedControlFrames is the maximum number of control frames like -// SETTINGS, PING and RST_STREAM that will be queued for writing before -// the connection is closed to prevent memory exhaustion attacks. -func (s *Server) maxQueuedControlFrames() int { - // TODO: if anybody asks, add a Server field, and remember to define the - // behavior of negative values. - return maxQueuedControlFrames + return timeTimer{time.AfterFunc(d, f)} } type serverInternalState struct { @@ -399,16 +403,22 @@ func (o *ServeConnOpts) handler() http.Handler { // // The opts parameter is optional. If nil, default values are used. func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { + s.serveConn(c, opts, nil) +} + +func (s *Server) serveConn(c net.Conn, opts *ServeConnOpts, newf func(*serverConn)) { baseCtx, cancel := serverConnBaseContext(c, opts) defer cancel() + http1srv := opts.baseConfig() + conf := configFromServer(http1srv, s) sc := &serverConn{ srv: s, - hs: opts.baseConfig(), + hs: http1srv, conn: c, baseCtx: baseCtx, remoteAddrStr: c.RemoteAddr().String(), - bw: newBufferedWriter(c), + bw: newBufferedWriter(s.group, c, conf.WriteByteTimeout), handler: opts.handler(), streams: make(map[uint32]*stream), readFrameCh: make(chan readFrameResult), @@ -418,13 +428,19 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { bodyReadCh: make(chan bodyReadMsg), // buffering doesn't matter either way doneServing: make(chan struct{}), clientMaxStreams: math.MaxUint32, // Section 6.5.2: "Initially, there is no limit to this value" - advMaxStreams: s.maxConcurrentStreams(), + advMaxStreams: conf.MaxConcurrentStreams, initialStreamSendWindowSize: initialWindowSize, + initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, maxFrameSize: initialMaxFrameSize, + pingTimeout: conf.PingTimeout, + countErrorFunc: conf.CountError, serveG: newGoroutineLock(), pushEnabled: true, sawClientPreface: opts.SawClientPreface, } + if newf != nil { + newf(sc) + } s.state.registerConn(sc) defer s.state.unregisterConn(sc) @@ -434,14 +450,14 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { // passes the connection off to us with the deadline already set. // Write deadlines are set per stream in serverConn.newStream. // Disarm the net.Conn write deadline here. - if sc.hs.WriteTimeout != 0 { + if sc.hs.WriteTimeout > 0 { sc.conn.SetWriteDeadline(time.Time{}) } if s.NewWriteScheduler != nil { sc.writeSched = s.NewWriteScheduler() } else { - sc.writeSched = NewPriorityWriteScheduler(nil) + sc.writeSched = newRoundRobinWriteScheduler() } // These start at the RFC-specified defaults. If there is a higher @@ -450,15 +466,15 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { sc.flow.add(initialWindowSize) sc.inflow.init(initialWindowSize) sc.hpackEncoder = hpack.NewEncoder(&sc.headerWriteBuf) - sc.hpackEncoder.SetMaxDynamicTableSizeLimit(s.maxEncoderHeaderTableSize()) + sc.hpackEncoder.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize) fr := NewFramer(sc.bw, c) - if s.CountError != nil { - fr.countError = s.CountError + if conf.CountError != nil { + fr.countError = conf.CountError } - fr.ReadMetaHeaders = hpack.NewDecoder(s.maxDecoderHeaderTableSize(), nil) + fr.ReadMetaHeaders = hpack.NewDecoder(conf.MaxDecoderHeaderTableSize, nil) fr.MaxHeaderListSize = sc.maxHeaderListSize() - fr.SetMaxReadFrameSize(s.maxReadFrameSize()) + fr.SetMaxReadFrameSize(conf.MaxReadFrameSize) sc.framer = fr if tc, ok := c.(connectionStater); ok { @@ -491,7 +507,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { // So for now, do nothing here again. } - if !s.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { + if !conf.PermitProhibitedCipherSuites && isBadCipher(sc.tlsState.CipherSuite) { // "Endpoints MAY choose to generate a connection error // (Section 5.4.1) of type INADEQUATE_SECURITY if one of // the prohibited cipher suites are negotiated." @@ -528,7 +544,7 @@ func (s *Server) ServeConn(c net.Conn, opts *ServeConnOpts) { opts.UpgradeRequest = nil } - sc.serve() + sc.serve(conf) } func serverConnBaseContext(c net.Conn, opts *ServeConnOpts) (ctx context.Context, cancel func()) { @@ -568,6 +584,7 @@ type serverConn struct { tlsState *tls.ConnectionState // shared by all handlers, like net/http remoteAddrStr string writeSched WriteScheduler + countErrorFunc func(errType string) // Everything following is owned by the serve loop; use serveG.check(): serveG goroutineLock // used to verify funcs are on serve() @@ -581,10 +598,13 @@ type serverConn struct { advMaxStreams uint32 // our SETTINGS_MAX_CONCURRENT_STREAMS advertised the client curClientStreams uint32 // number of open streams initiated by the client curPushedStreams uint32 // number of open streams initiated by server push + curHandlers uint32 // number of running handler goroutines maxClientStreamID uint32 // max ever seen from client (odd), or 0 if there have been no client requests maxPushPromiseID uint32 // ID of the last push promise (even), or 0 if there have been no pushes streams map[uint32]*stream + unstartedHandlers []unstartedHandler initialStreamSendWindowSize int32 + initialStreamRecvWindowSize int32 maxFrameSize int32 peerMaxHeaderListSize uint32 // zero means unknown (default) canonHeader map[string]string // http2-lower-case -> Go-Canonical-Case @@ -595,9 +615,14 @@ type serverConn struct { inGoAway bool // we've started to or sent GOAWAY inFrameScheduleLoop bool // whether we're in the scheduleFrameWrite loop needToSendGoAway bool // we need to schedule a GOAWAY frame write + pingSent bool + sentPingData [8]byte goAwayCode ErrCode - shutdownTimer *time.Timer // nil until used - idleTimer *time.Timer // nil if unused + shutdownTimer timer // nil until used + idleTimer timer // nil if unused + readIdleTimeout time.Duration + pingTimeout time.Duration + readIdleTimer timer // nil if unused // Owned by the writeFrameAsync goroutine: headerWriteBuf bytes.Buffer @@ -612,11 +637,7 @@ func (sc *serverConn) maxHeaderListSize() uint32 { if n <= 0 { n = http.DefaultMaxHeaderBytes } - // http2's count is in a slightly different unit and includes 32 bytes per pair. - // So, take the net/http.Server value and pad it up a bit, assuming 10 headers. - const perFieldOverhead = 32 // per http2 spec - const typicalHeaders = 10 // conservative - return uint32(n + typicalHeaders*perFieldOverhead) + return uint32(adjustHTTP1MaxHeaderSize(int64(n))) } func (sc *serverConn) curOpenStreams() uint32 { @@ -646,12 +667,12 @@ type stream struct { flow outflow // limits writing from Handler to client inflow inflow // what the client is allowed to POST/etc to us state streamState - resetQueued bool // RST_STREAM queued for write; set by sc.resetStream - gotTrailerHeader bool // HEADER frame for trailers was seen - wroteHeaders bool // whether we wrote headers (not status 100) - readDeadline *time.Timer // nil if unused - writeDeadline *time.Timer // nil if unused - closeErr error // set before cw is closed + resetQueued bool // RST_STREAM queued for write; set by sc.resetStream + gotTrailerHeader bool // HEADER frame for trailers was seen + wroteHeaders bool // whether we wrote headers (not status 100) + readDeadline timer // nil if unused + writeDeadline timer // nil if unused + closeErr error // set before cw is closed trailer http.Header // accumulated trailers reqTrailer http.Header // handler's Request.Trailer @@ -729,11 +750,7 @@ func isClosedConnError(err error) bool { return false } - // TODO: remove this string search and be more like the Windows - // case below. That might involve modifying the standard library - // to return better error types. - str := err.Error() - if strings.Contains(str, "use of closed network connection") { + if errors.Is(err, net.ErrClosed) { return true } @@ -812,8 +829,9 @@ type readFrameResult struct { // consumer is done with the frame. // It's run on its own goroutine. func (sc *serverConn) readFrames() { - gate := make(gate) - gateDone := gate.Done + sc.srv.markNewGoroutine() + gate := make(chan struct{}) + gateDone := func() { gate <- struct{}{} } for { f, err := sc.framer.ReadFrame() select { @@ -844,6 +862,7 @@ type frameWriteResult struct { // At most one goroutine can be running writeFrameAsync at a time per // serverConn. func (sc *serverConn) writeFrameAsync(wr FrameWriteRequest, wd *writeData) { + sc.srv.markNewGoroutine() var err error if wd == nil { err = wr.write.writeFrame(sc) @@ -882,7 +901,7 @@ func (sc *serverConn) notePanic() { } } -func (sc *serverConn) serve() { +func (sc *serverConn) serve(conf http2Config) { sc.serveG.check() defer sc.notePanic() defer sc.conn.Close() @@ -896,18 +915,18 @@ func (sc *serverConn) serve() { sc.writeFrame(FrameWriteRequest{ write: writeSettings{ - {SettingMaxFrameSize, sc.srv.maxReadFrameSize()}, + {SettingMaxFrameSize, conf.MaxReadFrameSize}, {SettingMaxConcurrentStreams, sc.advMaxStreams}, {SettingMaxHeaderListSize, sc.maxHeaderListSize()}, - {SettingHeaderTableSize, sc.srv.maxDecoderHeaderTableSize()}, - {SettingInitialWindowSize, uint32(sc.srv.initialStreamRecvWindowSize())}, + {SettingHeaderTableSize, conf.MaxDecoderHeaderTableSize}, + {SettingInitialWindowSize, uint32(sc.initialStreamRecvWindowSize)}, }, }) sc.unackedSettings++ // Each connection starts with initialWindowSize inflow tokens. // If a higher value is configured, we add more tokens. - if diff := sc.srv.initialConnRecvWindowSize() - initialWindowSize; diff > 0 { + if diff := conf.MaxUploadBufferPerConnection - initialWindowSize; diff > 0 { sc.sendWindowUpdate(nil, int(diff)) } @@ -922,16 +941,23 @@ func (sc *serverConn) serve() { sc.setConnState(http.StateActive) sc.setConnState(http.StateIdle) - if sc.srv.IdleTimeout != 0 { - sc.idleTimer = time.AfterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) + if sc.srv.IdleTimeout > 0 { + sc.idleTimer = sc.srv.afterFunc(sc.srv.IdleTimeout, sc.onIdleTimer) defer sc.idleTimer.Stop() } + if conf.SendPingTimeout > 0 { + sc.readIdleTimeout = conf.SendPingTimeout + sc.readIdleTimer = sc.srv.afterFunc(conf.SendPingTimeout, sc.onReadIdleTimer) + defer sc.readIdleTimer.Stop() + } + go sc.readFrames() // closed by defer sc.conn.Close above - settingsTimer := time.AfterFunc(firstSettingsTimeout, sc.onSettingsTimer) + settingsTimer := sc.srv.afterFunc(firstSettingsTimeout, sc.onSettingsTimer) defer settingsTimer.Stop() + lastFrameTime := sc.srv.now() loopNum := 0 for { loopNum++ @@ -945,6 +971,7 @@ func (sc *serverConn) serve() { case res := <-sc.wroteFrameCh: sc.wroteFrame(res) case res := <-sc.readFrameCh: + lastFrameTime = sc.srv.now() // Process any written frames before reading new frames from the client since a // written frame could have triggered a new stream to be started. if sc.writingFrameAsync { @@ -976,11 +1003,15 @@ func (sc *serverConn) serve() { case idleTimerMsg: sc.vlogf("connection is idle") sc.goAway(ErrCodeNo) + case readIdleTimerMsg: + sc.handlePingTimer(lastFrameTime) case shutdownTimerMsg: sc.vlogf("GOAWAY close timer fired; closing conn from %v", sc.conn.RemoteAddr()) return case gracefulShutdownMsg: sc.startGracefulShutdownInternal() + case handlerDoneMsg: + sc.handlerDone() default: panic("unknown timer") } @@ -996,7 +1027,7 @@ func (sc *serverConn) serve() { // If the peer is causing us to generate a lot of control frames, // but not reading them from us, assume they are trying to make us // run out of memory. - if sc.queuedControlFrames > sc.srv.maxQueuedControlFrames() { + if sc.queuedControlFrames > maxQueuedControlFrames { sc.vlogf("http2: too many control frames in send queue, closing connection") return } @@ -1012,12 +1043,30 @@ func (sc *serverConn) serve() { } } -func (sc *serverConn) awaitGracefulShutdown(sharedCh <-chan struct{}, privateCh chan struct{}) { - select { - case <-sc.doneServing: - case <-sharedCh: - close(privateCh) +func (sc *serverConn) handlePingTimer(lastFrameReadTime time.Time) { + if sc.pingSent { + sc.vlogf("timeout waiting for PING response") + sc.conn.Close() + return } + + pingAt := lastFrameReadTime.Add(sc.readIdleTimeout) + now := sc.srv.now() + if pingAt.After(now) { + // We received frames since arming the ping timer. + // Reset it for the next possible timeout. + sc.readIdleTimer.Reset(pingAt.Sub(now)) + return + } + + sc.pingSent = true + // Ignore crypto/rand.Read errors: It generally can't fail, and worse case if it does + // is we send a PING frame containing 0s. + _, _ = rand.Read(sc.sentPingData[:]) + sc.writeFrame(FrameWriteRequest{ + write: &writePing{data: sc.sentPingData}, + }) + sc.readIdleTimer.Reset(sc.pingTimeout) } type serverMessage int @@ -1026,12 +1075,15 @@ type serverMessage int var ( settingsTimerMsg = new(serverMessage) idleTimerMsg = new(serverMessage) + readIdleTimerMsg = new(serverMessage) shutdownTimerMsg = new(serverMessage) gracefulShutdownMsg = new(serverMessage) + handlerDoneMsg = new(serverMessage) ) func (sc *serverConn) onSettingsTimer() { sc.sendServeMsg(settingsTimerMsg) } func (sc *serverConn) onIdleTimer() { sc.sendServeMsg(idleTimerMsg) } +func (sc *serverConn) onReadIdleTimer() { sc.sendServeMsg(readIdleTimerMsg) } func (sc *serverConn) onShutdownTimer() { sc.sendServeMsg(shutdownTimerMsg) } func (sc *serverConn) sendServeMsg(msg interface{}) { @@ -1063,10 +1115,10 @@ func (sc *serverConn) readPreface() error { errc <- nil } }() - timer := time.NewTimer(prefaceTimeout) // TODO: configurable on *Server? + timer := sc.srv.newTimer(prefaceTimeout) // TODO: configurable on *Server? defer timer.Stop() select { - case <-timer.C: + case <-timer.C(): return errPrefaceTimeout case err := <-errc: if err == nil { @@ -1284,6 +1336,10 @@ func (sc *serverConn) wroteFrame(res frameWriteResult) { sc.writingFrame = false sc.writingFrameAsync = false + if res.err != nil { + sc.conn.Close() + } + wr := res.wr if writeEndsStream(wr.write) { @@ -1431,7 +1487,7 @@ func (sc *serverConn) goAway(code ErrCode) { func (sc *serverConn) shutDownIn(d time.Duration) { sc.serveG.check() - sc.shutdownTimer = time.AfterFunc(d, sc.onShutdownTimer) + sc.shutdownTimer = sc.srv.afterFunc(d, sc.onShutdownTimer) } func (sc *serverConn) resetStream(se StreamError) { @@ -1484,6 +1540,11 @@ func (sc *serverConn) processFrameFromReader(res readFrameResult) bool { sc.goAway(ErrCodeFlowControl) return true case ConnectionError: + if res.f != nil { + if id := res.f.Header().StreamID; id > sc.maxClientStreamID { + sc.maxClientStreamID = id + } + } sc.logf("http2: server connection error from %v: %v", sc.conn.RemoteAddr(), ev) sc.goAway(ErrCode(ev)) return true // goAway will handle shutdown @@ -1553,6 +1614,11 @@ func (sc *serverConn) processFrame(f Frame) error { func (sc *serverConn) processPing(f *PingFrame) error { sc.serveG.check() if f.IsAck() { + if sc.pingSent && sc.sentPingData == f.Data { + // This is a response to a PING we sent. + sc.pingSent = false + sc.readIdleTimer.Reset(sc.readIdleTimeout) + } // 6.7 PING: " An endpoint MUST NOT respond to PING frames // containing this flag." return nil @@ -1640,7 +1706,7 @@ func (sc *serverConn) closeStream(st *stream, err error) { delete(sc.streams, st.id) if len(sc.streams) == 0 { sc.setConnState(http.StateIdle) - if sc.srv.IdleTimeout != 0 { + if sc.srv.IdleTimeout > 0 && sc.idleTimer != nil { sc.idleTimer.Reset(sc.srv.IdleTimeout) } if h1ServerKeepAlivesDisabled(sc.hs) { @@ -1662,6 +1728,7 @@ func (sc *serverConn) closeStream(st *stream, err error) { } } st.closeErr = err + st.cancelCtx() st.cw.Close() // signals Handler's CloseNotifier, unblocks writes, etc sc.writeSched.CloseStream(st.id) } @@ -1900,9 +1967,11 @@ func (st *stream) copyTrailersToHandlerRequest() { // onReadTimeout is run on its own goroutine (from time.AfterFunc) // when the stream's ReadTimeout has fired. func (st *stream) onReadTimeout() { - // Wrap the ErrDeadlineExceeded to avoid callers depending on us - // returning the bare error. - st.body.CloseWithError(fmt.Errorf("%w", os.ErrDeadlineExceeded)) + if st.body != nil { + // Wrap the ErrDeadlineExceeded to avoid callers depending on us + // returning the bare error. + st.body.CloseWithError(fmt.Errorf("%w", os.ErrDeadlineExceeded)) + } } // onWriteTimeout is run on its own goroutine (from time.AfterFunc) @@ -2018,15 +2087,12 @@ func (sc *serverConn) processHeaders(f *MetaHeadersFrame) error { // similar to how the http1 server works. Here it's // technically more like the http1 Server's ReadHeaderTimeout // (in Go 1.8), though. That's a more sane option anyway. - if sc.hs.ReadTimeout != 0 { + if sc.hs.ReadTimeout > 0 { sc.conn.SetReadDeadline(time.Time{}) - if st.body != nil { - st.readDeadline = time.AfterFunc(sc.hs.ReadTimeout, st.onReadTimeout) - } + st.readDeadline = sc.srv.afterFunc(sc.hs.ReadTimeout, st.onReadTimeout) } - go sc.runHandler(rw, req, handler) - return nil + return sc.scheduleHandler(id, rw, req, handler) } func (sc *serverConn) upgradeRequest(req *http.Request) { @@ -2042,10 +2108,14 @@ func (sc *serverConn) upgradeRequest(req *http.Request) { // Disable any read deadline set by the net/http package // prior to the upgrade. - if sc.hs.ReadTimeout != 0 { + if sc.hs.ReadTimeout > 0 { sc.conn.SetReadDeadline(time.Time{}) } + // This is the first request on the connection, + // so start the handler directly rather than going + // through scheduleHandler. + sc.curHandlers++ go sc.runHandler(rw, req, sc.handler.ServeHTTP) } @@ -2115,9 +2185,9 @@ func (sc *serverConn) newStream(id, pusherID uint32, state streamState) *stream st.cw.Init() st.flow.conn = &sc.flow // link to conn-level counter st.flow.add(sc.initialStreamSendWindowSize) - st.inflow.init(sc.srv.initialStreamRecvWindowSize()) - if sc.hs.WriteTimeout != 0 { - st.writeDeadline = time.AfterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) + st.inflow.init(sc.initialStreamRecvWindowSize) + if sc.hs.WriteTimeout > 0 { + st.writeDeadline = sc.srv.afterFunc(sc.hs.WriteTimeout, st.onWriteTimeout) } sc.streams[id] = st @@ -2286,8 +2356,63 @@ func (sc *serverConn) newResponseWriter(st *stream, req *http.Request) *response return &responseWriter{rws: rws} } +type unstartedHandler struct { + streamID uint32 + rw *responseWriter + req *http.Request + handler func(http.ResponseWriter, *http.Request) +} + +// scheduleHandler starts a handler goroutine, +// or schedules one to start as soon as an existing handler finishes. +func (sc *serverConn) scheduleHandler(streamID uint32, rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) error { + sc.serveG.check() + maxHandlers := sc.advMaxStreams + if sc.curHandlers < maxHandlers { + sc.curHandlers++ + go sc.runHandler(rw, req, handler) + return nil + } + if len(sc.unstartedHandlers) > int(4*sc.advMaxStreams) { + return sc.countError("too_many_early_resets", ConnectionError(ErrCodeEnhanceYourCalm)) + } + sc.unstartedHandlers = append(sc.unstartedHandlers, unstartedHandler{ + streamID: streamID, + rw: rw, + req: req, + handler: handler, + }) + return nil +} + +func (sc *serverConn) handlerDone() { + sc.serveG.check() + sc.curHandlers-- + i := 0 + maxHandlers := sc.advMaxStreams + for ; i < len(sc.unstartedHandlers); i++ { + u := sc.unstartedHandlers[i] + if sc.streams[u.streamID] == nil { + // This stream was reset before its goroutine had a chance to start. + continue + } + if sc.curHandlers >= maxHandlers { + break + } + sc.curHandlers++ + go sc.runHandler(u.rw, u.req, u.handler) + sc.unstartedHandlers[i] = unstartedHandler{} // don't retain references + } + sc.unstartedHandlers = sc.unstartedHandlers[i:] + if len(sc.unstartedHandlers) == 0 { + sc.unstartedHandlers = nil + } +} + // Run on its own goroutine. func (sc *serverConn) runHandler(rw *responseWriter, req *http.Request, handler func(http.ResponseWriter, *http.Request)) { + sc.srv.markNewGoroutine() + defer sc.sendServeMsg(handlerDoneMsg) didPanic := true defer func() { rw.rws.stream.cancelCtx() @@ -2429,7 +2554,7 @@ type requestBody struct { conn *serverConn closeOnce sync.Once // for use by Close only sawEOF bool // for use by Read only - pipe *pipe // non-nil if we have a HTTP entity message body + pipe *pipe // non-nil if we have an HTTP entity message body needsContinue bool // need to send a 100-continue } @@ -2495,7 +2620,6 @@ type responseWriterState struct { wroteHeader bool // WriteHeader called (explicitly or implicitly). Not necessarily sent to user yet. sentHeader bool // have we sent the header frame? handlerDone bool // handler has finished - dirty bool // a Write failed; don't reuse this responseWriterState sentContentLen int64 // non-zero if handler set a Content-Length header wroteBytes int64 @@ -2569,7 +2693,8 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { clen = "" } } - if clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { + _, hasContentLength := rws.snapHeader["Content-Length"] + if !hasContentLength && clen == "" && rws.handlerDone && bodyAllowedForStatus(rws.status) && (len(p) > 0 || !isHeadResp) { clen = strconv.Itoa(len(p)) } _, hasContentType := rws.snapHeader["Content-Type"] @@ -2583,7 +2708,7 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { var date string if _, ok := rws.snapHeader["Date"]; !ok { // TODO(bradfitz): be faster here, like net/http? measure. - date = time.Now().UTC().Format(http.TimeFormat) + date = rws.conn.srv.now().UTC().Format(http.TimeFormat) } for _, v := range rws.snapHeader["Trailer"] { @@ -2614,7 +2739,6 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { date: date, }) if err != nil { - rws.dirty = true return 0, err } if endStream { @@ -2635,7 +2759,6 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { if len(p) > 0 || endStream { // only send a 0 byte DATA frame if we're ending the stream. if err := rws.conn.writeDataFromHandler(rws.stream, p, endStream); err != nil { - rws.dirty = true return 0, err } } @@ -2647,9 +2770,6 @@ func (rws *responseWriterState) writeChunk(p []byte) (n int, err error) { trailers: rws.trailers, endStream: true, }) - if err != nil { - rws.dirty = true - } return len(p), err } return len(p), nil @@ -2710,7 +2830,7 @@ func (rws *responseWriterState) promoteUndeclaredTrailers() { func (w *responseWriter) SetReadDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(time.Now()) { + if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onReadTimeout() @@ -2726,9 +2846,9 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { if deadline.IsZero() { st.readDeadline = nil } else if st.readDeadline == nil { - st.readDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onReadTimeout) + st.readDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onReadTimeout) } else { - st.readDeadline.Reset(deadline.Sub(time.Now())) + st.readDeadline.Reset(deadline.Sub(sc.srv.now())) } }) return nil @@ -2736,7 +2856,7 @@ func (w *responseWriter) SetReadDeadline(deadline time.Time) error { func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { st := w.rws.stream - if !deadline.IsZero() && deadline.Before(time.Now()) { + if !deadline.IsZero() && deadline.Before(w.rws.conn.srv.now()) { // If we're setting a deadline in the past, reset the stream immediately // so writes after SetWriteDeadline returns will fail. st.onWriteTimeout() @@ -2752,9 +2872,9 @@ func (w *responseWriter) SetWriteDeadline(deadline time.Time) error { if deadline.IsZero() { st.writeDeadline = nil } else if st.writeDeadline == nil { - st.writeDeadline = time.AfterFunc(deadline.Sub(time.Now()), st.onWriteTimeout) + st.writeDeadline = sc.srv.afterFunc(deadline.Sub(sc.srv.now()), st.onWriteTimeout) } else { - st.writeDeadline.Reset(deadline.Sub(time.Now())) + st.writeDeadline.Reset(deadline.Sub(sc.srv.now())) } }) return nil @@ -2774,7 +2894,7 @@ func (w *responseWriter) FlushError() error { err = rws.bw.Flush() } else { // The bufio.Writer won't call chunkWriter.Write - // (writeChunk with zero bytes, so we have to do it + // (writeChunk with zero bytes), so we have to do it // ourselves to force the HTTP response header and/or // final DATA frame (with END_STREAM) to be sent. _, err = chunkWriter{rws}.Write(nil) @@ -2865,14 +2985,12 @@ func (rws *responseWriterState) writeHeader(code int) { h.Del("Transfer-Encoding") } - if rws.conn.writeHeaders(rws.stream, &writeResHeaders{ + rws.conn.writeHeaders(rws.stream, &writeResHeaders{ streamID: rws.stream.id, httpResCode: code, h: h, endStream: rws.handlerDone && !rws.hasTrailers(), - }) != nil { - rws.dirty = true - } + }) return } @@ -2937,19 +3055,10 @@ func (w *responseWriter) write(lenData int, dataB []byte, dataS string) (n int, func (w *responseWriter) handlerDone() { rws := w.rws - dirty := rws.dirty rws.handlerDone = true w.Flush() w.rws = nil - if !dirty { - // Only recycle the pool if all prior Write calls to - // the serverConn goroutine completed successfully. If - // they returned earlier due to resets from the peer - // there might still be write goroutines outstanding - // from the serverConn referencing the rws memory. See - // issue 20704. - responseWriterStatePool.Put(rws) - } + responseWriterStatePool.Put(rws) } // Push errors. @@ -3132,6 +3241,7 @@ func (sc *serverConn) startPush(msg *startPushRequest) { panic(fmt.Sprintf("newWriterAndRequestNoBody(%+v): %v", msg.url, err)) } + sc.curHandlers++ go sc.runHandler(rw, req, sc.handler.ServeHTTP) return promisedID, nil } @@ -3216,7 +3326,7 @@ func (sc *serverConn) countError(name string, err error) error { if sc == nil || sc.srv == nil { return err } - f := sc.srv.CountError + f := sc.countErrorFunc if f == nil { return err } diff --git a/vendor/golang.org/x/net/http2/transport.go b/vendor/golang.org/x/net/http2/transport.go index ac90a26..0c5f64a 100644 --- a/vendor/golang.org/x/net/http2/transport.go +++ b/vendor/golang.org/x/net/http2/transport.go @@ -19,12 +19,12 @@ import ( "io/fs" "log" "math" + "math/bits" mathrand "math/rand" "net" "net/http" "net/http/httptrace" "net/textproto" - "os" "sort" "strconv" "strings" @@ -146,6 +146,12 @@ type Transport struct { // waiting for their turn. StrictMaxConcurrentStreams bool + // IdleConnTimeout is the maximum amount of time an idle + // (keep-alive) connection will remain idle before closing + // itself. + // Zero means no limit. + IdleConnTimeout time.Duration + // ReadIdleTimeout is the timeout after which a health check using ping // frame will be carried out if no frame is received on the connection. // Note that a ping response will is considered a received frame, so if @@ -177,43 +183,69 @@ type Transport struct { connPoolOnce sync.Once connPoolOrDef ClientConnPool // non-nil version of ConnPool + + *transportTestHooks +} + +// Hook points used for testing. +// Outside of tests, t.transportTestHooks is nil and these all have minimal implementations. +// Inside tests, see the testSyncHooks function docs. + +type transportTestHooks struct { + newclientconn func(*ClientConn) + group synctestGroupInterface +} + +func (t *Transport) markNewGoroutine() { + if t != nil && t.transportTestHooks != nil { + t.transportTestHooks.group.Join() + } +} + +// newTimer creates a new time.Timer, or a synthetic timer in tests. +func (t *Transport) newTimer(d time.Duration) timer { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.NewTimer(d) + } + return timeTimer{time.NewTimer(d)} +} + +// afterFunc creates a new time.AfterFunc timer, or a synthetic timer in tests. +func (t *Transport) afterFunc(d time.Duration, f func()) timer { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.AfterFunc(d, f) + } + return timeTimer{time.AfterFunc(d, f)} +} + +func (t *Transport) contextWithTimeout(ctx context.Context, d time.Duration) (context.Context, context.CancelFunc) { + if t.transportTestHooks != nil { + return t.transportTestHooks.group.ContextWithTimeout(ctx, d) + } + return context.WithTimeout(ctx, d) } func (t *Transport) maxHeaderListSize() uint32 { - if t.MaxHeaderListSize == 0 { + n := int64(t.MaxHeaderListSize) + if t.t1 != nil && t.t1.MaxResponseHeaderBytes != 0 { + n = t.t1.MaxResponseHeaderBytes + if n > 0 { + n = adjustHTTP1MaxHeaderSize(n) + } + } + if n <= 0 { return 10 << 20 } - if t.MaxHeaderListSize == 0xffffffff { + if n >= 0xffffffff { return 0 } - return t.MaxHeaderListSize -} - -func (t *Transport) maxFrameReadSize() uint32 { - if t.MaxReadFrameSize == 0 { - return 0 // use the default provided by the peer - } - if t.MaxReadFrameSize < minMaxFrameSize { - return minMaxFrameSize - } - if t.MaxReadFrameSize > maxFrameSize { - return maxFrameSize - } - return t.MaxReadFrameSize + return uint32(n) } func (t *Transport) disableCompression() bool { return t.DisableCompression || (t.t1 != nil && t.t1.DisableCompression) } -func (t *Transport) pingTimeout() time.Duration { - if t.PingTimeout == 0 { - return 15 * time.Second - } - return t.PingTimeout - -} - // ConfigureTransport configures a net/http HTTP/1 Transport to use HTTP/2. // It returns an error if t1 has already been HTTP/2-enabled. // @@ -290,8 +322,7 @@ func (t *Transport) initConnPool() { // HTTP/2 server. type ClientConn struct { t *Transport - tconn net.Conn // usually *tls.Conn, except specialized impls - tconnClosed bool + tconn net.Conn // usually *tls.Conn, except specialized impls tlsState *tls.ConnectionState // nil only for specialized impls reused uint32 // whether conn is being reused; atomic singleUse bool // whether being used for a single http.Request @@ -302,7 +333,7 @@ type ClientConn struct { readerErr error // set before readerDone is closed idleTimeout time.Duration // or 0 for never - idleTimer *time.Timer + idleTimer timer mu sync.Mutex // guards following cond *sync.Cond // hold mu; broadcast on flow/closed changes @@ -324,11 +355,14 @@ type ClientConn struct { lastActive time.Time lastIdle time.Time // time last idle // Settings from peer: (also guarded by wmu) - maxFrameSize uint32 - maxConcurrentStreams uint32 - peerMaxHeaderListSize uint64 - peerMaxHeaderTableSize uint32 - initialWindowSize uint32 + maxFrameSize uint32 + maxConcurrentStreams uint32 + peerMaxHeaderListSize uint64 + peerMaxHeaderTableSize uint32 + initialWindowSize uint32 + initialStreamRecvWindowSize int32 + readIdleTimeout time.Duration + pingTimeout time.Duration // reqHeaderMu is a 1-element semaphore channel controlling access to sending new requests. // Write to reqHeaderMu to lock it, read from it to unlock. @@ -446,12 +480,14 @@ func (cs *clientStream) closeReqBodyLocked() { cs.reqBodyClosed = make(chan struct{}) reqBodyClosed := cs.reqBodyClosed go func() { + cs.cc.t.markNewGoroutine() cs.reqBody.Close() close(reqBodyClosed) }() } type stickyErrWriter struct { + group synctestGroupInterface conn net.Conn timeout time.Duration err *error @@ -461,22 +497,9 @@ func (sew stickyErrWriter) Write(p []byte) (n int, err error) { if *sew.err != nil { return 0, *sew.err } - for { - if sew.timeout != 0 { - sew.conn.SetWriteDeadline(time.Now().Add(sew.timeout)) - } - nn, err := sew.conn.Write(p[n:]) - n += nn - if n < len(p) && nn > 0 && errors.Is(err, os.ErrDeadlineExceeded) { - // Keep extending the deadline so long as we're making progress. - continue - } - if sew.timeout != 0 { - sew.conn.SetWriteDeadline(time.Time{}) - } - *sew.err = err - return n, err - } + n, err = writeWithByteTimeout(sew.group, sew.conn, sew.timeout, p) + *sew.err = err + return n, err } // noCachedConnError is the concrete type of ErrNoCachedConn, which @@ -518,11 +541,14 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { func authorityAddr(scheme string, authority string) (addr string) { host, port, err := net.SplitHostPort(authority) if err != nil { // authority didn't have a port + host = authority + port = "" + } + if port == "" { // authority's port was empty port = "443" if scheme == "http" { port = "80" } - host = authority } if a, err := idna.ToASCII(host); err == nil { host = a @@ -534,15 +560,6 @@ func authorityAddr(scheme string, authority string) (addr string) { return net.JoinHostPort(host, port) } -var retryBackoffHook func(time.Duration) *time.Timer - -func backoffNewTimer(d time.Duration) *time.Timer { - if retryBackoffHook != nil { - return retryBackoffHook(d) - } - return time.NewTimer(d) -} - // RoundTripOpt is like RoundTrip, but takes options. func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Response, error) { if !(req.URL.Scheme == "https" || (req.URL.Scheme == "http" && t.AllowHTTP)) { @@ -570,13 +587,13 @@ func (t *Transport) RoundTripOpt(req *http.Request, opt RoundTripOpt) (*http.Res backoff := float64(uint(1) << (uint(retry) - 1)) backoff += backoff * (0.1 * mathrand.Float64()) d := time.Second * time.Duration(backoff) - timer := backoffNewTimer(d) + tm := t.newTimer(d) select { - case <-timer.C: + case <-tm.C(): t.vlogf("RoundTrip retrying after failure: %v", roundTripErr) continue case <-req.Context().Done(): - timer.Stop() + tm.Stop() err = req.Context().Err() } } @@ -655,6 +672,9 @@ func canRetryError(err error) bool { } func (t *Transport) dialClientConn(ctx context.Context, addr string, singleUse bool) (*ClientConn, error) { + if t.transportTestHooks != nil { + return t.newClientConn(nil, singleUse) + } host, _, err := net.SplitHostPort(addr) if err != nil { return nil, err @@ -714,43 +734,36 @@ func (t *Transport) expectContinueTimeout() time.Duration { return t.t1.ExpectContinueTimeout } -func (t *Transport) maxDecoderHeaderTableSize() uint32 { - if v := t.MaxDecoderHeaderTableSize; v > 0 { - return v - } - return initialHeaderTableSize -} - -func (t *Transport) maxEncoderHeaderTableSize() uint32 { - if v := t.MaxEncoderHeaderTableSize; v > 0 { - return v - } - return initialHeaderTableSize -} - func (t *Transport) NewClientConn(c net.Conn) (*ClientConn, error) { return t.newClientConn(c, t.disableKeepAlives()) } func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, error) { + conf := configFromTransport(t) cc := &ClientConn{ - t: t, - tconn: c, - readerDone: make(chan struct{}), - nextStreamID: 1, - maxFrameSize: 16 << 10, // spec default - initialWindowSize: 65535, // spec default - maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. - peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. - streams: make(map[uint32]*clientStream), - singleUse: singleUse, - wantSettingsAck: true, - pings: make(map[[8]byte]chan struct{}), - reqHeaderMu: make(chan struct{}, 1), + t: t, + tconn: c, + readerDone: make(chan struct{}), + nextStreamID: 1, + maxFrameSize: 16 << 10, // spec default + initialWindowSize: 65535, // spec default + initialStreamRecvWindowSize: conf.MaxUploadBufferPerStream, + maxConcurrentStreams: initialMaxConcurrentStreams, // "infinite", per spec. Use a smaller value until we have received server settings. + peerMaxHeaderListSize: 0xffffffffffffffff, // "infinite", per spec. Use 2^64-1 instead. + streams: make(map[uint32]*clientStream), + singleUse: singleUse, + wantSettingsAck: true, + readIdleTimeout: conf.SendPingTimeout, + pingTimeout: conf.PingTimeout, + pings: make(map[[8]byte]chan struct{}), + reqHeaderMu: make(chan struct{}, 1), } - if d := t.idleConnTimeout(); d != 0 { - cc.idleTimeout = d - cc.idleTimer = time.AfterFunc(d, cc.onIdleTimeout) + var group synctestGroupInterface + if t.transportTestHooks != nil { + t.markNewGoroutine() + t.transportTestHooks.newclientconn(cc) + c = cc.tconn + group = t.group } if VerboseLogs { t.vlogf("http2: Transport creating client conn %p to %v", cc, c.RemoteAddr()) @@ -762,30 +775,25 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro // TODO: adjust this writer size to account for frame size + // MTU + crypto/tls record padding. cc.bw = bufio.NewWriter(stickyErrWriter{ + group: group, conn: c, - timeout: t.WriteByteTimeout, + timeout: conf.WriteByteTimeout, err: &cc.werr, }) cc.br = bufio.NewReader(c) cc.fr = NewFramer(cc.bw, cc.br) - if t.maxFrameReadSize() != 0 { - cc.fr.SetMaxReadFrameSize(t.maxFrameReadSize()) - } + cc.fr.SetMaxReadFrameSize(conf.MaxReadFrameSize) if t.CountError != nil { cc.fr.countError = t.CountError } - maxHeaderTableSize := t.maxDecoderHeaderTableSize() + maxHeaderTableSize := conf.MaxDecoderHeaderTableSize cc.fr.ReadMetaHeaders = hpack.NewDecoder(maxHeaderTableSize, nil) cc.fr.MaxHeaderListSize = t.maxHeaderListSize() cc.henc = hpack.NewEncoder(&cc.hbuf) - cc.henc.SetMaxDynamicTableSizeLimit(t.maxEncoderHeaderTableSize()) + cc.henc.SetMaxDynamicTableSizeLimit(conf.MaxEncoderHeaderTableSize) cc.peerMaxHeaderTableSize = initialHeaderTableSize - if t.AllowHTTP { - cc.nextStreamID = 3 - } - if cs, ok := c.(connectionStater); ok { state := cs.ConnectionState() cc.tlsState = &state @@ -793,11 +801,9 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro initialSettings := []Setting{ {ID: SettingEnablePush, Val: 0}, - {ID: SettingInitialWindowSize, Val: transportDefaultStreamFlow}, - } - if max := t.maxFrameReadSize(); max != 0 { - initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: max}) + {ID: SettingInitialWindowSize, Val: uint32(cc.initialStreamRecvWindowSize)}, } + initialSettings = append(initialSettings, Setting{ID: SettingMaxFrameSize, Val: conf.MaxReadFrameSize}) if max := t.maxHeaderListSize(); max != 0 { initialSettings = append(initialSettings, Setting{ID: SettingMaxHeaderListSize, Val: max}) } @@ -807,23 +813,29 @@ func (t *Transport) newClientConn(c net.Conn, singleUse bool) (*ClientConn, erro cc.bw.Write(clientPreface) cc.fr.WriteSettings(initialSettings...) - cc.fr.WriteWindowUpdate(0, transportDefaultConnFlow) - cc.inflow.init(transportDefaultConnFlow + initialWindowSize) + cc.fr.WriteWindowUpdate(0, uint32(conf.MaxUploadBufferPerConnection)) + cc.inflow.init(conf.MaxUploadBufferPerConnection + initialWindowSize) cc.bw.Flush() if cc.werr != nil { cc.Close() return nil, cc.werr } + // Start the idle timer after the connection is fully initialized. + if d := t.idleConnTimeout(); d != 0 { + cc.idleTimeout = d + cc.idleTimer = t.afterFunc(d, cc.onIdleTimeout) + } + go cc.readLoop() return cc, nil } func (cc *ClientConn) healthCheck() { - pingTimeout := cc.t.pingTimeout() + pingTimeout := cc.pingTimeout // We don't need to periodically ping in the health check, because the readLoop of ClientConn will // trigger the healthCheck again if there is no frame received. - ctx, cancel := context.WithTimeout(context.Background(), pingTimeout) + ctx, cancel := cc.t.contextWithTimeout(context.Background(), pingTimeout) defer cancel() cc.vlogf("http2: Transport sending health check") err := cc.Ping(ctx) @@ -858,7 +870,20 @@ func (cc *ClientConn) setGoAway(f *GoAwayFrame) { } last := f.LastStreamID for streamID, cs := range cc.streams { - if streamID > last { + if streamID <= last { + // The server's GOAWAY indicates that it received this stream. + // It will either finish processing it, or close the connection + // without doing so. Either way, leave the stream alone for now. + continue + } + if streamID == 1 && cc.goAway.ErrCode != ErrCodeNo { + // Don't retry the first stream on a connection if we get a non-NO error. + // If the server is sending an error on a new connection, + // retrying the request on a new one probably isn't going to work. + cs.abortStreamLocked(fmt.Errorf("http2: Transport received GOAWAY from server ErrCode:%v", cc.goAway.ErrCode)) + } else { + // Aborting the stream with errClentConnGotGoAway indicates that + // the request should be retried on a new connection. cs.abortStreamLocked(errClientConnGotGoAway) } } @@ -1015,7 +1040,7 @@ func (cc *ClientConn) forceCloseConn() { if !ok { return } - if nc := tlsUnderlyingConn(tc); nc != nil { + if nc := tc.NetConn(); nc != nil { nc.Close() } } @@ -1054,6 +1079,7 @@ func (cc *ClientConn) Shutdown(ctx context.Context) error { done := make(chan struct{}) cancelled := false // guarded by cc.mu go func() { + cc.t.markNewGoroutine() cc.mu.Lock() defer cc.mu.Unlock() for { @@ -1212,6 +1238,10 @@ func (cc *ClientConn) decrStreamReservationsLocked() { } func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { + return cc.roundTrip(req, nil) +} + +func (cc *ClientConn) roundTrip(req *http.Request, streamf func(*clientStream)) (*http.Response, error) { ctx := req.Context() cs := &clientStream{ cc: cc, @@ -1226,7 +1256,28 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { respHeaderRecv: make(chan struct{}), donec: make(chan struct{}), } - go cs.doRequest(req) + + // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? + if !cc.t.disableCompression() && + req.Header.Get("Accept-Encoding") == "" && + req.Header.Get("Range") == "" && + !cs.isHead { + // Request gzip only, not deflate. Deflate is ambiguous and + // not as universally supported anyway. + // See: https://zlib.net/zlib_faq.html#faq39 + // + // Note that we don't request this for HEAD requests, + // due to a bug in nginx: + // http://trac.nginx.org/nginx/ticket/358 + // https://golang.org/issue/5522 + // + // We don't request gzip if the request is for a range, since + // auto-decoding a portion of a gzipped document will just fail + // anyway. See https://golang.org/issue/8923 + cs.requestedGzip = true + } + + go cs.doRequest(req, streamf) waitDone := func() error { select { @@ -1268,21 +1319,23 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { cancelRequest := func(cs *clientStream, err error) error { cs.cc.mu.Lock() - defer cs.cc.mu.Unlock() - cs.abortStreamLocked(err) - if cs.ID != 0 { - // This request may have failed because of a problem with the connection, - // or for some unrelated reason. (For example, the user might have canceled - // the request without waiting for a response.) Mark the connection as - // not reusable, since trying to reuse a dead connection is worse than - // unnecessarily creating a new one. - // - // If cs.ID is 0, then the request was never allocated a stream ID and - // whatever went wrong was unrelated to the connection. We might have - // timed out waiting for a stream slot when StrictMaxConcurrentStreams - // is set, for example, in which case retrying on a different connection - // will not help. - cs.cc.doNotReuse = true + bodyClosed := cs.reqBodyClosed + cs.cc.mu.Unlock() + // Wait for the request body to be closed. + // + // If nothing closed the body before now, abortStreamLocked + // will have started a goroutine to close it. + // + // Closing the body before returning avoids a race condition + // with net/http checking its readTrackingBody to see if the + // body was read from or closed. See golang/go#60041. + // + // The body is closed in a separate goroutine without the + // connection mutex held, but dropping the mutex before waiting + // will keep us from holding it indefinitely if the body + // close is slow for some reason. + if bodyClosed != nil { + <-bodyClosed } return err } @@ -1301,11 +1354,14 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { return handleResponseHeaders() default: waitDone() - return nil, cancelRequest(cs, cs.abortErr) + return nil, cs.abortErr } case <-ctx.Done(): - return nil, cancelRequest(cs, ctx.Err()) + err := ctx.Err() + cs.abortStream(err) + return nil, cancelRequest(cs, err) case <-cs.reqCancel: + cs.abortStream(errRequestCanceled) return nil, cancelRequest(cs, errRequestCanceled) } } @@ -1314,8 +1370,9 @@ func (cc *ClientConn) RoundTrip(req *http.Request) (*http.Response, error) { // doRequest runs for the duration of the request lifetime. // // It sends the request and performs post-request cleanup (closing Request.Body, etc.). -func (cs *clientStream) doRequest(req *http.Request) { - err := cs.writeRequest(req) +func (cs *clientStream) doRequest(req *http.Request, streamf func(*clientStream)) { + cs.cc.t.markNewGoroutine() + err := cs.writeRequest(req, streamf) cs.cleanupWriteRequest(err) } @@ -1326,7 +1383,7 @@ func (cs *clientStream) doRequest(req *http.Request) { // // It returns non-nil if the request ends otherwise. // If the returned error is StreamError, the error Code may be used in resetting the stream. -func (cs *clientStream) writeRequest(req *http.Request) (err error) { +func (cs *clientStream) writeRequest(req *http.Request, streamf func(*clientStream)) (err error) { cc := cs.cc ctx := cs.ctx @@ -1364,24 +1421,8 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { } cc.mu.Unlock() - // TODO(bradfitz): this is a copy of the logic in net/http. Unify somewhere? - if !cc.t.disableCompression() && - req.Header.Get("Accept-Encoding") == "" && - req.Header.Get("Range") == "" && - !cs.isHead { - // Request gzip only, not deflate. Deflate is ambiguous and - // not as universally supported anyway. - // See: https://zlib.net/zlib_faq.html#faq39 - // - // Note that we don't request this for HEAD requests, - // due to a bug in nginx: - // http://trac.nginx.org/nginx/ticket/358 - // https://golang.org/issue/5522 - // - // We don't request gzip if the request is for a range, since - // auto-decoding a portion of a gzipped document will just fail - // anyway. See https://golang.org/issue/8923 - cs.requestedGzip = true + if streamf != nil { + streamf(cs) } continueTimeout := cc.t.expectContinueTimeout() @@ -1444,9 +1485,9 @@ func (cs *clientStream) writeRequest(req *http.Request) (err error) { var respHeaderTimer <-chan time.Time var respHeaderRecv chan struct{} if d := cc.responseHeaderTimeout(); d != 0 { - timer := time.NewTimer(d) + timer := cc.t.newTimer(d) defer timer.Stop() - respHeaderTimer = timer.C + respHeaderTimer = timer.C() respHeaderRecv = cs.respHeaderRecv } // Wait until the peer half-closes its end of the stream, @@ -1672,7 +1713,27 @@ func (cs *clientStream) frameScratchBufferLen(maxFrameSize int) int { return int(n) // doesn't truncate; max is 512K } -var bufPool sync.Pool // of *[]byte +// Seven bufPools manage different frame sizes. This helps to avoid scenarios where long-running +// streaming requests using small frame sizes occupy large buffers initially allocated for prior +// requests needing big buffers. The size ranges are as follows: +// {0 KB, 16 KB], {16 KB, 32 KB], {32 KB, 64 KB], {64 KB, 128 KB], {128 KB, 256 KB], +// {256 KB, 512 KB], {512 KB, infinity} +// In practice, the maximum scratch buffer size should not exceed 512 KB due to +// frameScratchBufferLen(maxFrameSize), thus the "infinity pool" should never be used. +// It exists mainly as a safety measure, for potential future increases in max buffer size. +var bufPools [7]sync.Pool // of *[]byte +func bufPoolIndex(size int) int { + if size <= 16384 { + return 0 + } + size -= 1 + bits := bits.Len(uint(size)) + index := bits - 14 + if index >= len(bufPools) { + return len(bufPools) - 1 + } + return index +} func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { cc := cs.cc @@ -1690,12 +1751,13 @@ func (cs *clientStream) writeRequestBody(req *http.Request) (err error) { // Scratch buffer for reading into & writing from. scratchLen := cs.frameScratchBufferLen(maxFrameSize) var buf []byte - if bp, ok := bufPool.Get().(*[]byte); ok && len(*bp) >= scratchLen { - defer bufPool.Put(bp) + index := bufPoolIndex(scratchLen) + if bp, ok := bufPools[index].Get().(*[]byte); ok && len(*bp) >= scratchLen { + defer bufPools[index].Put(bp) buf = *bp } else { buf = make([]byte, scratchLen) - defer bufPool.Put(&buf) + defer bufPools[index].Put(&buf) } var sawEOF bool @@ -1846,6 +1908,22 @@ func (cs *clientStream) awaitFlowControl(maxBytes int) (taken int32, err error) } } +func validateHeaders(hdrs http.Header) string { + for k, vv := range hdrs { + if !httpguts.ValidHeaderFieldName(k) { + return fmt.Sprintf("name %q", k) + } + for _, v := range vv { + if !httpguts.ValidHeaderFieldValue(v) { + // Don't include the value in the error, + // because it may be sensitive. + return fmt.Sprintf("value for header %q", k) + } + } + } + return "" +} + var errNilRequestURL = errors.New("http2: Request.URI is nil") // requires cc.wmu be held. @@ -1863,6 +1941,9 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail if err != nil { return nil, err } + if !httpguts.ValidHostHeader(host) { + return nil, errors.New("http2: invalid Host header") + } var path string if req.Method != "CONNECT" { @@ -1880,26 +1961,21 @@ func (cc *ClientConn) encodeHeaders(req *http.Request, addGzipHeader bool, trail } } - // Check for any invalid headers and return an error before we + // Check for any invalid headers+trailers and return an error before we // potentially pollute our hpack state. (We want to be able to // continue to reuse the hpack encoder for future requests) - for k, vv := range req.Header { - if !httpguts.ValidHeaderFieldName(k) { - return nil, fmt.Errorf("invalid HTTP header name %q", k) - } - for _, v := range vv { - if !httpguts.ValidHeaderFieldValue(v) { - // Don't include the value in the error, because it may be sensitive. - return nil, fmt.Errorf("invalid HTTP header value for header %q", k) - } - } + if err := validateHeaders(req.Header); err != "" { + return nil, fmt.Errorf("invalid HTTP header %s", err) + } + if err := validateHeaders(req.Trailer); err != "" { + return nil, fmt.Errorf("invalid HTTP trailer %s", err) } enumerateHeaders := func(f func(name, value string)) { // 8.1.2.3 Request Pseudo-Header Fields // The :path pseudo-header field includes the path and query parts of the // target URI (the path-absolute production and optionally a '?' character - // followed by the query production (see Sections 3.3 and 3.4 of + // followed by the query production, see Sections 3.3 and 3.4 of // [RFC3986]). f(":authority", host) m := req.Method @@ -2088,7 +2164,7 @@ type resAndError struct { func (cc *ClientConn) addStreamLocked(cs *clientStream) { cs.flow.add(int32(cc.initialWindowSize)) cs.flow.setConnFlow(&cc.flow) - cs.inflow.init(transportDefaultStreamFlow) + cs.inflow.init(cc.initialStreamRecvWindowSize) cs.ID = cc.nextStreamID cc.nextStreamID += 2 cc.streams[cs.ID] = cs @@ -2133,6 +2209,7 @@ type clientConnReadLoop struct { // readLoop runs in its own goroutine and reads and dispatches frames. func (cc *ClientConn) readLoop() { + cc.t.markNewGoroutine() rl := &clientConnReadLoop{cc: cc} defer rl.cleanup() cc.readerErr = rl.run() @@ -2233,11 +2310,10 @@ func (cc *ClientConn) countReadFrameError(err error) { func (rl *clientConnReadLoop) run() error { cc := rl.cc gotSettings := false - readIdleTimeout := cc.t.ReadIdleTimeout - var t *time.Timer + readIdleTimeout := cc.readIdleTimeout + var t timer if readIdleTimeout != 0 { - t = time.AfterFunc(readIdleTimeout, cc.healthCheck) - defer t.Stop() + t = cc.t.afterFunc(readIdleTimeout, cc.healthCheck) } for { f, err := cc.fr.ReadFrame() @@ -2652,7 +2728,7 @@ func (rl *clientConnReadLoop) processData(f *DataFrame) error { }) return nil } - if !cs.firstByte { + if !cs.pastHeaders { cc.logf("protocol error: received DATA before a HEADERS frame") rl.endStreamError(cs, StreamError{ StreamID: f.StreamID, @@ -2879,6 +2955,15 @@ func (rl *clientConnReadLoop) processWindowUpdate(f *WindowUpdateFrame) error { fl = &cs.flow } if !fl.add(int32(f.Increment)) { + // For stream, the sender sends RST_STREAM with an error code of FLOW_CONTROL_ERROR + if cs != nil { + rl.endStreamError(cs, StreamError{ + StreamID: f.StreamID, + Code: ErrCodeFlowControl, + }) + return nil + } + return ConnectionError(ErrCodeFlowControl) } cc.cond.Broadcast() @@ -2923,24 +3008,26 @@ func (cc *ClientConn) Ping(ctx context.Context) error { } cc.mu.Unlock() } - errc := make(chan error, 1) + var pingError error + errc := make(chan struct{}) go func() { + cc.t.markNewGoroutine() cc.wmu.Lock() defer cc.wmu.Unlock() - if err := cc.fr.WritePing(false, p); err != nil { - errc <- err + if pingError = cc.fr.WritePing(false, p); pingError != nil { + close(errc) return } - if err := cc.bw.Flush(); err != nil { - errc <- err + if pingError = cc.bw.Flush(); pingError != nil { + close(errc) return } }() select { case <-c: return nil - case err := <-errc: - return err + case <-errc: + return pingError case <-ctx.Done(): return ctx.Err() case <-cc.readerDone: @@ -3109,9 +3196,17 @@ func (rt noDialH2RoundTripper) RoundTrip(req *http.Request) (*http.Response, err } func (t *Transport) idleConnTimeout() time.Duration { + // to keep things backwards compatible, we use non-zero values of + // IdleConnTimeout, followed by using the IdleConnTimeout on the underlying + // http1 transport, followed by 0 + if t.IdleConnTimeout != 0 { + return t.IdleConnTimeout + } + if t.t1 != nil { return t.t1.IdleConnTimeout } + return 0 } @@ -3169,3 +3264,34 @@ func traceFirstResponseByte(trace *httptrace.ClientTrace) { trace.GotFirstResponseByte() } } + +func traceHasWroteHeaderField(trace *httptrace.ClientTrace) bool { + return trace != nil && trace.WroteHeaderField != nil +} + +func traceWroteHeaderField(trace *httptrace.ClientTrace, k, v string) { + if trace != nil && trace.WroteHeaderField != nil { + trace.WroteHeaderField(k, []string{v}) + } +} + +func traceGot1xxResponseFunc(trace *httptrace.ClientTrace) func(int, textproto.MIMEHeader) error { + if trace != nil { + return trace.Got1xxResponse + } + return nil +} + +// dialTLSWithContext uses tls.Dialer, added in Go 1.15, to open a TLS +// connection. +func (t *Transport) dialTLSWithContext(ctx context.Context, network, addr string, cfg *tls.Config) (*tls.Conn, error) { + dialer := &tls.Dialer{ + Config: cfg, + } + cn, err := dialer.DialContext(ctx, network, addr) + if err != nil { + return nil, err + } + tlsCn := cn.(*tls.Conn) // DialContext comment promises this will always succeed + return tlsCn, nil +} diff --git a/vendor/golang.org/x/net/http2/write.go b/vendor/golang.org/x/net/http2/write.go index 33f6139..6ff6bee 100644 --- a/vendor/golang.org/x/net/http2/write.go +++ b/vendor/golang.org/x/net/http2/write.go @@ -131,6 +131,16 @@ func (se StreamError) writeFrame(ctx writeContext) error { func (se StreamError) staysWithinBuffer(max int) bool { return frameHeaderLen+4 <= max } +type writePing struct { + data [8]byte +} + +func (w writePing) writeFrame(ctx writeContext) error { + return ctx.Framer().WritePing(false, w.data) +} + +func (w writePing) staysWithinBuffer(max int) bool { return frameHeaderLen+len(w.data) <= max } + type writePingAck struct{ pf *PingFrame } func (w writePingAck) writeFrame(ctx writeContext) error { diff --git a/vendor/golang.org/x/net/http2/writesched.go b/vendor/golang.org/x/net/http2/writesched.go index c7cd001..cc893ad 100644 --- a/vendor/golang.org/x/net/http2/writesched.go +++ b/vendor/golang.org/x/net/http2/writesched.go @@ -184,7 +184,8 @@ func (wr *FrameWriteRequest) replyToWriter(err error) { // writeQueue is used by implementations of WriteScheduler. type writeQueue struct { - s []FrameWriteRequest + s []FrameWriteRequest + prev, next *writeQueue } func (q *writeQueue) empty() bool { return len(q.s) == 0 } diff --git a/vendor/golang.org/x/net/http2/writesched_priority.go b/vendor/golang.org/x/net/http2/writesched_priority.go index 0a242c6..f678333 100644 --- a/vendor/golang.org/x/net/http2/writesched_priority.go +++ b/vendor/golang.org/x/net/http2/writesched_priority.go @@ -443,8 +443,8 @@ func (ws *priorityWriteScheduler) addClosedOrIdleNode(list *[]*priorityNode, max } func (ws *priorityWriteScheduler) removeNode(n *priorityNode) { - for k := n.kids; k != nil; k = k.next { - k.setParent(n.parent) + for n.kids != nil { + n.kids.setParent(n.parent) } n.setParent(nil) delete(ws.nodes, n.id) diff --git a/vendor/golang.org/x/net/idna/go118.go b/vendor/golang.org/x/net/idna/go118.go index c5c4338..712f1ad 100644 --- a/vendor/golang.org/x/net/idna/go118.go +++ b/vendor/golang.org/x/net/idna/go118.go @@ -5,7 +5,6 @@ // license that can be found in the LICENSE file. //go:build go1.18 -// +build go1.18 package idna diff --git a/vendor/golang.org/x/net/idna/idna10.0.0.go b/vendor/golang.org/x/net/idna/idna10.0.0.go index 64ccf85..7b37178 100644 --- a/vendor/golang.org/x/net/idna/idna10.0.0.go +++ b/vendor/golang.org/x/net/idna/idna10.0.0.go @@ -5,7 +5,6 @@ // license that can be found in the LICENSE file. //go:build go1.10 -// +build go1.10 // Package idna implements IDNA2008 using the compatibility processing // defined by UTS (Unicode Technical Standard) #46, which defines a standard to diff --git a/vendor/golang.org/x/net/idna/idna9.0.0.go b/vendor/golang.org/x/net/idna/idna9.0.0.go index aae6aac..cc6a892 100644 --- a/vendor/golang.org/x/net/idna/idna9.0.0.go +++ b/vendor/golang.org/x/net/idna/idna9.0.0.go @@ -5,7 +5,6 @@ // license that can be found in the LICENSE file. //go:build !go1.10 -// +build !go1.10 // Package idna implements IDNA2008 using the compatibility processing // defined by UTS (Unicode Technical Standard) #46, which defines a standard to @@ -121,7 +120,7 @@ func CheckJoiners(enable bool) Option { } } -// StrictDomainName limits the set of permissable ASCII characters to those +// StrictDomainName limits the set of permissible ASCII characters to those // allowed in domain names as defined in RFC 1034 (A-Z, a-z, 0-9 and the // hyphen). This is set by default for MapForLookup and ValidateForRegistration, // but is only useful if ValidateLabels is set. diff --git a/vendor/golang.org/x/net/idna/pre_go118.go b/vendor/golang.org/x/net/idna/pre_go118.go index 3aaccab..40e74bb 100644 --- a/vendor/golang.org/x/net/idna/pre_go118.go +++ b/vendor/golang.org/x/net/idna/pre_go118.go @@ -5,7 +5,6 @@ // license that can be found in the LICENSE file. //go:build !go1.18 -// +build !go1.18 package idna diff --git a/vendor/golang.org/x/net/idna/tables10.0.0.go b/vendor/golang.org/x/net/idna/tables10.0.0.go index d1d62ef..c6c2bf1 100644 --- a/vendor/golang.org/x/net/idna/tables10.0.0.go +++ b/vendor/golang.org/x/net/idna/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package idna diff --git a/vendor/golang.org/x/net/idna/tables11.0.0.go b/vendor/golang.org/x/net/idna/tables11.0.0.go index 167efba..7678939 100644 --- a/vendor/golang.org/x/net/idna/tables11.0.0.go +++ b/vendor/golang.org/x/net/idna/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package idna diff --git a/vendor/golang.org/x/net/idna/tables12.0.0.go b/vendor/golang.org/x/net/idna/tables12.0.0.go index ab40f7b..0600cd2 100644 --- a/vendor/golang.org/x/net/idna/tables12.0.0.go +++ b/vendor/golang.org/x/net/idna/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package idna diff --git a/vendor/golang.org/x/net/idna/tables13.0.0.go b/vendor/golang.org/x/net/idna/tables13.0.0.go index 390c5e5..2fb768e 100644 --- a/vendor/golang.org/x/net/idna/tables13.0.0.go +++ b/vendor/golang.org/x/net/idna/tables13.0.0.go @@ -1,151 +1,293 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. -//go:build go1.16 -// +build go1.16 +//go:build go1.16 && !go1.21 package idna // UnicodeVersion is the Unicode version from which the tables in this package are derived. const UnicodeVersion = "13.0.0" -var mappings string = "" + // Size: 8188 bytes - "\x00\x01 \x03 ̈\x01a\x03 ̄\x012\x013\x03 ́\x03 ̧\x011\x01o\x051⁄4\x051⁄2" + - "\x053⁄4\x03i̇\x03l·\x03ʼn\x01s\x03dž\x03ⱥ\x03ⱦ\x01h\x01j\x01r\x01w\x01y" + - "\x03 ̆\x03 ̇\x03 ̊\x03 ̨\x03 ̃\x03 ̋\x01l\x01x\x04̈́\x03 ι\x01;\x05 ̈́" + - "\x04եւ\x04اٴ\x04وٴ\x04ۇٴ\x04يٴ\x06क़\x06ख़\x06ग़\x06ज़\x06ड़\x06ढ़\x06फ़" + - "\x06य़\x06ড়\x06ঢ়\x06য়\x06ਲ਼\x06ਸ਼\x06ਖ਼\x06ਗ਼\x06ਜ਼\x06ਫ਼\x06ଡ଼\x06ଢ଼" + - "\x06ํา\x06ໍາ\x06ຫນ\x06ຫມ\x06གྷ\x06ཌྷ\x06དྷ\x06བྷ\x06ཛྷ\x06ཀྵ\x06ཱི\x06ཱུ" + - "\x06ྲྀ\x09ྲཱྀ\x06ླྀ\x09ླཱྀ\x06ཱྀ\x06ྒྷ\x06ྜྷ\x06ྡྷ\x06ྦྷ\x06ྫྷ\x06ྐྵ\x02" + - "в\x02д\x02о\x02с\x02т\x02ъ\x02ѣ\x02æ\x01b\x01d\x01e\x02ǝ\x01g\x01i\x01k" + - "\x01m\x01n\x02ȣ\x01p\x01t\x01u\x02ɐ\x02ɑ\x02ə\x02ɛ\x02ɜ\x02ŋ\x02ɔ\x02ɯ" + - "\x01v\x02β\x02γ\x02δ\x02φ\x02χ\x02ρ\x02н\x02ɒ\x01c\x02ɕ\x02ð\x01f\x02ɟ" + - "\x02ɡ\x02ɥ\x02ɨ\x02ɩ\x02ɪ\x02ʝ\x02ɭ\x02ʟ\x02ɱ\x02ɰ\x02ɲ\x02ɳ\x02ɴ\x02ɵ" + - "\x02ɸ\x02ʂ\x02ʃ\x02ƫ\x02ʉ\x02ʊ\x02ʋ\x02ʌ\x01z\x02ʐ\x02ʑ\x02ʒ\x02θ\x02ss" + - "\x02ά\x02έ\x02ή\x02ί\x02ό\x02ύ\x02ώ\x05ἀι\x05ἁι\x05ἂι\x05ἃι\x05ἄι\x05ἅι" + - "\x05ἆι\x05ἇι\x05ἠι\x05ἡι\x05ἢι\x05ἣι\x05ἤι\x05ἥι\x05ἦι\x05ἧι\x05ὠι\x05ὡι" + - "\x05ὢι\x05ὣι\x05ὤι\x05ὥι\x05ὦι\x05ὧι\x05ὰι\x04αι\x04άι\x05ᾶι\x02ι\x05 ̈͂" + - "\x05ὴι\x04ηι\x04ήι\x05ῆι\x05 ̓̀\x05 ̓́\x05 ̓͂\x02ΐ\x05 ̔̀\x05 ̔́\x05 ̔͂" + - "\x02ΰ\x05 ̈̀\x01`\x05ὼι\x04ωι\x04ώι\x05ῶι\x06′′\x09′′′\x06‵‵\x09‵‵‵\x02!" + - "!\x02??\x02?!\x02!?\x0c′′′′\x010\x014\x015\x016\x017\x018\x019\x01+\x01=" + - "\x01(\x01)\x02rs\x02ħ\x02no\x01q\x02sm\x02tm\x02ω\x02å\x02א\x02ב\x02ג" + - "\x02ד\x02π\x051⁄7\x051⁄9\x061⁄10\x051⁄3\x052⁄3\x051⁄5\x052⁄5\x053⁄5\x054" + - "⁄5\x051⁄6\x055⁄6\x051⁄8\x053⁄8\x055⁄8\x057⁄8\x041⁄\x02ii\x02iv\x02vi" + - "\x04viii\x02ix\x02xi\x050⁄3\x06∫∫\x09∫∫∫\x06∮∮\x09∮∮∮\x0210\x0211\x0212" + - "\x0213\x0214\x0215\x0216\x0217\x0218\x0219\x0220\x04(10)\x04(11)\x04(12)" + - "\x04(13)\x04(14)\x04(15)\x04(16)\x04(17)\x04(18)\x04(19)\x04(20)\x0c∫∫∫∫" + - "\x02==\x05⫝̸\x02ɫ\x02ɽ\x02ȿ\x02ɀ\x01.\x04 ゙\x04 ゚\x06より\x06コト\x05(ᄀ)\x05" + - "(ᄂ)\x05(ᄃ)\x05(ᄅ)\x05(ᄆ)\x05(ᄇ)\x05(ᄉ)\x05(ᄋ)\x05(ᄌ)\x05(ᄎ)\x05(ᄏ)\x05(ᄐ" + - ")\x05(ᄑ)\x05(ᄒ)\x05(가)\x05(나)\x05(다)\x05(라)\x05(마)\x05(바)\x05(사)\x05(아)" + - "\x05(자)\x05(차)\x05(카)\x05(타)\x05(파)\x05(하)\x05(주)\x08(오전)\x08(오후)\x05(一)" + - "\x05(二)\x05(三)\x05(四)\x05(五)\x05(六)\x05(七)\x05(八)\x05(九)\x05(十)\x05(月)" + - "\x05(火)\x05(水)\x05(木)\x05(金)\x05(土)\x05(日)\x05(株)\x05(有)\x05(社)\x05(名)" + - "\x05(特)\x05(財)\x05(祝)\x05(労)\x05(代)\x05(呼)\x05(学)\x05(監)\x05(企)\x05(資)" + - "\x05(協)\x05(祭)\x05(休)\x05(自)\x05(至)\x0221\x0222\x0223\x0224\x0225\x0226" + - "\x0227\x0228\x0229\x0230\x0231\x0232\x0233\x0234\x0235\x06참고\x06주의\x0236" + - "\x0237\x0238\x0239\x0240\x0241\x0242\x0243\x0244\x0245\x0246\x0247\x0248" + - "\x0249\x0250\x041月\x042月\x043月\x044月\x045月\x046月\x047月\x048月\x049月\x0510" + - "月\x0511月\x0512月\x02hg\x02ev\x06令和\x0cアパート\x0cアルファ\x0cアンペア\x09アール\x0cイニ" + - "ング\x09インチ\x09ウォン\x0fエスクード\x0cエーカー\x09オンス\x09オーム\x09カイリ\x0cカラット\x0cカロリー" + - "\x09ガロン\x09ガンマ\x06ギガ\x09ギニー\x0cキュリー\x0cギルダー\x06キロ\x0fキログラム\x12キロメートル\x0f" + - "キロワット\x09グラム\x0fグラムトン\x0fクルゼイロ\x0cクローネ\x09ケース\x09コルナ\x09コーポ\x0cサイクル" + - "\x0fサンチーム\x0cシリング\x09センチ\x09セント\x09ダース\x06デシ\x06ドル\x06トン\x06ナノ\x09ノット" + - "\x09ハイツ\x0fパーセント\x09パーツ\x0cバーレル\x0fピアストル\x09ピクル\x06ピコ\x06ビル\x0fファラッド\x0c" + - "フィート\x0fブッシェル\x09フラン\x0fヘクタール\x06ペソ\x09ペニヒ\x09ヘルツ\x09ペンス\x09ページ\x09ベータ" + - "\x0cポイント\x09ボルト\x06ホン\x09ポンド\x09ホール\x09ホーン\x0cマイクロ\x09マイル\x09マッハ\x09マルク" + - "\x0fマンション\x0cミクロン\x06ミリ\x0fミリバール\x06メガ\x0cメガトン\x0cメートル\x09ヤード\x09ヤール\x09" + - "ユアン\x0cリットル\x06リラ\x09ルピー\x0cルーブル\x06レム\x0fレントゲン\x09ワット\x040点\x041点\x04" + - "2点\x043点\x044点\x045点\x046点\x047点\x048点\x049点\x0510点\x0511点\x0512点\x0513点" + - "\x0514点\x0515点\x0516点\x0517点\x0518点\x0519点\x0520点\x0521点\x0522点\x0523点" + - "\x0524点\x02da\x02au\x02ov\x02pc\x02dm\x02iu\x06平成\x06昭和\x06大正\x06明治\x0c株" + - "式会社\x02pa\x02na\x02ma\x02ka\x02kb\x02mb\x02gb\x04kcal\x02pf\x02nf\x02m" + - "g\x02kg\x02hz\x02ml\x02dl\x02kl\x02fm\x02nm\x02mm\x02cm\x02km\x02m2\x02m" + - "3\x05m∕s\x06m∕s2\x07rad∕s\x08rad∕s2\x02ps\x02ns\x02ms\x02pv\x02nv\x02mv" + - "\x02kv\x02pw\x02nw\x02mw\x02kw\x02bq\x02cc\x02cd\x06c∕kg\x02db\x02gy\x02" + - "ha\x02hp\x02in\x02kk\x02kt\x02lm\x02ln\x02lx\x02ph\x02pr\x02sr\x02sv\x02" + - "wb\x05v∕m\x05a∕m\x041日\x042日\x043日\x044日\x045日\x046日\x047日\x048日\x049日" + - "\x0510日\x0511日\x0512日\x0513日\x0514日\x0515日\x0516日\x0517日\x0518日\x0519日" + - "\x0520日\x0521日\x0522日\x0523日\x0524日\x0525日\x0526日\x0527日\x0528日\x0529日" + - "\x0530日\x0531日\x02ь\x02ɦ\x02ɬ\x02ʞ\x02ʇ\x02œ\x02ʍ\x04𤋮\x04𢡊\x04𢡄\x04𣏕" + - "\x04𥉉\x04𥳐\x04𧻓\x02ff\x02fi\x02fl\x02st\x04մն\x04մե\x04մի\x04վն\x04մխ" + - "\x04יִ\x04ײַ\x02ע\x02ה\x02כ\x02ל\x02ם\x02ר\x02ת\x04שׁ\x04שׂ\x06שּׁ\x06שּ" + - "ׂ\x04אַ\x04אָ\x04אּ\x04בּ\x04גּ\x04דּ\x04הּ\x04וּ\x04זּ\x04טּ\x04יּ\x04" + - "ךּ\x04כּ\x04לּ\x04מּ\x04נּ\x04סּ\x04ףּ\x04פּ\x04צּ\x04קּ\x04רּ\x04שּ" + - "\x04תּ\x04וֹ\x04בֿ\x04כֿ\x04פֿ\x04אל\x02ٱ\x02ٻ\x02پ\x02ڀ\x02ٺ\x02ٿ\x02ٹ" + - "\x02ڤ\x02ڦ\x02ڄ\x02ڃ\x02چ\x02ڇ\x02ڍ\x02ڌ\x02ڎ\x02ڈ\x02ژ\x02ڑ\x02ک\x02گ" + - "\x02ڳ\x02ڱ\x02ں\x02ڻ\x02ۀ\x02ہ\x02ھ\x02ے\x02ۓ\x02ڭ\x02ۇ\x02ۆ\x02ۈ\x02ۋ" + - "\x02ۅ\x02ۉ\x02ې\x02ى\x04ئا\x04ئە\x04ئو\x04ئۇ\x04ئۆ\x04ئۈ\x04ئې\x04ئى\x02" + - "ی\x04ئج\x04ئح\x04ئم\x04ئي\x04بج\x04بح\x04بخ\x04بم\x04بى\x04بي\x04تج\x04" + - "تح\x04تخ\x04تم\x04تى\x04تي\x04ثج\x04ثم\x04ثى\x04ثي\x04جح\x04جم\x04حج" + - "\x04حم\x04خج\x04خح\x04خم\x04سج\x04سح\x04سخ\x04سم\x04صح\x04صم\x04ضج\x04ضح" + - "\x04ضخ\x04ضم\x04طح\x04طم\x04ظم\x04عج\x04عم\x04غج\x04غم\x04فج\x04فح\x04فخ" + - "\x04فم\x04فى\x04في\x04قح\x04قم\x04قى\x04قي\x04كا\x04كج\x04كح\x04كخ\x04كل" + - "\x04كم\x04كى\x04كي\x04لج\x04لح\x04لخ\x04لم\x04لى\x04لي\x04مج\x04مح\x04مخ" + - "\x04مم\x04مى\x04مي\x04نج\x04نح\x04نخ\x04نم\x04نى\x04ني\x04هج\x04هم\x04هى" + - "\x04هي\x04يج\x04يح\x04يخ\x04يم\x04يى\x04يي\x04ذٰ\x04رٰ\x04ىٰ\x05 ٌّ\x05 " + - "ٍّ\x05 َّ\x05 ُّ\x05 ِّ\x05 ّٰ\x04ئر\x04ئز\x04ئن\x04بر\x04بز\x04بن\x04ت" + - "ر\x04تز\x04تن\x04ثر\x04ثز\x04ثن\x04ما\x04نر\x04نز\x04نن\x04ير\x04يز\x04" + - "ين\x04ئخ\x04ئه\x04به\x04ته\x04صخ\x04له\x04نه\x04هٰ\x04يه\x04ثه\x04سه" + - "\x04شم\x04شه\x06ـَّ\x06ـُّ\x06ـِّ\x04طى\x04طي\x04عى\x04عي\x04غى\x04غي" + - "\x04سى\x04سي\x04شى\x04شي\x04حى\x04حي\x04جى\x04جي\x04خى\x04خي\x04صى\x04صي" + - "\x04ضى\x04ضي\x04شج\x04شح\x04شخ\x04شر\x04سر\x04صر\x04ضر\x04اً\x06تجم\x06ت" + - "حج\x06تحم\x06تخم\x06تمج\x06تمح\x06تمخ\x06جمح\x06حمي\x06حمى\x06سحج\x06سج" + - "ح\x06سجى\x06سمح\x06سمج\x06سمم\x06صحح\x06صمم\x06شحم\x06شجي\x06شمخ\x06شمم" + - "\x06ضحى\x06ضخم\x06طمح\x06طمم\x06طمي\x06عجم\x06عمم\x06عمى\x06غمم\x06غمي" + - "\x06غمى\x06فخم\x06قمح\x06قمم\x06لحم\x06لحي\x06لحى\x06لجج\x06لخم\x06لمح" + - "\x06محج\x06محم\x06محي\x06مجح\x06مجم\x06مخج\x06مخم\x06مجخ\x06همج\x06همم" + - "\x06نحم\x06نحى\x06نجم\x06نجى\x06نمي\x06نمى\x06يمم\x06بخي\x06تجي\x06تجى" + - "\x06تخي\x06تخى\x06تمي\x06تمى\x06جمي\x06جحى\x06جمى\x06سخى\x06صحي\x06شحي" + - "\x06ضحي\x06لجي\x06لمي\x06يحي\x06يجي\x06يمي\x06ممي\x06قمي\x06نحي\x06عمي" + - "\x06كمي\x06نجح\x06مخي\x06لجم\x06كمم\x06جحي\x06حجي\x06مجي\x06فمي\x06بحي" + - "\x06سخي\x06نجي\x06صلے\x06قلے\x08الله\x08اكبر\x08محمد\x08صلعم\x08رسول\x08" + - "عليه\x08وسلم\x06صلى!صلى الله عليه وسلم\x0fجل جلاله\x08ریال\x01,\x01:" + - "\x01!\x01?\x01_\x01{\x01}\x01[\x01]\x01#\x01&\x01*\x01-\x01<\x01>\x01\\" + - "\x01$\x01%\x01@\x04ـً\x04ـَ\x04ـُ\x04ـِ\x04ـّ\x04ـْ\x02ء\x02آ\x02أ\x02ؤ" + - "\x02إ\x02ئ\x02ا\x02ب\x02ة\x02ت\x02ث\x02ج\x02ح\x02خ\x02د\x02ذ\x02ر\x02ز" + - "\x02س\x02ش\x02ص\x02ض\x02ط\x02ظ\x02ع\x02غ\x02ف\x02ق\x02ك\x02ل\x02م\x02ن" + - "\x02ه\x02و\x02ي\x04لآ\x04لأ\x04لإ\x04لا\x01\x22\x01'\x01/\x01^\x01|\x01~" + - "\x02¢\x02£\x02¬\x02¦\x02¥\x08𝅗𝅥\x08𝅘𝅥\x0c𝅘𝅥𝅮\x0c𝅘𝅥𝅯\x0c𝅘𝅥𝅰\x0c𝅘𝅥𝅱\x0c𝅘𝅥𝅲" + - "\x08𝆹𝅥\x08𝆺𝅥\x0c𝆹𝅥𝅮\x0c𝆺𝅥𝅮\x0c𝆹𝅥𝅯\x0c𝆺𝅥𝅯\x02ı\x02ȷ\x02α\x02ε\x02ζ\x02η" + - "\x02κ\x02λ\x02μ\x02ν\x02ξ\x02ο\x02σ\x02τ\x02υ\x02ψ\x03∇\x03∂\x02ϝ\x02ٮ" + - "\x02ڡ\x02ٯ\x020,\x021,\x022,\x023,\x024,\x025,\x026,\x027,\x028,\x029," + - "\x03(a)\x03(b)\x03(c)\x03(d)\x03(e)\x03(f)\x03(g)\x03(h)\x03(i)\x03(j)" + - "\x03(k)\x03(l)\x03(m)\x03(n)\x03(o)\x03(p)\x03(q)\x03(r)\x03(s)\x03(t)" + - "\x03(u)\x03(v)\x03(w)\x03(x)\x03(y)\x03(z)\x07〔s〕\x02wz\x02hv\x02sd\x03p" + - "pv\x02wc\x02mc\x02md\x02mr\x02dj\x06ほか\x06ココ\x03サ\x03手\x03字\x03双\x03デ" + - "\x03二\x03多\x03解\x03天\x03交\x03映\x03無\x03料\x03前\x03後\x03再\x03新\x03初\x03終" + - "\x03生\x03販\x03声\x03吹\x03演\x03投\x03捕\x03一\x03三\x03遊\x03左\x03中\x03右\x03指" + - "\x03走\x03打\x03禁\x03空\x03合\x03満\x03有\x03月\x03申\x03割\x03営\x03配\x09〔本〕\x09〔" + - "三〕\x09〔二〕\x09〔安〕\x09〔点〕\x09〔打〕\x09〔盗〕\x09〔勝〕\x09〔敗〕\x03得\x03可\x03丽\x03" + - "丸\x03乁\x03你\x03侮\x03侻\x03倂\x03偺\x03備\x03僧\x03像\x03㒞\x03免\x03兔\x03兤\x03" + - "具\x03㒹\x03內\x03冗\x03冤\x03仌\x03冬\x03况\x03凵\x03刃\x03㓟\x03刻\x03剆\x03剷\x03" + - "㔕\x03勇\x03勉\x03勤\x03勺\x03包\x03匆\x03北\x03卉\x03卑\x03博\x03即\x03卽\x03卿\x03" + - "灰\x03及\x03叟\x03叫\x03叱\x03吆\x03咞\x03吸\x03呈\x03周\x03咢\x03哶\x03唐\x03啓\x03" + - "啣\x03善\x03喙\x03喫\x03喳\x03嗂\x03圖\x03嘆\x03圗\x03噑\x03噴\x03切\x03壮\x03城\x03" + - "埴\x03堍\x03型\x03堲\x03報\x03墬\x03売\x03壷\x03夆\x03夢\x03奢\x03姬\x03娛\x03娧\x03" + - "姘\x03婦\x03㛮\x03嬈\x03嬾\x03寃\x03寘\x03寧\x03寳\x03寿\x03将\x03尢\x03㞁\x03屠\x03" + - "屮\x03峀\x03岍\x03嵃\x03嵮\x03嵫\x03嵼\x03巡\x03巢\x03㠯\x03巽\x03帨\x03帽\x03幩\x03" + - "㡢\x03㡼\x03庰\x03庳\x03庶\x03廊\x03廾\x03舁\x03弢\x03㣇\x03形\x03彫\x03㣣\x03徚\x03" + - "忍\x03志\x03忹\x03悁\x03㤺\x03㤜\x03悔\x03惇\x03慈\x03慌\x03慎\x03慺\x03憎\x03憲\x03" + - "憤\x03憯\x03懞\x03懲\x03懶\x03成\x03戛\x03扝\x03抱\x03拔\x03捐\x03挽\x03拼\x03捨\x03" + - "掃\x03揤\x03搢\x03揅\x03掩\x03㨮\x03摩\x03摾\x03撝\x03摷\x03㩬\x03敏\x03敬\x03旣\x03" + - "書\x03晉\x03㬙\x03暑\x03㬈\x03㫤\x03冒\x03冕\x03最\x03暜\x03肭\x03䏙\x03朗\x03望\x03" + - "朡\x03杞\x03杓\x03㭉\x03柺\x03枅\x03桒\x03梅\x03梎\x03栟\x03椔\x03㮝\x03楂\x03榣\x03" + - "槪\x03檨\x03櫛\x03㰘\x03次\x03歔\x03㱎\x03歲\x03殟\x03殺\x03殻\x03汎\x03沿\x03泍\x03" + - "汧\x03洖\x03派\x03海\x03流\x03浩\x03浸\x03涅\x03洴\x03港\x03湮\x03㴳\x03滋\x03滇\x03" + - "淹\x03潮\x03濆\x03瀹\x03瀞\x03瀛\x03㶖\x03灊\x03災\x03灷\x03炭\x03煅\x03熜\x03爨\x03" + - "爵\x03牐\x03犀\x03犕\x03獺\x03王\x03㺬\x03玥\x03㺸\x03瑇\x03瑜\x03瑱\x03璅\x03瓊\x03" + - "㼛\x03甤\x03甾\x03異\x03瘐\x03㿼\x03䀈\x03直\x03眞\x03真\x03睊\x03䀹\x03瞋\x03䁆\x03" + - "䂖\x03硎\x03碌\x03磌\x03䃣\x03祖\x03福\x03秫\x03䄯\x03穀\x03穊\x03穏\x03䈂\x03篆\x03" + - "築\x03䈧\x03糒\x03䊠\x03糨\x03糣\x03紀\x03絣\x03䌁\x03緇\x03縂\x03繅\x03䌴\x03䍙\x03" + - "罺\x03羕\x03翺\x03者\x03聠\x03聰\x03䏕\x03育\x03脃\x03䐋\x03脾\x03媵\x03舄\x03辞\x03" + - "䑫\x03芑\x03芋\x03芝\x03劳\x03花\x03芳\x03芽\x03苦\x03若\x03茝\x03荣\x03莭\x03茣\x03" + - "莽\x03菧\x03著\x03荓\x03菊\x03菌\x03菜\x03䔫\x03蓱\x03蓳\x03蔖\x03蕤\x03䕝\x03䕡\x03" + - "䕫\x03虐\x03虜\x03虧\x03虩\x03蚩\x03蚈\x03蜎\x03蛢\x03蝹\x03蜨\x03蝫\x03螆\x03蟡\x03" + - "蠁\x03䗹\x03衠\x03衣\x03裗\x03裞\x03䘵\x03裺\x03㒻\x03䚾\x03䛇\x03誠\x03諭\x03變\x03" + - "豕\x03貫\x03賁\x03贛\x03起\x03跋\x03趼\x03跰\x03軔\x03輸\x03邔\x03郱\x03鄑\x03鄛\x03" + - "鈸\x03鋗\x03鋘\x03鉼\x03鏹\x03鐕\x03開\x03䦕\x03閷\x03䧦\x03雃\x03嶲\x03霣\x03䩮\x03" + - "䩶\x03韠\x03䪲\x03頋\x03頩\x03飢\x03䬳\x03餩\x03馧\x03駂\x03駾\x03䯎\x03鬒\x03鱀\x03" + - "鳽\x03䳎\x03䳭\x03鵧\x03䳸\x03麻\x03䵖\x03黹\x03黾\x03鼅\x03鼏\x03鼖\x03鼻" +var mappings string = "" + // Size: 6539 bytes + " ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक" + + "़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀྲཱྀླྀླཱ" + + "ཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳ" + + "ɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧ" + + "ιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′′′′‵‵‵‵‵!!???!!?" + + "′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83" + + "⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫∫∫∫∮∮∮∮∮1011121314151617181920(10)(11)(12" + + ")(13)(14)(15)(16)(17)(18)(19)(20)∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)" + + "(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전" + + ")(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(" + + "財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)21222324252627282930313233343" + + "5참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和アパート" + + "アルファアンペアアールイニングインチウォンエスクードエーカーオンスオームカイリカラットカロリーガロンガンマギガギニーキュリーギルダーキロキロ" + + "グラムキロメートルキロワットグラムグラムトンクルゼイロクローネケースコルナコーポサイクルサンチームシリングセンチセントダースデシドルトンナノ" + + "ノットハイツパーセントパーツバーレルピアストルピクルピコビルファラッドフィートブッシェルフランヘクタールペソペニヒヘルツペンスページベータポ" + + "イントボルトホンポンドホールホーンマイクロマイルマッハマルクマンションミクロンミリミリバールメガメガトンメートルヤードヤールユアンリットルリ" + + "ラルピールーブルレムレントゲンワット0点1点2点3点4点5点6点7点8点9点10点11点12点13点14点15点16点17点18点19点20" + + "点21点22点23点24点daauovpcdmiu平成昭和大正明治株式会社panamakakbmbgbkcalpfnfmgkghzmldlk" + + "lfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhah" + + "pinkkktlmlnlxphprsrsvwbv∕ma∕m1日2日3日4日5日6日7日8日9日10日11日12日13日14日15日16日17日1" + + "8日19日20日21日22日23日24日25日26日27日28日29日30日31日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմ" + + "խיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּו" + + "ֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئم" + + "ئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحط" + + "مظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمي" + + "نجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترت" + + "زتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيس" + + "ىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميح" + + "مىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمى" + + "فخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنم" + + "ينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمين" + + "حيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليه" + + "وسلمصلىصلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\\$%@ـًـَـُـِـّـْءآ" + + "أؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا\x22'/^|~¢£¬¦¥𝅗𝅥𝅘𝅥𝅘𝅥𝅮𝅘𝅥𝅯𝅘𝅥𝅰𝅘𝅥𝅱" + + "𝅘𝅥𝅲𝆹𝅥𝆺𝅥𝆹𝅥𝅮𝆺𝅥𝅮𝆹𝅥𝅯𝆺𝅥𝅯ıȷαεζηκλμνξοστυψ∇∂ϝٮڡٯ0,1,2,3,4,5,6,7,8,9,(a)(b)(c" + + ")(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)〔s" + + "〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申割営配〔" + + "本〕〔三〕〔二〕〔安〕〔点〕〔打〕〔盗〕〔勝〕〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉卑博即卽" + + "卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢㠯巽帨帽" + + "幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最暜肭䏙朗" + + "望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸瑇瑜瑱璅" + + "瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦若茝荣莭" + + "茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷䧦雃嶲霣" + + "䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻" + +var mappingIndex = []uint16{ // 1650 elements + // Entry 0 - 3F + 0x0000, 0x0000, 0x0001, 0x0004, 0x0005, 0x0008, 0x0009, 0x000a, + 0x000d, 0x0010, 0x0011, 0x0012, 0x0017, 0x001c, 0x0021, 0x0024, + 0x0027, 0x002a, 0x002b, 0x002e, 0x0031, 0x0034, 0x0035, 0x0036, + 0x0037, 0x0038, 0x0039, 0x003c, 0x003f, 0x0042, 0x0045, 0x0048, + 0x004b, 0x004c, 0x004d, 0x0051, 0x0054, 0x0055, 0x005a, 0x005e, + 0x0062, 0x0066, 0x006a, 0x006e, 0x0074, 0x007a, 0x0080, 0x0086, + 0x008c, 0x0092, 0x0098, 0x009e, 0x00a4, 0x00aa, 0x00b0, 0x00b6, + 0x00bc, 0x00c2, 0x00c8, 0x00ce, 0x00d4, 0x00da, 0x00e0, 0x00e6, + // Entry 40 - 7F + 0x00ec, 0x00f2, 0x00f8, 0x00fe, 0x0104, 0x010a, 0x0110, 0x0116, + 0x011c, 0x0122, 0x0128, 0x012e, 0x0137, 0x013d, 0x0146, 0x014c, + 0x0152, 0x0158, 0x015e, 0x0164, 0x016a, 0x0170, 0x0172, 0x0174, + 0x0176, 0x0178, 0x017a, 0x017c, 0x017e, 0x0180, 0x0181, 0x0182, + 0x0183, 0x0185, 0x0186, 0x0187, 0x0188, 0x0189, 0x018a, 0x018c, + 0x018d, 0x018e, 0x018f, 0x0191, 0x0193, 0x0195, 0x0197, 0x0199, + 0x019b, 0x019d, 0x019f, 0x01a0, 0x01a2, 0x01a4, 0x01a6, 0x01a8, + 0x01aa, 0x01ac, 0x01ae, 0x01b0, 0x01b1, 0x01b3, 0x01b5, 0x01b6, + // Entry 80 - BF + 0x01b8, 0x01ba, 0x01bc, 0x01be, 0x01c0, 0x01c2, 0x01c4, 0x01c6, + 0x01c8, 0x01ca, 0x01cc, 0x01ce, 0x01d0, 0x01d2, 0x01d4, 0x01d6, + 0x01d8, 0x01da, 0x01dc, 0x01de, 0x01e0, 0x01e2, 0x01e4, 0x01e5, + 0x01e7, 0x01e9, 0x01eb, 0x01ed, 0x01ef, 0x01f1, 0x01f3, 0x01f5, + 0x01f7, 0x01f9, 0x01fb, 0x01fd, 0x0202, 0x0207, 0x020c, 0x0211, + 0x0216, 0x021b, 0x0220, 0x0225, 0x022a, 0x022f, 0x0234, 0x0239, + 0x023e, 0x0243, 0x0248, 0x024d, 0x0252, 0x0257, 0x025c, 0x0261, + 0x0266, 0x026b, 0x0270, 0x0275, 0x027a, 0x027e, 0x0282, 0x0287, + // Entry C0 - FF + 0x0289, 0x028e, 0x0293, 0x0297, 0x029b, 0x02a0, 0x02a5, 0x02aa, + 0x02af, 0x02b1, 0x02b6, 0x02bb, 0x02c0, 0x02c2, 0x02c7, 0x02c8, + 0x02cd, 0x02d1, 0x02d5, 0x02da, 0x02e0, 0x02e9, 0x02ef, 0x02f8, + 0x02fa, 0x02fc, 0x02fe, 0x0300, 0x030c, 0x030d, 0x030e, 0x030f, + 0x0310, 0x0311, 0x0312, 0x0313, 0x0314, 0x0315, 0x0316, 0x0317, + 0x0319, 0x031b, 0x031d, 0x031e, 0x0320, 0x0322, 0x0324, 0x0326, + 0x0328, 0x032a, 0x032c, 0x032e, 0x0330, 0x0335, 0x033a, 0x0340, + 0x0345, 0x034a, 0x034f, 0x0354, 0x0359, 0x035e, 0x0363, 0x0368, + // Entry 100 - 13F + 0x036d, 0x0372, 0x0377, 0x037c, 0x0380, 0x0382, 0x0384, 0x0386, + 0x038a, 0x038c, 0x038e, 0x0393, 0x0399, 0x03a2, 0x03a8, 0x03b1, + 0x03b3, 0x03b5, 0x03b7, 0x03b9, 0x03bb, 0x03bd, 0x03bf, 0x03c1, + 0x03c3, 0x03c5, 0x03c7, 0x03cb, 0x03cf, 0x03d3, 0x03d7, 0x03db, + 0x03df, 0x03e3, 0x03e7, 0x03eb, 0x03ef, 0x03f3, 0x03ff, 0x0401, + 0x0406, 0x0408, 0x040a, 0x040c, 0x040e, 0x040f, 0x0413, 0x0417, + 0x041d, 0x0423, 0x0428, 0x042d, 0x0432, 0x0437, 0x043c, 0x0441, + 0x0446, 0x044b, 0x0450, 0x0455, 0x045a, 0x045f, 0x0464, 0x0469, + // Entry 140 - 17F + 0x046e, 0x0473, 0x0478, 0x047d, 0x0482, 0x0487, 0x048c, 0x0491, + 0x0496, 0x049b, 0x04a0, 0x04a5, 0x04aa, 0x04af, 0x04b4, 0x04bc, + 0x04c4, 0x04c9, 0x04ce, 0x04d3, 0x04d8, 0x04dd, 0x04e2, 0x04e7, + 0x04ec, 0x04f1, 0x04f6, 0x04fb, 0x0500, 0x0505, 0x050a, 0x050f, + 0x0514, 0x0519, 0x051e, 0x0523, 0x0528, 0x052d, 0x0532, 0x0537, + 0x053c, 0x0541, 0x0546, 0x054b, 0x0550, 0x0555, 0x055a, 0x055f, + 0x0564, 0x0569, 0x056e, 0x0573, 0x0578, 0x057a, 0x057c, 0x057e, + 0x0580, 0x0582, 0x0584, 0x0586, 0x0588, 0x058a, 0x058c, 0x058e, + // Entry 180 - 1BF + 0x0590, 0x0592, 0x0594, 0x0596, 0x059c, 0x05a2, 0x05a4, 0x05a6, + 0x05a8, 0x05aa, 0x05ac, 0x05ae, 0x05b0, 0x05b2, 0x05b4, 0x05b6, + 0x05b8, 0x05ba, 0x05bc, 0x05be, 0x05c0, 0x05c4, 0x05c8, 0x05cc, + 0x05d0, 0x05d4, 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e9, 0x05ee, + 0x05f3, 0x05f5, 0x05f7, 0x05fd, 0x0609, 0x0615, 0x0621, 0x062a, + 0x0636, 0x063f, 0x0648, 0x0657, 0x0663, 0x066c, 0x0675, 0x067e, + 0x068a, 0x0696, 0x069f, 0x06a8, 0x06ae, 0x06b7, 0x06c3, 0x06cf, + 0x06d5, 0x06e4, 0x06f6, 0x0705, 0x070e, 0x071d, 0x072c, 0x0738, + // Entry 1C0 - 1FF + 0x0741, 0x074a, 0x0753, 0x075f, 0x076e, 0x077a, 0x0783, 0x078c, + 0x0795, 0x079b, 0x07a1, 0x07a7, 0x07ad, 0x07b6, 0x07bf, 0x07ce, + 0x07d7, 0x07e3, 0x07f2, 0x07fb, 0x0801, 0x0807, 0x0816, 0x0822, + 0x0831, 0x083a, 0x0849, 0x084f, 0x0858, 0x0861, 0x086a, 0x0873, + 0x087c, 0x0888, 0x0891, 0x0897, 0x08a0, 0x08a9, 0x08b2, 0x08be, + 0x08c7, 0x08d0, 0x08d9, 0x08e8, 0x08f4, 0x08fa, 0x0909, 0x090f, + 0x091b, 0x0927, 0x0930, 0x0939, 0x0942, 0x094e, 0x0954, 0x095d, + 0x0969, 0x096f, 0x097e, 0x0987, 0x098b, 0x098f, 0x0993, 0x0997, + // Entry 200 - 23F + 0x099b, 0x099f, 0x09a3, 0x09a7, 0x09ab, 0x09af, 0x09b4, 0x09b9, + 0x09be, 0x09c3, 0x09c8, 0x09cd, 0x09d2, 0x09d7, 0x09dc, 0x09e1, + 0x09e6, 0x09eb, 0x09f0, 0x09f5, 0x09fa, 0x09fc, 0x09fe, 0x0a00, + 0x0a02, 0x0a04, 0x0a06, 0x0a0c, 0x0a12, 0x0a18, 0x0a1e, 0x0a2a, + 0x0a2c, 0x0a2e, 0x0a30, 0x0a32, 0x0a34, 0x0a36, 0x0a38, 0x0a3c, + 0x0a3e, 0x0a40, 0x0a42, 0x0a44, 0x0a46, 0x0a48, 0x0a4a, 0x0a4c, + 0x0a4e, 0x0a50, 0x0a52, 0x0a54, 0x0a56, 0x0a58, 0x0a5a, 0x0a5f, + 0x0a65, 0x0a6c, 0x0a74, 0x0a76, 0x0a78, 0x0a7a, 0x0a7c, 0x0a7e, + // Entry 240 - 27F + 0x0a80, 0x0a82, 0x0a84, 0x0a86, 0x0a88, 0x0a8a, 0x0a8c, 0x0a8e, + 0x0a90, 0x0a96, 0x0a98, 0x0a9a, 0x0a9c, 0x0a9e, 0x0aa0, 0x0aa2, + 0x0aa4, 0x0aa6, 0x0aa8, 0x0aaa, 0x0aac, 0x0aae, 0x0ab0, 0x0ab2, + 0x0ab4, 0x0ab9, 0x0abe, 0x0ac2, 0x0ac6, 0x0aca, 0x0ace, 0x0ad2, + 0x0ad6, 0x0ada, 0x0ade, 0x0ae2, 0x0ae7, 0x0aec, 0x0af1, 0x0af6, + 0x0afb, 0x0b00, 0x0b05, 0x0b0a, 0x0b0f, 0x0b14, 0x0b19, 0x0b1e, + 0x0b23, 0x0b28, 0x0b2d, 0x0b32, 0x0b37, 0x0b3c, 0x0b41, 0x0b46, + 0x0b4b, 0x0b50, 0x0b52, 0x0b54, 0x0b56, 0x0b58, 0x0b5a, 0x0b5c, + // Entry 280 - 2BF + 0x0b5e, 0x0b62, 0x0b66, 0x0b6a, 0x0b6e, 0x0b72, 0x0b76, 0x0b7a, + 0x0b7c, 0x0b7e, 0x0b80, 0x0b82, 0x0b86, 0x0b8a, 0x0b8e, 0x0b92, + 0x0b96, 0x0b9a, 0x0b9e, 0x0ba0, 0x0ba2, 0x0ba4, 0x0ba6, 0x0ba8, + 0x0baa, 0x0bac, 0x0bb0, 0x0bb4, 0x0bba, 0x0bc0, 0x0bc4, 0x0bc8, + 0x0bcc, 0x0bd0, 0x0bd4, 0x0bd8, 0x0bdc, 0x0be0, 0x0be4, 0x0be8, + 0x0bec, 0x0bf0, 0x0bf4, 0x0bf8, 0x0bfc, 0x0c00, 0x0c04, 0x0c08, + 0x0c0c, 0x0c10, 0x0c14, 0x0c18, 0x0c1c, 0x0c20, 0x0c24, 0x0c28, + 0x0c2c, 0x0c30, 0x0c34, 0x0c36, 0x0c38, 0x0c3a, 0x0c3c, 0x0c3e, + // Entry 2C0 - 2FF + 0x0c40, 0x0c42, 0x0c44, 0x0c46, 0x0c48, 0x0c4a, 0x0c4c, 0x0c4e, + 0x0c50, 0x0c52, 0x0c54, 0x0c56, 0x0c58, 0x0c5a, 0x0c5c, 0x0c5e, + 0x0c60, 0x0c62, 0x0c64, 0x0c66, 0x0c68, 0x0c6a, 0x0c6c, 0x0c6e, + 0x0c70, 0x0c72, 0x0c74, 0x0c76, 0x0c78, 0x0c7a, 0x0c7c, 0x0c7e, + 0x0c80, 0x0c82, 0x0c86, 0x0c8a, 0x0c8e, 0x0c92, 0x0c96, 0x0c9a, + 0x0c9e, 0x0ca2, 0x0ca4, 0x0ca8, 0x0cac, 0x0cb0, 0x0cb4, 0x0cb8, + 0x0cbc, 0x0cc0, 0x0cc4, 0x0cc8, 0x0ccc, 0x0cd0, 0x0cd4, 0x0cd8, + 0x0cdc, 0x0ce0, 0x0ce4, 0x0ce8, 0x0cec, 0x0cf0, 0x0cf4, 0x0cf8, + // Entry 300 - 33F + 0x0cfc, 0x0d00, 0x0d04, 0x0d08, 0x0d0c, 0x0d10, 0x0d14, 0x0d18, + 0x0d1c, 0x0d20, 0x0d24, 0x0d28, 0x0d2c, 0x0d30, 0x0d34, 0x0d38, + 0x0d3c, 0x0d40, 0x0d44, 0x0d48, 0x0d4c, 0x0d50, 0x0d54, 0x0d58, + 0x0d5c, 0x0d60, 0x0d64, 0x0d68, 0x0d6c, 0x0d70, 0x0d74, 0x0d78, + 0x0d7c, 0x0d80, 0x0d84, 0x0d88, 0x0d8c, 0x0d90, 0x0d94, 0x0d98, + 0x0d9c, 0x0da0, 0x0da4, 0x0da8, 0x0dac, 0x0db0, 0x0db4, 0x0db8, + 0x0dbc, 0x0dc0, 0x0dc4, 0x0dc8, 0x0dcc, 0x0dd0, 0x0dd4, 0x0dd8, + 0x0ddc, 0x0de0, 0x0de4, 0x0de8, 0x0dec, 0x0df0, 0x0df4, 0x0df8, + // Entry 340 - 37F + 0x0dfc, 0x0e00, 0x0e04, 0x0e08, 0x0e0c, 0x0e10, 0x0e14, 0x0e18, + 0x0e1d, 0x0e22, 0x0e27, 0x0e2c, 0x0e31, 0x0e36, 0x0e3a, 0x0e3e, + 0x0e42, 0x0e46, 0x0e4a, 0x0e4e, 0x0e52, 0x0e56, 0x0e5a, 0x0e5e, + 0x0e62, 0x0e66, 0x0e6a, 0x0e6e, 0x0e72, 0x0e76, 0x0e7a, 0x0e7e, + 0x0e82, 0x0e86, 0x0e8a, 0x0e8e, 0x0e92, 0x0e96, 0x0e9a, 0x0e9e, + 0x0ea2, 0x0ea6, 0x0eaa, 0x0eae, 0x0eb2, 0x0eb6, 0x0ebc, 0x0ec2, + 0x0ec8, 0x0ecc, 0x0ed0, 0x0ed4, 0x0ed8, 0x0edc, 0x0ee0, 0x0ee4, + 0x0ee8, 0x0eec, 0x0ef0, 0x0ef4, 0x0ef8, 0x0efc, 0x0f00, 0x0f04, + // Entry 380 - 3BF + 0x0f08, 0x0f0c, 0x0f10, 0x0f14, 0x0f18, 0x0f1c, 0x0f20, 0x0f24, + 0x0f28, 0x0f2c, 0x0f30, 0x0f34, 0x0f38, 0x0f3e, 0x0f44, 0x0f4a, + 0x0f50, 0x0f56, 0x0f5c, 0x0f62, 0x0f68, 0x0f6e, 0x0f74, 0x0f7a, + 0x0f80, 0x0f86, 0x0f8c, 0x0f92, 0x0f98, 0x0f9e, 0x0fa4, 0x0faa, + 0x0fb0, 0x0fb6, 0x0fbc, 0x0fc2, 0x0fc8, 0x0fce, 0x0fd4, 0x0fda, + 0x0fe0, 0x0fe6, 0x0fec, 0x0ff2, 0x0ff8, 0x0ffe, 0x1004, 0x100a, + 0x1010, 0x1016, 0x101c, 0x1022, 0x1028, 0x102e, 0x1034, 0x103a, + 0x1040, 0x1046, 0x104c, 0x1052, 0x1058, 0x105e, 0x1064, 0x106a, + // Entry 3C0 - 3FF + 0x1070, 0x1076, 0x107c, 0x1082, 0x1088, 0x108e, 0x1094, 0x109a, + 0x10a0, 0x10a6, 0x10ac, 0x10b2, 0x10b8, 0x10be, 0x10c4, 0x10ca, + 0x10d0, 0x10d6, 0x10dc, 0x10e2, 0x10e8, 0x10ee, 0x10f4, 0x10fa, + 0x1100, 0x1106, 0x110c, 0x1112, 0x1118, 0x111e, 0x1124, 0x112a, + 0x1130, 0x1136, 0x113c, 0x1142, 0x1148, 0x114e, 0x1154, 0x115a, + 0x1160, 0x1166, 0x116c, 0x1172, 0x1178, 0x1180, 0x1188, 0x1190, + 0x1198, 0x11a0, 0x11a8, 0x11b0, 0x11b6, 0x11d7, 0x11e6, 0x11ee, + 0x11ef, 0x11f0, 0x11f1, 0x11f2, 0x11f3, 0x11f4, 0x11f5, 0x11f6, + // Entry 400 - 43F + 0x11f7, 0x11f8, 0x11f9, 0x11fa, 0x11fb, 0x11fc, 0x11fd, 0x11fe, + 0x11ff, 0x1200, 0x1201, 0x1205, 0x1209, 0x120d, 0x1211, 0x1215, + 0x1219, 0x121b, 0x121d, 0x121f, 0x1221, 0x1223, 0x1225, 0x1227, + 0x1229, 0x122b, 0x122d, 0x122f, 0x1231, 0x1233, 0x1235, 0x1237, + 0x1239, 0x123b, 0x123d, 0x123f, 0x1241, 0x1243, 0x1245, 0x1247, + 0x1249, 0x124b, 0x124d, 0x124f, 0x1251, 0x1253, 0x1255, 0x1257, + 0x1259, 0x125b, 0x125d, 0x125f, 0x1263, 0x1267, 0x126b, 0x126f, + 0x1270, 0x1271, 0x1272, 0x1273, 0x1274, 0x1275, 0x1277, 0x1279, + // Entry 440 - 47F + 0x127b, 0x127d, 0x127f, 0x1287, 0x128f, 0x129b, 0x12a7, 0x12b3, + 0x12bf, 0x12cb, 0x12d3, 0x12db, 0x12e7, 0x12f3, 0x12ff, 0x130b, + 0x130d, 0x130f, 0x1311, 0x1313, 0x1315, 0x1317, 0x1319, 0x131b, + 0x131d, 0x131f, 0x1321, 0x1323, 0x1325, 0x1327, 0x1329, 0x132b, + 0x132e, 0x1331, 0x1333, 0x1335, 0x1337, 0x1339, 0x133b, 0x133d, + 0x133f, 0x1341, 0x1343, 0x1345, 0x1347, 0x1349, 0x134b, 0x134d, + 0x1350, 0x1353, 0x1356, 0x1359, 0x135c, 0x135f, 0x1362, 0x1365, + 0x1368, 0x136b, 0x136e, 0x1371, 0x1374, 0x1377, 0x137a, 0x137d, + // Entry 480 - 4BF + 0x1380, 0x1383, 0x1386, 0x1389, 0x138c, 0x138f, 0x1392, 0x1395, + 0x1398, 0x139b, 0x13a2, 0x13a4, 0x13a6, 0x13a8, 0x13ab, 0x13ad, + 0x13af, 0x13b1, 0x13b3, 0x13b5, 0x13bb, 0x13c1, 0x13c4, 0x13c7, + 0x13ca, 0x13cd, 0x13d0, 0x13d3, 0x13d6, 0x13d9, 0x13dc, 0x13df, + 0x13e2, 0x13e5, 0x13e8, 0x13eb, 0x13ee, 0x13f1, 0x13f4, 0x13f7, + 0x13fa, 0x13fd, 0x1400, 0x1403, 0x1406, 0x1409, 0x140c, 0x140f, + 0x1412, 0x1415, 0x1418, 0x141b, 0x141e, 0x1421, 0x1424, 0x1427, + 0x142a, 0x142d, 0x1430, 0x1433, 0x1436, 0x1439, 0x143c, 0x143f, + // Entry 4C0 - 4FF + 0x1442, 0x1445, 0x1448, 0x1451, 0x145a, 0x1463, 0x146c, 0x1475, + 0x147e, 0x1487, 0x1490, 0x1499, 0x149c, 0x149f, 0x14a2, 0x14a5, + 0x14a8, 0x14ab, 0x14ae, 0x14b1, 0x14b4, 0x14b7, 0x14ba, 0x14bd, + 0x14c0, 0x14c3, 0x14c6, 0x14c9, 0x14cc, 0x14cf, 0x14d2, 0x14d5, + 0x14d8, 0x14db, 0x14de, 0x14e1, 0x14e4, 0x14e7, 0x14ea, 0x14ed, + 0x14f0, 0x14f3, 0x14f6, 0x14f9, 0x14fc, 0x14ff, 0x1502, 0x1505, + 0x1508, 0x150b, 0x150e, 0x1511, 0x1514, 0x1517, 0x151a, 0x151d, + 0x1520, 0x1523, 0x1526, 0x1529, 0x152c, 0x152f, 0x1532, 0x1535, + // Entry 500 - 53F + 0x1538, 0x153b, 0x153e, 0x1541, 0x1544, 0x1547, 0x154a, 0x154d, + 0x1550, 0x1553, 0x1556, 0x1559, 0x155c, 0x155f, 0x1562, 0x1565, + 0x1568, 0x156b, 0x156e, 0x1571, 0x1574, 0x1577, 0x157a, 0x157d, + 0x1580, 0x1583, 0x1586, 0x1589, 0x158c, 0x158f, 0x1592, 0x1595, + 0x1598, 0x159b, 0x159e, 0x15a1, 0x15a4, 0x15a7, 0x15aa, 0x15ad, + 0x15b0, 0x15b3, 0x15b6, 0x15b9, 0x15bc, 0x15bf, 0x15c2, 0x15c5, + 0x15c8, 0x15cb, 0x15ce, 0x15d1, 0x15d4, 0x15d7, 0x15da, 0x15dd, + 0x15e0, 0x15e3, 0x15e6, 0x15e9, 0x15ec, 0x15ef, 0x15f2, 0x15f5, + // Entry 540 - 57F + 0x15f8, 0x15fb, 0x15fe, 0x1601, 0x1604, 0x1607, 0x160a, 0x160d, + 0x1610, 0x1613, 0x1616, 0x1619, 0x161c, 0x161f, 0x1622, 0x1625, + 0x1628, 0x162b, 0x162e, 0x1631, 0x1634, 0x1637, 0x163a, 0x163d, + 0x1640, 0x1643, 0x1646, 0x1649, 0x164c, 0x164f, 0x1652, 0x1655, + 0x1658, 0x165b, 0x165e, 0x1661, 0x1664, 0x1667, 0x166a, 0x166d, + 0x1670, 0x1673, 0x1676, 0x1679, 0x167c, 0x167f, 0x1682, 0x1685, + 0x1688, 0x168b, 0x168e, 0x1691, 0x1694, 0x1697, 0x169a, 0x169d, + 0x16a0, 0x16a3, 0x16a6, 0x16a9, 0x16ac, 0x16af, 0x16b2, 0x16b5, + // Entry 580 - 5BF + 0x16b8, 0x16bb, 0x16be, 0x16c1, 0x16c4, 0x16c7, 0x16ca, 0x16cd, + 0x16d0, 0x16d3, 0x16d6, 0x16d9, 0x16dc, 0x16df, 0x16e2, 0x16e5, + 0x16e8, 0x16eb, 0x16ee, 0x16f1, 0x16f4, 0x16f7, 0x16fa, 0x16fd, + 0x1700, 0x1703, 0x1706, 0x1709, 0x170c, 0x170f, 0x1712, 0x1715, + 0x1718, 0x171b, 0x171e, 0x1721, 0x1724, 0x1727, 0x172a, 0x172d, + 0x1730, 0x1733, 0x1736, 0x1739, 0x173c, 0x173f, 0x1742, 0x1745, + 0x1748, 0x174b, 0x174e, 0x1751, 0x1754, 0x1757, 0x175a, 0x175d, + 0x1760, 0x1763, 0x1766, 0x1769, 0x176c, 0x176f, 0x1772, 0x1775, + // Entry 5C0 - 5FF + 0x1778, 0x177b, 0x177e, 0x1781, 0x1784, 0x1787, 0x178a, 0x178d, + 0x1790, 0x1793, 0x1796, 0x1799, 0x179c, 0x179f, 0x17a2, 0x17a5, + 0x17a8, 0x17ab, 0x17ae, 0x17b1, 0x17b4, 0x17b7, 0x17ba, 0x17bd, + 0x17c0, 0x17c3, 0x17c6, 0x17c9, 0x17cc, 0x17cf, 0x17d2, 0x17d5, + 0x17d8, 0x17db, 0x17de, 0x17e1, 0x17e4, 0x17e7, 0x17ea, 0x17ed, + 0x17f0, 0x17f3, 0x17f6, 0x17f9, 0x17fc, 0x17ff, 0x1802, 0x1805, + 0x1808, 0x180b, 0x180e, 0x1811, 0x1814, 0x1817, 0x181a, 0x181d, + 0x1820, 0x1823, 0x1826, 0x1829, 0x182c, 0x182f, 0x1832, 0x1835, + // Entry 600 - 63F + 0x1838, 0x183b, 0x183e, 0x1841, 0x1844, 0x1847, 0x184a, 0x184d, + 0x1850, 0x1853, 0x1856, 0x1859, 0x185c, 0x185f, 0x1862, 0x1865, + 0x1868, 0x186b, 0x186e, 0x1871, 0x1874, 0x1877, 0x187a, 0x187d, + 0x1880, 0x1883, 0x1886, 0x1889, 0x188c, 0x188f, 0x1892, 0x1895, + 0x1898, 0x189b, 0x189e, 0x18a1, 0x18a4, 0x18a7, 0x18aa, 0x18ad, + 0x18b0, 0x18b3, 0x18b6, 0x18b9, 0x18bc, 0x18bf, 0x18c2, 0x18c5, + 0x18c8, 0x18cb, 0x18ce, 0x18d1, 0x18d4, 0x18d7, 0x18da, 0x18dd, + 0x18e0, 0x18e3, 0x18e6, 0x18e9, 0x18ec, 0x18ef, 0x18f2, 0x18f5, + // Entry 640 - 67F + 0x18f8, 0x18fb, 0x18fe, 0x1901, 0x1904, 0x1907, 0x190a, 0x190d, + 0x1910, 0x1913, 0x1916, 0x1919, 0x191c, 0x191f, 0x1922, 0x1925, + 0x1928, 0x192b, 0x192e, 0x1931, 0x1934, 0x1937, 0x193a, 0x193d, + 0x1940, 0x1943, 0x1946, 0x1949, 0x194c, 0x194f, 0x1952, 0x1955, + 0x1958, 0x195b, 0x195e, 0x1961, 0x1964, 0x1967, 0x196a, 0x196d, + 0x1970, 0x1973, 0x1976, 0x1979, 0x197c, 0x197f, 0x1982, 0x1985, + 0x1988, 0x198b, +} // Size: 3324 bytes var xorData string = "" + // Size: 4862 bytes "\x02\x0c\x09\x02\xb0\xec\x02\xad\xd8\x02\xad\xd9\x02\x06\x07\x02\x0f\x12" + @@ -547,7 +689,7 @@ func (t *idnaTrie) lookupStringUnsafe(s string) uint16 { return 0 } -// idnaTrie. Total size: 30288 bytes (29.58 KiB). Checksum: c0cd84404a2f6f19. +// idnaTrie. Total size: 30196 bytes (29.49 KiB). Checksum: e2ae95a945f04016. type idnaTrie struct{} func newIdnaTrie(i int) *idnaTrie { @@ -600,11 +742,11 @@ var idnaValues = [8192]uint16{ 0xd2: 0x0040, 0xd3: 0x0040, 0xd4: 0x0040, 0xd5: 0x0040, 0xd6: 0x0040, 0xd7: 0x0040, 0xd8: 0x0040, 0xd9: 0x0040, 0xda: 0x0040, 0xdb: 0x0040, 0xdc: 0x0040, 0xdd: 0x0040, 0xde: 0x0040, 0xdf: 0x0040, 0xe0: 0x000a, 0xe1: 0x0018, 0xe2: 0x0018, 0xe3: 0x0018, - 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x001a, 0xe9: 0x0018, - 0xea: 0x0039, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x004a, - 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0069, 0xf3: 0x0079, 0xf4: 0x008a, 0xf5: 0x0005, - 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x00aa, 0xf9: 0x00c9, 0xfa: 0x00d9, 0xfb: 0x0018, - 0xfc: 0x00e9, 0xfd: 0x0119, 0xfe: 0x0149, 0xff: 0x0018, + 0xe4: 0x0018, 0xe5: 0x0018, 0xe6: 0x0018, 0xe7: 0x0018, 0xe8: 0x0012, 0xe9: 0x0018, + 0xea: 0x0019, 0xeb: 0x0018, 0xec: 0x0018, 0xed: 0x03c0, 0xee: 0x0018, 0xef: 0x0022, + 0xf0: 0x0018, 0xf1: 0x0018, 0xf2: 0x0029, 0xf3: 0x0031, 0xf4: 0x003a, 0xf5: 0x0005, + 0xf6: 0x0018, 0xf7: 0x0008, 0xf8: 0x0042, 0xf9: 0x0049, 0xfa: 0x0051, 0xfb: 0x0018, + 0xfc: 0x0059, 0xfd: 0x0061, 0xfe: 0x0069, 0xff: 0x0018, // Block 0x4, offset 0x100 0x100: 0xe00d, 0x101: 0x0008, 0x102: 0xe00d, 0x103: 0x0008, 0x104: 0xe00d, 0x105: 0x0008, 0x106: 0xe00d, 0x107: 0x0008, 0x108: 0xe00d, 0x109: 0x0008, 0x10a: 0xe00d, 0x10b: 0x0008, @@ -614,12 +756,12 @@ var idnaValues = [8192]uint16{ 0x11e: 0xe00d, 0x11f: 0x0008, 0x120: 0xe00d, 0x121: 0x0008, 0x122: 0xe00d, 0x123: 0x0008, 0x124: 0xe00d, 0x125: 0x0008, 0x126: 0xe00d, 0x127: 0x0008, 0x128: 0xe00d, 0x129: 0x0008, 0x12a: 0xe00d, 0x12b: 0x0008, 0x12c: 0xe00d, 0x12d: 0x0008, 0x12e: 0xe00d, 0x12f: 0x0008, - 0x130: 0x0179, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, + 0x130: 0x0071, 0x131: 0x0008, 0x132: 0x0035, 0x133: 0x004d, 0x134: 0xe00d, 0x135: 0x0008, 0x136: 0xe00d, 0x137: 0x0008, 0x138: 0x0008, 0x139: 0xe01d, 0x13a: 0x0008, 0x13b: 0xe03d, - 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0199, + 0x13c: 0x0008, 0x13d: 0xe01d, 0x13e: 0x0008, 0x13f: 0x0079, // Block 0x5, offset 0x140 - 0x140: 0x0199, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, - 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x01b9, 0x14a: 0xe00d, 0x14b: 0x0008, + 0x140: 0x0079, 0x141: 0xe01d, 0x142: 0x0008, 0x143: 0xe03d, 0x144: 0x0008, 0x145: 0xe01d, + 0x146: 0x0008, 0x147: 0xe07d, 0x148: 0x0008, 0x149: 0x0081, 0x14a: 0xe00d, 0x14b: 0x0008, 0x14c: 0xe00d, 0x14d: 0x0008, 0x14e: 0xe00d, 0x14f: 0x0008, 0x150: 0xe00d, 0x151: 0x0008, 0x152: 0xe00d, 0x153: 0x0008, 0x154: 0xe00d, 0x155: 0x0008, 0x156: 0xe00d, 0x157: 0x0008, 0x158: 0xe00d, 0x159: 0x0008, 0x15a: 0xe00d, 0x15b: 0x0008, 0x15c: 0xe00d, 0x15d: 0x0008, @@ -628,7 +770,7 @@ var idnaValues = [8192]uint16{ 0x16a: 0xe00d, 0x16b: 0x0008, 0x16c: 0xe00d, 0x16d: 0x0008, 0x16e: 0xe00d, 0x16f: 0x0008, 0x170: 0xe00d, 0x171: 0x0008, 0x172: 0xe00d, 0x173: 0x0008, 0x174: 0xe00d, 0x175: 0x0008, 0x176: 0xe00d, 0x177: 0x0008, 0x178: 0x0065, 0x179: 0xe01d, 0x17a: 0x0008, 0x17b: 0xe03d, - 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x01d9, + 0x17c: 0x0008, 0x17d: 0xe01d, 0x17e: 0x0008, 0x17f: 0x0089, // Block 0x6, offset 0x180 0x180: 0x0008, 0x181: 0x007d, 0x182: 0xe00d, 0x183: 0x0008, 0x184: 0xe00d, 0x185: 0x0008, 0x186: 0x007d, 0x187: 0xe07d, 0x188: 0x0008, 0x189: 0x0095, 0x18a: 0x00ad, 0x18b: 0xe03d, @@ -642,8 +784,8 @@ var idnaValues = [8192]uint16{ 0x1b6: 0x0008, 0x1b7: 0x01e5, 0x1b8: 0xe00d, 0x1b9: 0x0008, 0x1ba: 0x0008, 0x1bb: 0x0008, 0x1bc: 0xe00d, 0x1bd: 0x0008, 0x1be: 0x0008, 0x1bf: 0x0008, // Block 0x7, offset 0x1c0 - 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x01e9, 0x1c5: 0x01e9, - 0x1c6: 0x01e9, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, + 0x1c0: 0x0008, 0x1c1: 0x0008, 0x1c2: 0x0008, 0x1c3: 0x0008, 0x1c4: 0x0091, 0x1c5: 0x0091, + 0x1c6: 0x0091, 0x1c7: 0x01fd, 0x1c8: 0x0215, 0x1c9: 0x022d, 0x1ca: 0x0245, 0x1cb: 0x025d, 0x1cc: 0x0275, 0x1cd: 0xe01d, 0x1ce: 0x0008, 0x1cf: 0xe0fd, 0x1d0: 0x0008, 0x1d1: 0xe01d, 0x1d2: 0x0008, 0x1d3: 0xe03d, 0x1d4: 0x0008, 0x1d5: 0xe01d, 0x1d6: 0x0008, 0x1d7: 0xe07d, 0x1d8: 0x0008, 0x1d9: 0xe01d, 0x1da: 0x0008, 0x1db: 0xe03d, 0x1dc: 0x0008, 0x1dd: 0x0008, @@ -663,22 +805,22 @@ var idnaValues = [8192]uint16{ 0x224: 0xe00d, 0x225: 0x0008, 0x226: 0xe00d, 0x227: 0x0008, 0x228: 0xe00d, 0x229: 0x0008, 0x22a: 0xe00d, 0x22b: 0x0008, 0x22c: 0xe00d, 0x22d: 0x0008, 0x22e: 0xe00d, 0x22f: 0x0008, 0x230: 0xe00d, 0x231: 0x0008, 0x232: 0xe00d, 0x233: 0x0008, 0x234: 0x0008, 0x235: 0x0008, - 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0209, 0x23b: 0xe03d, - 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x0229, 0x23f: 0x0008, + 0x236: 0x0008, 0x237: 0x0008, 0x238: 0x0008, 0x239: 0x0008, 0x23a: 0x0099, 0x23b: 0xe03d, + 0x23c: 0x0008, 0x23d: 0x031d, 0x23e: 0x00a1, 0x23f: 0x0008, // Block 0x9, offset 0x240 0x240: 0x0008, 0x241: 0x0008, 0x242: 0x0018, 0x243: 0x0018, 0x244: 0x0018, 0x245: 0x0018, 0x246: 0x0008, 0x247: 0x0008, 0x248: 0x0008, 0x249: 0x0008, 0x24a: 0x0008, 0x24b: 0x0008, 0x24c: 0x0008, 0x24d: 0x0008, 0x24e: 0x0008, 0x24f: 0x0008, 0x250: 0x0008, 0x251: 0x0008, 0x252: 0x0018, 0x253: 0x0018, 0x254: 0x0018, 0x255: 0x0018, 0x256: 0x0018, 0x257: 0x0018, - 0x258: 0x029a, 0x259: 0x02ba, 0x25a: 0x02da, 0x25b: 0x02fa, 0x25c: 0x031a, 0x25d: 0x033a, - 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0359, 0x262: 0x01d9, 0x263: 0x0369, + 0x258: 0x00d2, 0x259: 0x00da, 0x25a: 0x00e2, 0x25b: 0x00ea, 0x25c: 0x00f2, 0x25d: 0x00fa, + 0x25e: 0x0018, 0x25f: 0x0018, 0x260: 0x03ad, 0x261: 0x0101, 0x262: 0x0089, 0x263: 0x0109, 0x264: 0x03c5, 0x265: 0x0018, 0x266: 0x0018, 0x267: 0x0018, 0x268: 0x0018, 0x269: 0x0018, 0x26a: 0x0018, 0x26b: 0x0018, 0x26c: 0x0008, 0x26d: 0x0018, 0x26e: 0x0008, 0x26f: 0x0018, 0x270: 0x0018, 0x271: 0x0018, 0x272: 0x0018, 0x273: 0x0018, 0x274: 0x0018, 0x275: 0x0018, 0x276: 0x0018, 0x277: 0x0018, 0x278: 0x0018, 0x279: 0x0018, 0x27a: 0x0018, 0x27b: 0x0018, 0x27c: 0x0018, 0x27d: 0x0018, 0x27e: 0x0018, 0x27f: 0x0018, // Block 0xa, offset 0x280 - 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0379, 0x285: 0x040d, + 0x280: 0x03dd, 0x281: 0x03dd, 0x282: 0x3308, 0x283: 0x03f5, 0x284: 0x0111, 0x285: 0x040d, 0x286: 0x3308, 0x287: 0x3308, 0x288: 0x3308, 0x289: 0x3308, 0x28a: 0x3308, 0x28b: 0x3308, 0x28c: 0x3308, 0x28d: 0x3308, 0x28e: 0x3308, 0x28f: 0x33c0, 0x290: 0x3308, 0x291: 0x3308, 0x292: 0x3308, 0x293: 0x3308, 0x294: 0x3308, 0x295: 0x3308, 0x296: 0x3308, 0x297: 0x3308, @@ -687,10 +829,10 @@ var idnaValues = [8192]uint16{ 0x2a4: 0x3308, 0x2a5: 0x3308, 0x2a6: 0x3308, 0x2a7: 0x3308, 0x2a8: 0x3308, 0x2a9: 0x3308, 0x2aa: 0x3308, 0x2ab: 0x3308, 0x2ac: 0x3308, 0x2ad: 0x3308, 0x2ae: 0x3308, 0x2af: 0x3308, 0x2b0: 0xe00d, 0x2b1: 0x0008, 0x2b2: 0xe00d, 0x2b3: 0x0008, 0x2b4: 0x0425, 0x2b5: 0x0008, - 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x03a2, 0x2bb: 0x0008, - 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x03c2, 0x2bf: 0x043d, + 0x2b6: 0xe00d, 0x2b7: 0x0008, 0x2b8: 0x0040, 0x2b9: 0x0040, 0x2ba: 0x011a, 0x2bb: 0x0008, + 0x2bc: 0x0008, 0x2bd: 0x0008, 0x2be: 0x0122, 0x2bf: 0x043d, // Block 0xb, offset 0x2c0 - 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x008a, 0x2c5: 0x03d2, + 0x2c0: 0x0040, 0x2c1: 0x0040, 0x2c2: 0x0040, 0x2c3: 0x0040, 0x2c4: 0x003a, 0x2c5: 0x012a, 0x2c6: 0xe155, 0x2c7: 0x0455, 0x2c8: 0xe12d, 0x2c9: 0xe13d, 0x2ca: 0xe12d, 0x2cb: 0x0040, 0x2cc: 0x03dd, 0x2cd: 0x0040, 0x2ce: 0x046d, 0x2cf: 0x0485, 0x2d0: 0x0008, 0x2d1: 0xe105, 0x2d2: 0xe105, 0x2d3: 0xe105, 0x2d4: 0xe105, 0x2d5: 0xe105, 0x2d6: 0xe105, 0x2d7: 0xe105, @@ -782,8 +924,8 @@ var idnaValues = [8192]uint16{ 0x49e: 0x3308, 0x49f: 0x3308, 0x4a0: 0x0808, 0x4a1: 0x0808, 0x4a2: 0x0808, 0x4a3: 0x0808, 0x4a4: 0x0808, 0x4a5: 0x0808, 0x4a6: 0x0808, 0x4a7: 0x0808, 0x4a8: 0x0808, 0x4a9: 0x0808, 0x4aa: 0x0018, 0x4ab: 0x0818, 0x4ac: 0x0818, 0x4ad: 0x0818, 0x4ae: 0x0a08, 0x4af: 0x0a08, - 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0429, - 0x4b6: 0x0451, 0x4b7: 0x0479, 0x4b8: 0x04a1, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, + 0x4b0: 0x3308, 0x4b1: 0x0c08, 0x4b2: 0x0c08, 0x4b3: 0x0c08, 0x4b4: 0x0808, 0x4b5: 0x0139, + 0x4b6: 0x0141, 0x4b7: 0x0149, 0x4b8: 0x0151, 0x4b9: 0x0a08, 0x4ba: 0x0a08, 0x4bb: 0x0a08, 0x4bc: 0x0a08, 0x4bd: 0x0a08, 0x4be: 0x0a08, 0x4bf: 0x0a08, // Block 0x13, offset 0x4c0 0x4c0: 0x0c08, 0x4c1: 0x0a08, 0x4c2: 0x0a08, 0x4c3: 0x0c08, 0x4c4: 0x0c08, 0x4c5: 0x0c08, @@ -826,8 +968,8 @@ var idnaValues = [8192]uint16{ 0x586: 0x3308, 0x587: 0x3308, 0x588: 0x3308, 0x589: 0x3008, 0x58a: 0x3008, 0x58b: 0x3008, 0x58c: 0x3008, 0x58d: 0x3b08, 0x58e: 0x3008, 0x58f: 0x3008, 0x590: 0x0008, 0x591: 0x3308, 0x592: 0x3308, 0x593: 0x3308, 0x594: 0x3308, 0x595: 0x3308, 0x596: 0x3308, 0x597: 0x3308, - 0x598: 0x04c9, 0x599: 0x0501, 0x59a: 0x0539, 0x59b: 0x0571, 0x59c: 0x05a9, 0x59d: 0x05e1, - 0x59e: 0x0619, 0x59f: 0x0651, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, + 0x598: 0x0159, 0x599: 0x0161, 0x59a: 0x0169, 0x59b: 0x0171, 0x59c: 0x0179, 0x59d: 0x0181, + 0x59e: 0x0189, 0x59f: 0x0191, 0x5a0: 0x0008, 0x5a1: 0x0008, 0x5a2: 0x3308, 0x5a3: 0x3308, 0x5a4: 0x0018, 0x5a5: 0x0018, 0x5a6: 0x0008, 0x5a7: 0x0008, 0x5a8: 0x0008, 0x5a9: 0x0008, 0x5aa: 0x0008, 0x5ab: 0x0008, 0x5ac: 0x0008, 0x5ad: 0x0008, 0x5ae: 0x0008, 0x5af: 0x0008, 0x5b0: 0x0018, 0x5b1: 0x0008, 0x5b2: 0x0008, 0x5b3: 0x0008, 0x5b4: 0x0008, 0x5b5: 0x0008, @@ -850,8 +992,8 @@ var idnaValues = [8192]uint16{ 0x606: 0x0040, 0x607: 0x3008, 0x608: 0x3008, 0x609: 0x0040, 0x60a: 0x0040, 0x60b: 0x3008, 0x60c: 0x3008, 0x60d: 0x3b08, 0x60e: 0x0008, 0x60f: 0x0040, 0x610: 0x0040, 0x611: 0x0040, 0x612: 0x0040, 0x613: 0x0040, 0x614: 0x0040, 0x615: 0x0040, 0x616: 0x0040, 0x617: 0x3008, - 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0689, 0x61d: 0x06c1, - 0x61e: 0x0040, 0x61f: 0x06f9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, + 0x618: 0x0040, 0x619: 0x0040, 0x61a: 0x0040, 0x61b: 0x0040, 0x61c: 0x0199, 0x61d: 0x01a1, + 0x61e: 0x0040, 0x61f: 0x01a9, 0x620: 0x0008, 0x621: 0x0008, 0x622: 0x3308, 0x623: 0x3308, 0x624: 0x0040, 0x625: 0x0040, 0x626: 0x0008, 0x627: 0x0008, 0x628: 0x0008, 0x629: 0x0008, 0x62a: 0x0008, 0x62b: 0x0008, 0x62c: 0x0008, 0x62d: 0x0008, 0x62e: 0x0008, 0x62f: 0x0008, 0x630: 0x0008, 0x631: 0x0008, 0x632: 0x0018, 0x633: 0x0018, 0x634: 0x0018, 0x635: 0x0018, @@ -866,16 +1008,16 @@ var idnaValues = [8192]uint16{ 0x65e: 0x0008, 0x65f: 0x0008, 0x660: 0x0008, 0x661: 0x0008, 0x662: 0x0008, 0x663: 0x0008, 0x664: 0x0008, 0x665: 0x0008, 0x666: 0x0008, 0x667: 0x0008, 0x668: 0x0008, 0x669: 0x0040, 0x66a: 0x0008, 0x66b: 0x0008, 0x66c: 0x0008, 0x66d: 0x0008, 0x66e: 0x0008, 0x66f: 0x0008, - 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x0731, 0x674: 0x0040, 0x675: 0x0008, - 0x676: 0x0769, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, + 0x670: 0x0008, 0x671: 0x0040, 0x672: 0x0008, 0x673: 0x01b1, 0x674: 0x0040, 0x675: 0x0008, + 0x676: 0x01b9, 0x677: 0x0040, 0x678: 0x0008, 0x679: 0x0008, 0x67a: 0x0040, 0x67b: 0x0040, 0x67c: 0x3308, 0x67d: 0x0040, 0x67e: 0x3008, 0x67f: 0x3008, // Block 0x1a, offset 0x680 0x680: 0x3008, 0x681: 0x3308, 0x682: 0x3308, 0x683: 0x0040, 0x684: 0x0040, 0x685: 0x0040, 0x686: 0x0040, 0x687: 0x3308, 0x688: 0x3308, 0x689: 0x0040, 0x68a: 0x0040, 0x68b: 0x3308, 0x68c: 0x3308, 0x68d: 0x3b08, 0x68e: 0x0040, 0x68f: 0x0040, 0x690: 0x0040, 0x691: 0x3308, 0x692: 0x0040, 0x693: 0x0040, 0x694: 0x0040, 0x695: 0x0040, 0x696: 0x0040, 0x697: 0x0040, - 0x698: 0x0040, 0x699: 0x07a1, 0x69a: 0x07d9, 0x69b: 0x0811, 0x69c: 0x0008, 0x69d: 0x0040, - 0x69e: 0x0849, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, + 0x698: 0x0040, 0x699: 0x01c1, 0x69a: 0x01c9, 0x69b: 0x01d1, 0x69c: 0x0008, 0x69d: 0x0040, + 0x69e: 0x01d9, 0x69f: 0x0040, 0x6a0: 0x0040, 0x6a1: 0x0040, 0x6a2: 0x0040, 0x6a3: 0x0040, 0x6a4: 0x0040, 0x6a5: 0x0040, 0x6a6: 0x0008, 0x6a7: 0x0008, 0x6a8: 0x0008, 0x6a9: 0x0008, 0x6aa: 0x0008, 0x6ab: 0x0008, 0x6ac: 0x0008, 0x6ad: 0x0008, 0x6ae: 0x0008, 0x6af: 0x0008, 0x6b0: 0x3308, 0x6b1: 0x3308, 0x6b2: 0x0008, 0x6b3: 0x0008, 0x6b4: 0x0008, 0x6b5: 0x3308, @@ -922,7 +1064,7 @@ var idnaValues = [8192]uint16{ 0x786: 0x0040, 0x787: 0x3008, 0x788: 0x3008, 0x789: 0x0040, 0x78a: 0x0040, 0x78b: 0x3008, 0x78c: 0x3008, 0x78d: 0x3b08, 0x78e: 0x0040, 0x78f: 0x0040, 0x790: 0x0040, 0x791: 0x0040, 0x792: 0x0040, 0x793: 0x0040, 0x794: 0x0040, 0x795: 0x3308, 0x796: 0x3308, 0x797: 0x3008, - 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x0881, 0x79d: 0x08b9, + 0x798: 0x0040, 0x799: 0x0040, 0x79a: 0x0040, 0x79b: 0x0040, 0x79c: 0x01e1, 0x79d: 0x01e9, 0x79e: 0x0040, 0x79f: 0x0008, 0x7a0: 0x0008, 0x7a1: 0x0008, 0x7a2: 0x3308, 0x7a3: 0x3308, 0x7a4: 0x0040, 0x7a5: 0x0040, 0x7a6: 0x0008, 0x7a7: 0x0008, 0x7a8: 0x0008, 0x7a9: 0x0008, 0x7aa: 0x0008, 0x7ab: 0x0008, 0x7ac: 0x0008, 0x7ad: 0x0008, 0x7ae: 0x0008, 0x7af: 0x0008, @@ -998,32 +1140,32 @@ var idnaValues = [8192]uint16{ 0x91e: 0x0008, 0x91f: 0x0008, 0x920: 0x0008, 0x921: 0x0008, 0x922: 0x0008, 0x923: 0x0008, 0x924: 0x0040, 0x925: 0x0008, 0x926: 0x0040, 0x927: 0x0008, 0x928: 0x0008, 0x929: 0x0008, 0x92a: 0x0008, 0x92b: 0x0008, 0x92c: 0x0008, 0x92d: 0x0008, 0x92e: 0x0008, 0x92f: 0x0008, - 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x0929, 0x934: 0x3308, 0x935: 0x3308, + 0x930: 0x0008, 0x931: 0x3308, 0x932: 0x0008, 0x933: 0x01f9, 0x934: 0x3308, 0x935: 0x3308, 0x936: 0x3308, 0x937: 0x3308, 0x938: 0x3308, 0x939: 0x3308, 0x93a: 0x3b08, 0x93b: 0x3308, 0x93c: 0x3308, 0x93d: 0x0008, 0x93e: 0x0040, 0x93f: 0x0040, // Block 0x25, offset 0x940 - 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x09d1, 0x944: 0x0008, 0x945: 0x0008, + 0x940: 0x0008, 0x941: 0x0008, 0x942: 0x0008, 0x943: 0x0211, 0x944: 0x0008, 0x945: 0x0008, 0x946: 0x0008, 0x947: 0x0008, 0x948: 0x0040, 0x949: 0x0008, 0x94a: 0x0008, 0x94b: 0x0008, - 0x94c: 0x0008, 0x94d: 0x0a09, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, - 0x952: 0x0a41, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0a79, - 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0ab1, 0x95d: 0x0008, + 0x94c: 0x0008, 0x94d: 0x0219, 0x94e: 0x0008, 0x94f: 0x0008, 0x950: 0x0008, 0x951: 0x0008, + 0x952: 0x0221, 0x953: 0x0008, 0x954: 0x0008, 0x955: 0x0008, 0x956: 0x0008, 0x957: 0x0229, + 0x958: 0x0008, 0x959: 0x0008, 0x95a: 0x0008, 0x95b: 0x0008, 0x95c: 0x0231, 0x95d: 0x0008, 0x95e: 0x0008, 0x95f: 0x0008, 0x960: 0x0008, 0x961: 0x0008, 0x962: 0x0008, 0x963: 0x0008, - 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0ae9, + 0x964: 0x0008, 0x965: 0x0008, 0x966: 0x0008, 0x967: 0x0008, 0x968: 0x0008, 0x969: 0x0239, 0x96a: 0x0008, 0x96b: 0x0008, 0x96c: 0x0008, 0x96d: 0x0040, 0x96e: 0x0040, 0x96f: 0x0040, - 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0b21, 0x974: 0x3308, 0x975: 0x0b59, - 0x976: 0x0b91, 0x977: 0x0bc9, 0x978: 0x0c19, 0x979: 0x0c51, 0x97a: 0x3308, 0x97b: 0x3308, + 0x970: 0x0040, 0x971: 0x3308, 0x972: 0x3308, 0x973: 0x0241, 0x974: 0x3308, 0x975: 0x0249, + 0x976: 0x0251, 0x977: 0x0259, 0x978: 0x0261, 0x979: 0x0269, 0x97a: 0x3308, 0x97b: 0x3308, 0x97c: 0x3308, 0x97d: 0x3308, 0x97e: 0x3308, 0x97f: 0x3008, // Block 0x26, offset 0x980 - 0x980: 0x3308, 0x981: 0x0ca1, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, + 0x980: 0x3308, 0x981: 0x0271, 0x982: 0x3308, 0x983: 0x3308, 0x984: 0x3b08, 0x985: 0x0018, 0x986: 0x3308, 0x987: 0x3308, 0x988: 0x0008, 0x989: 0x0008, 0x98a: 0x0008, 0x98b: 0x0008, 0x98c: 0x0008, 0x98d: 0x3308, 0x98e: 0x3308, 0x98f: 0x3308, 0x990: 0x3308, 0x991: 0x3308, - 0x992: 0x3308, 0x993: 0x0cd9, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, - 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0d11, - 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0d49, 0x9a3: 0x3308, - 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0d81, 0x9a8: 0x3308, 0x9a9: 0x3308, - 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0db9, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, + 0x992: 0x3308, 0x993: 0x0279, 0x994: 0x3308, 0x995: 0x3308, 0x996: 0x3308, 0x997: 0x3308, + 0x998: 0x0040, 0x999: 0x3308, 0x99a: 0x3308, 0x99b: 0x3308, 0x99c: 0x3308, 0x99d: 0x0281, + 0x99e: 0x3308, 0x99f: 0x3308, 0x9a0: 0x3308, 0x9a1: 0x3308, 0x9a2: 0x0289, 0x9a3: 0x3308, + 0x9a4: 0x3308, 0x9a5: 0x3308, 0x9a6: 0x3308, 0x9a7: 0x0291, 0x9a8: 0x3308, 0x9a9: 0x3308, + 0x9aa: 0x3308, 0x9ab: 0x3308, 0x9ac: 0x0299, 0x9ad: 0x3308, 0x9ae: 0x3308, 0x9af: 0x3308, 0x9b0: 0x3308, 0x9b1: 0x3308, 0x9b2: 0x3308, 0x9b3: 0x3308, 0x9b4: 0x3308, 0x9b5: 0x3308, - 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x0df1, 0x9ba: 0x3308, 0x9bb: 0x3308, + 0x9b6: 0x3308, 0x9b7: 0x3308, 0x9b8: 0x3308, 0x9b9: 0x02a1, 0x9ba: 0x3308, 0x9bb: 0x3308, 0x9bc: 0x3308, 0x9bd: 0x0040, 0x9be: 0x0018, 0x9bf: 0x0018, // Block 0x27, offset 0x9c0 0x9c0: 0x0008, 0x9c1: 0x0008, 0x9c2: 0x0008, 0x9c3: 0x0008, 0x9c4: 0x0008, 0x9c5: 0x0008, @@ -1033,34 +1175,34 @@ var idnaValues = [8192]uint16{ 0x9d8: 0x0008, 0x9d9: 0x0008, 0x9da: 0x0008, 0x9db: 0x0008, 0x9dc: 0x0008, 0x9dd: 0x0008, 0x9de: 0x0008, 0x9df: 0x0008, 0x9e0: 0x0008, 0x9e1: 0x0008, 0x9e2: 0x0008, 0x9e3: 0x0008, 0x9e4: 0x0008, 0x9e5: 0x0008, 0x9e6: 0x0008, 0x9e7: 0x0008, 0x9e8: 0x0008, 0x9e9: 0x0008, - 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0039, 0x9ed: 0x0ed1, 0x9ee: 0x0ee9, 0x9ef: 0x0008, - 0x9f0: 0x0ef9, 0x9f1: 0x0f09, 0x9f2: 0x0f19, 0x9f3: 0x0f31, 0x9f4: 0x0249, 0x9f5: 0x0f41, - 0x9f6: 0x0259, 0x9f7: 0x0f51, 0x9f8: 0x0359, 0x9f9: 0x0f61, 0x9fa: 0x0f71, 0x9fb: 0x0008, - 0x9fc: 0x00d9, 0x9fd: 0x0f81, 0x9fe: 0x0f99, 0x9ff: 0x0269, + 0x9ea: 0x0008, 0x9eb: 0x0008, 0x9ec: 0x0019, 0x9ed: 0x02e1, 0x9ee: 0x02e9, 0x9ef: 0x0008, + 0x9f0: 0x02f1, 0x9f1: 0x02f9, 0x9f2: 0x0301, 0x9f3: 0x0309, 0x9f4: 0x00a9, 0x9f5: 0x0311, + 0x9f6: 0x00b1, 0x9f7: 0x0319, 0x9f8: 0x0101, 0x9f9: 0x0321, 0x9fa: 0x0329, 0x9fb: 0x0008, + 0x9fc: 0x0051, 0x9fd: 0x0331, 0x9fe: 0x0339, 0x9ff: 0x00b9, // Block 0x28, offset 0xa00 - 0xa00: 0x0fa9, 0xa01: 0x0fb9, 0xa02: 0x0279, 0xa03: 0x0039, 0xa04: 0x0fc9, 0xa05: 0x0fe1, - 0xa06: 0x05b5, 0xa07: 0x0ee9, 0xa08: 0x0ef9, 0xa09: 0x0f09, 0xa0a: 0x0ff9, 0xa0b: 0x1011, - 0xa0c: 0x1029, 0xa0d: 0x0f31, 0xa0e: 0x0008, 0xa0f: 0x0f51, 0xa10: 0x0f61, 0xa11: 0x1041, - 0xa12: 0x00d9, 0xa13: 0x1059, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0f99, 0xa17: 0x0fa9, - 0xa18: 0x0fb9, 0xa19: 0x05b5, 0xa1a: 0x1071, 0xa1b: 0x1089, 0xa1c: 0x05e5, 0xa1d: 0x1099, - 0xa1e: 0x10b1, 0xa1f: 0x10c9, 0xa20: 0x10e1, 0xa21: 0x10f9, 0xa22: 0x0f41, 0xa23: 0x0269, - 0xa24: 0x0fb9, 0xa25: 0x1089, 0xa26: 0x1099, 0xa27: 0x10b1, 0xa28: 0x1111, 0xa29: 0x10e1, - 0xa2a: 0x10f9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, + 0xa00: 0x0341, 0xa01: 0x0349, 0xa02: 0x00c1, 0xa03: 0x0019, 0xa04: 0x0351, 0xa05: 0x0359, + 0xa06: 0x05b5, 0xa07: 0x02e9, 0xa08: 0x02f1, 0xa09: 0x02f9, 0xa0a: 0x0361, 0xa0b: 0x0369, + 0xa0c: 0x0371, 0xa0d: 0x0309, 0xa0e: 0x0008, 0xa0f: 0x0319, 0xa10: 0x0321, 0xa11: 0x0379, + 0xa12: 0x0051, 0xa13: 0x0381, 0xa14: 0x05cd, 0xa15: 0x05cd, 0xa16: 0x0339, 0xa17: 0x0341, + 0xa18: 0x0349, 0xa19: 0x05b5, 0xa1a: 0x0389, 0xa1b: 0x0391, 0xa1c: 0x05e5, 0xa1d: 0x0399, + 0xa1e: 0x03a1, 0xa1f: 0x03a9, 0xa20: 0x03b1, 0xa21: 0x03b9, 0xa22: 0x0311, 0xa23: 0x00b9, + 0xa24: 0x0349, 0xa25: 0x0391, 0xa26: 0x0399, 0xa27: 0x03a1, 0xa28: 0x03c1, 0xa29: 0x03b1, + 0xa2a: 0x03b9, 0xa2b: 0x0008, 0xa2c: 0x0008, 0xa2d: 0x0008, 0xa2e: 0x0008, 0xa2f: 0x0008, 0xa30: 0x0008, 0xa31: 0x0008, 0xa32: 0x0008, 0xa33: 0x0008, 0xa34: 0x0008, 0xa35: 0x0008, - 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x1129, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, + 0xa36: 0x0008, 0xa37: 0x0008, 0xa38: 0x03c9, 0xa39: 0x0008, 0xa3a: 0x0008, 0xa3b: 0x0008, 0xa3c: 0x0008, 0xa3d: 0x0008, 0xa3e: 0x0008, 0xa3f: 0x0008, // Block 0x29, offset 0xa40 0xa40: 0x0008, 0xa41: 0x0008, 0xa42: 0x0008, 0xa43: 0x0008, 0xa44: 0x0008, 0xa45: 0x0008, 0xa46: 0x0008, 0xa47: 0x0008, 0xa48: 0x0008, 0xa49: 0x0008, 0xa4a: 0x0008, 0xa4b: 0x0008, 0xa4c: 0x0008, 0xa4d: 0x0008, 0xa4e: 0x0008, 0xa4f: 0x0008, 0xa50: 0x0008, 0xa51: 0x0008, 0xa52: 0x0008, 0xa53: 0x0008, 0xa54: 0x0008, 0xa55: 0x0008, 0xa56: 0x0008, 0xa57: 0x0008, - 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x1141, 0xa5c: 0x1159, 0xa5d: 0x1169, - 0xa5e: 0x1181, 0xa5f: 0x1029, 0xa60: 0x1199, 0xa61: 0x11a9, 0xa62: 0x11c1, 0xa63: 0x11d9, - 0xa64: 0x11f1, 0xa65: 0x1209, 0xa66: 0x1221, 0xa67: 0x05fd, 0xa68: 0x1239, 0xa69: 0x1251, - 0xa6a: 0xe17d, 0xa6b: 0x1269, 0xa6c: 0x1281, 0xa6d: 0x1299, 0xa6e: 0x12b1, 0xa6f: 0x12c9, - 0xa70: 0x12e1, 0xa71: 0x12f9, 0xa72: 0x1311, 0xa73: 0x1329, 0xa74: 0x1341, 0xa75: 0x1359, - 0xa76: 0x1371, 0xa77: 0x1389, 0xa78: 0x0615, 0xa79: 0x13a1, 0xa7a: 0x13b9, 0xa7b: 0x13d1, - 0xa7c: 0x13e1, 0xa7d: 0x13f9, 0xa7e: 0x1411, 0xa7f: 0x1429, + 0xa58: 0x0008, 0xa59: 0x0008, 0xa5a: 0x0008, 0xa5b: 0x03d1, 0xa5c: 0x03d9, 0xa5d: 0x03e1, + 0xa5e: 0x03e9, 0xa5f: 0x0371, 0xa60: 0x03f1, 0xa61: 0x03f9, 0xa62: 0x0401, 0xa63: 0x0409, + 0xa64: 0x0411, 0xa65: 0x0419, 0xa66: 0x0421, 0xa67: 0x05fd, 0xa68: 0x0429, 0xa69: 0x0431, + 0xa6a: 0xe17d, 0xa6b: 0x0439, 0xa6c: 0x0441, 0xa6d: 0x0449, 0xa6e: 0x0451, 0xa6f: 0x0459, + 0xa70: 0x0461, 0xa71: 0x0469, 0xa72: 0x0471, 0xa73: 0x0479, 0xa74: 0x0481, 0xa75: 0x0489, + 0xa76: 0x0491, 0xa77: 0x0499, 0xa78: 0x0615, 0xa79: 0x04a1, 0xa7a: 0x04a9, 0xa7b: 0x04b1, + 0xa7c: 0x04b9, 0xa7d: 0x04c1, 0xa7e: 0x04c9, 0xa7f: 0x04d1, // Block 0x2a, offset 0xa80 0xa80: 0xe00d, 0xa81: 0x0008, 0xa82: 0xe00d, 0xa83: 0x0008, 0xa84: 0xe00d, 0xa85: 0x0008, 0xa86: 0xe00d, 0xa87: 0x0008, 0xa88: 0xe00d, 0xa89: 0x0008, 0xa8a: 0xe00d, 0xa8b: 0x0008, @@ -1079,7 +1221,7 @@ var idnaValues = [8192]uint16{ 0xacc: 0xe00d, 0xacd: 0x0008, 0xace: 0xe00d, 0xacf: 0x0008, 0xad0: 0xe00d, 0xad1: 0x0008, 0xad2: 0xe00d, 0xad3: 0x0008, 0xad4: 0xe00d, 0xad5: 0x0008, 0xad6: 0x0008, 0xad7: 0x0008, 0xad8: 0x0008, 0xad9: 0x0008, 0xada: 0x062d, 0xadb: 0x064d, 0xadc: 0x0008, 0xadd: 0x0008, - 0xade: 0x1441, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, + 0xade: 0x04d9, 0xadf: 0x0008, 0xae0: 0xe00d, 0xae1: 0x0008, 0xae2: 0xe00d, 0xae3: 0x0008, 0xae4: 0xe00d, 0xae5: 0x0008, 0xae6: 0xe00d, 0xae7: 0x0008, 0xae8: 0xe00d, 0xae9: 0x0008, 0xaea: 0xe00d, 0xaeb: 0x0008, 0xaec: 0xe00d, 0xaed: 0x0008, 0xaee: 0xe00d, 0xaef: 0x0008, 0xaf0: 0xe00d, 0xaf1: 0x0008, 0xaf2: 0xe00d, 0xaf3: 0x0008, 0xaf4: 0xe00d, 0xaf5: 0x0008, @@ -1094,33 +1236,33 @@ var idnaValues = [8192]uint16{ 0xb1e: 0x0040, 0xb1f: 0xe045, 0xb20: 0x0008, 0xb21: 0x0008, 0xb22: 0x0008, 0xb23: 0x0008, 0xb24: 0x0008, 0xb25: 0x0008, 0xb26: 0x0008, 0xb27: 0x0008, 0xb28: 0xe045, 0xb29: 0xe045, 0xb2a: 0xe045, 0xb2b: 0xe045, 0xb2c: 0xe045, 0xb2d: 0xe045, 0xb2e: 0xe045, 0xb2f: 0xe045, - 0xb30: 0x0008, 0xb31: 0x1459, 0xb32: 0x0008, 0xb33: 0x1471, 0xb34: 0x0008, 0xb35: 0x1489, - 0xb36: 0x0008, 0xb37: 0x14a1, 0xb38: 0x0008, 0xb39: 0x14b9, 0xb3a: 0x0008, 0xb3b: 0x14d1, - 0xb3c: 0x0008, 0xb3d: 0x14e9, 0xb3e: 0x0040, 0xb3f: 0x0040, + 0xb30: 0x0008, 0xb31: 0x04e1, 0xb32: 0x0008, 0xb33: 0x04e9, 0xb34: 0x0008, 0xb35: 0x04f1, + 0xb36: 0x0008, 0xb37: 0x04f9, 0xb38: 0x0008, 0xb39: 0x0501, 0xb3a: 0x0008, 0xb3b: 0x0509, + 0xb3c: 0x0008, 0xb3d: 0x0511, 0xb3e: 0x0040, 0xb3f: 0x0040, // Block 0x2d, offset 0xb40 - 0xb40: 0x1501, 0xb41: 0x1531, 0xb42: 0x1561, 0xb43: 0x1591, 0xb44: 0x15c1, 0xb45: 0x15f1, - 0xb46: 0x1621, 0xb47: 0x1651, 0xb48: 0x1501, 0xb49: 0x1531, 0xb4a: 0x1561, 0xb4b: 0x1591, - 0xb4c: 0x15c1, 0xb4d: 0x15f1, 0xb4e: 0x1621, 0xb4f: 0x1651, 0xb50: 0x1681, 0xb51: 0x16b1, - 0xb52: 0x16e1, 0xb53: 0x1711, 0xb54: 0x1741, 0xb55: 0x1771, 0xb56: 0x17a1, 0xb57: 0x17d1, - 0xb58: 0x1681, 0xb59: 0x16b1, 0xb5a: 0x16e1, 0xb5b: 0x1711, 0xb5c: 0x1741, 0xb5d: 0x1771, - 0xb5e: 0x17a1, 0xb5f: 0x17d1, 0xb60: 0x1801, 0xb61: 0x1831, 0xb62: 0x1861, 0xb63: 0x1891, - 0xb64: 0x18c1, 0xb65: 0x18f1, 0xb66: 0x1921, 0xb67: 0x1951, 0xb68: 0x1801, 0xb69: 0x1831, - 0xb6a: 0x1861, 0xb6b: 0x1891, 0xb6c: 0x18c1, 0xb6d: 0x18f1, 0xb6e: 0x1921, 0xb6f: 0x1951, - 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x1981, 0xb73: 0x19b1, 0xb74: 0x19d9, 0xb75: 0x0040, - 0xb76: 0x0008, 0xb77: 0x1a01, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x1459, - 0xb7c: 0x19b1, 0xb7d: 0x067e, 0xb7e: 0x1a31, 0xb7f: 0x069e, + 0xb40: 0x0519, 0xb41: 0x0521, 0xb42: 0x0529, 0xb43: 0x0531, 0xb44: 0x0539, 0xb45: 0x0541, + 0xb46: 0x0549, 0xb47: 0x0551, 0xb48: 0x0519, 0xb49: 0x0521, 0xb4a: 0x0529, 0xb4b: 0x0531, + 0xb4c: 0x0539, 0xb4d: 0x0541, 0xb4e: 0x0549, 0xb4f: 0x0551, 0xb50: 0x0559, 0xb51: 0x0561, + 0xb52: 0x0569, 0xb53: 0x0571, 0xb54: 0x0579, 0xb55: 0x0581, 0xb56: 0x0589, 0xb57: 0x0591, + 0xb58: 0x0559, 0xb59: 0x0561, 0xb5a: 0x0569, 0xb5b: 0x0571, 0xb5c: 0x0579, 0xb5d: 0x0581, + 0xb5e: 0x0589, 0xb5f: 0x0591, 0xb60: 0x0599, 0xb61: 0x05a1, 0xb62: 0x05a9, 0xb63: 0x05b1, + 0xb64: 0x05b9, 0xb65: 0x05c1, 0xb66: 0x05c9, 0xb67: 0x05d1, 0xb68: 0x0599, 0xb69: 0x05a1, + 0xb6a: 0x05a9, 0xb6b: 0x05b1, 0xb6c: 0x05b9, 0xb6d: 0x05c1, 0xb6e: 0x05c9, 0xb6f: 0x05d1, + 0xb70: 0x0008, 0xb71: 0x0008, 0xb72: 0x05d9, 0xb73: 0x05e1, 0xb74: 0x05e9, 0xb75: 0x0040, + 0xb76: 0x0008, 0xb77: 0x05f1, 0xb78: 0xe045, 0xb79: 0xe045, 0xb7a: 0x0665, 0xb7b: 0x04e1, + 0xb7c: 0x05e1, 0xb7d: 0x067e, 0xb7e: 0x05f9, 0xb7f: 0x069e, // Block 0x2e, offset 0xb80 - 0xb80: 0x06be, 0xb81: 0x1a4a, 0xb82: 0x1a79, 0xb83: 0x1aa9, 0xb84: 0x1ad1, 0xb85: 0x0040, - 0xb86: 0x0008, 0xb87: 0x1af9, 0xb88: 0x06dd, 0xb89: 0x1471, 0xb8a: 0x06f5, 0xb8b: 0x1489, - 0xb8c: 0x1aa9, 0xb8d: 0x1b2a, 0xb8e: 0x1b5a, 0xb8f: 0x1b8a, 0xb90: 0x0008, 0xb91: 0x0008, - 0xb92: 0x0008, 0xb93: 0x1bb9, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, - 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x14a1, 0xb9c: 0x0040, 0xb9d: 0x1bd2, - 0xb9e: 0x1c02, 0xb9f: 0x1c32, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x1c61, + 0xb80: 0x06be, 0xb81: 0x0602, 0xb82: 0x0609, 0xb83: 0x0611, 0xb84: 0x0619, 0xb85: 0x0040, + 0xb86: 0x0008, 0xb87: 0x0621, 0xb88: 0x06dd, 0xb89: 0x04e9, 0xb8a: 0x06f5, 0xb8b: 0x04f1, + 0xb8c: 0x0611, 0xb8d: 0x062a, 0xb8e: 0x0632, 0xb8f: 0x063a, 0xb90: 0x0008, 0xb91: 0x0008, + 0xb92: 0x0008, 0xb93: 0x0641, 0xb94: 0x0040, 0xb95: 0x0040, 0xb96: 0x0008, 0xb97: 0x0008, + 0xb98: 0xe045, 0xb99: 0xe045, 0xb9a: 0x070d, 0xb9b: 0x04f9, 0xb9c: 0x0040, 0xb9d: 0x064a, + 0xb9e: 0x0652, 0xb9f: 0x065a, 0xba0: 0x0008, 0xba1: 0x0008, 0xba2: 0x0008, 0xba3: 0x0661, 0xba4: 0x0008, 0xba5: 0x0008, 0xba6: 0x0008, 0xba7: 0x0008, 0xba8: 0xe045, 0xba9: 0xe045, - 0xbaa: 0x0725, 0xbab: 0x14d1, 0xbac: 0xe04d, 0xbad: 0x1c7a, 0xbae: 0x03d2, 0xbaf: 0x1caa, - 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x1cb9, 0xbb3: 0x1ce9, 0xbb4: 0x1d11, 0xbb5: 0x0040, - 0xbb6: 0x0008, 0xbb7: 0x1d39, 0xbb8: 0x073d, 0xbb9: 0x14b9, 0xbba: 0x0515, 0xbbb: 0x14e9, - 0xbbc: 0x1ce9, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, + 0xbaa: 0x0725, 0xbab: 0x0509, 0xbac: 0xe04d, 0xbad: 0x066a, 0xbae: 0x012a, 0xbaf: 0x0672, + 0xbb0: 0x0040, 0xbb1: 0x0040, 0xbb2: 0x0679, 0xbb3: 0x0681, 0xbb4: 0x0689, 0xbb5: 0x0040, + 0xbb6: 0x0008, 0xbb7: 0x0691, 0xbb8: 0x073d, 0xbb9: 0x0501, 0xbba: 0x0515, 0xbbb: 0x0511, + 0xbbc: 0x0681, 0xbbd: 0x0756, 0xbbe: 0x0776, 0xbbf: 0x0040, // Block 0x2f, offset 0xbc0 0xbc0: 0x000a, 0xbc1: 0x000a, 0xbc2: 0x000a, 0xbc3: 0x000a, 0xbc4: 0x000a, 0xbc5: 0x000a, 0xbc6: 0x000a, 0xbc7: 0x000a, 0xbc8: 0x000a, 0xbc9: 0x000a, 0xbca: 0x000a, 0xbcb: 0x03c0, @@ -1130,72 +1272,72 @@ var idnaValues = [8192]uint16{ 0xbde: 0x0018, 0xbdf: 0x0018, 0xbe0: 0x0018, 0xbe1: 0x0018, 0xbe2: 0x0018, 0xbe3: 0x0018, 0xbe4: 0x0040, 0xbe5: 0x0040, 0xbe6: 0x0040, 0xbe7: 0x0018, 0xbe8: 0x0040, 0xbe9: 0x0040, 0xbea: 0x0340, 0xbeb: 0x0340, 0xbec: 0x0340, 0xbed: 0x0340, 0xbee: 0x0340, 0xbef: 0x000a, - 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x1d69, 0xbf4: 0x1da1, 0xbf5: 0x0018, - 0xbf6: 0x1df1, 0xbf7: 0x1e29, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, - 0xbfc: 0x1e7a, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, + 0xbf0: 0x0018, 0xbf1: 0x0018, 0xbf2: 0x0018, 0xbf3: 0x0699, 0xbf4: 0x06a1, 0xbf5: 0x0018, + 0xbf6: 0x06a9, 0xbf7: 0x06b1, 0xbf8: 0x0018, 0xbf9: 0x0018, 0xbfa: 0x0018, 0xbfb: 0x0018, + 0xbfc: 0x06ba, 0xbfd: 0x0018, 0xbfe: 0x07b6, 0xbff: 0x0018, // Block 0x30, offset 0xc00 0xc00: 0x0018, 0xc01: 0x0018, 0xc02: 0x0018, 0xc03: 0x0018, 0xc04: 0x0018, 0xc05: 0x0018, - 0xc06: 0x0018, 0xc07: 0x1e92, 0xc08: 0x1eaa, 0xc09: 0x1ec2, 0xc0a: 0x0018, 0xc0b: 0x0018, + 0xc06: 0x0018, 0xc07: 0x06c2, 0xc08: 0x06ca, 0xc09: 0x06d2, 0xc0a: 0x0018, 0xc0b: 0x0018, 0xc0c: 0x0018, 0xc0d: 0x0018, 0xc0e: 0x0018, 0xc0f: 0x0018, 0xc10: 0x0018, 0xc11: 0x0018, - 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x1ed9, + 0xc12: 0x0018, 0xc13: 0x0018, 0xc14: 0x0018, 0xc15: 0x0018, 0xc16: 0x0018, 0xc17: 0x06d9, 0xc18: 0x0018, 0xc19: 0x0018, 0xc1a: 0x0018, 0xc1b: 0x0018, 0xc1c: 0x0018, 0xc1d: 0x0018, 0xc1e: 0x0018, 0xc1f: 0x000a, 0xc20: 0x03c0, 0xc21: 0x0340, 0xc22: 0x0340, 0xc23: 0x0340, 0xc24: 0x03c0, 0xc25: 0x0040, 0xc26: 0x0040, 0xc27: 0x0040, 0xc28: 0x0040, 0xc29: 0x0040, 0xc2a: 0x0340, 0xc2b: 0x0340, 0xc2c: 0x0340, 0xc2d: 0x0340, 0xc2e: 0x0340, 0xc2f: 0x0340, - 0xc30: 0x1f41, 0xc31: 0x0f41, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x1f51, 0xc35: 0x1f61, - 0xc36: 0x1f71, 0xc37: 0x1f81, 0xc38: 0x1f91, 0xc39: 0x1fa1, 0xc3a: 0x1fb2, 0xc3b: 0x07d5, - 0xc3c: 0x1fc2, 0xc3d: 0x1fd2, 0xc3e: 0x1fe2, 0xc3f: 0x0f71, + 0xc30: 0x06e1, 0xc31: 0x0311, 0xc32: 0x0040, 0xc33: 0x0040, 0xc34: 0x06e9, 0xc35: 0x06f1, + 0xc36: 0x06f9, 0xc37: 0x0701, 0xc38: 0x0709, 0xc39: 0x0711, 0xc3a: 0x071a, 0xc3b: 0x07d5, + 0xc3c: 0x0722, 0xc3d: 0x072a, 0xc3e: 0x0732, 0xc3f: 0x0329, // Block 0x31, offset 0xc40 - 0xc40: 0x1f41, 0xc41: 0x00c9, 0xc42: 0x0069, 0xc43: 0x0079, 0xc44: 0x1f51, 0xc45: 0x1f61, - 0xc46: 0x1f71, 0xc47: 0x1f81, 0xc48: 0x1f91, 0xc49: 0x1fa1, 0xc4a: 0x1fb2, 0xc4b: 0x07ed, - 0xc4c: 0x1fc2, 0xc4d: 0x1fd2, 0xc4e: 0x1fe2, 0xc4f: 0x0040, 0xc50: 0x0039, 0xc51: 0x0f09, - 0xc52: 0x00d9, 0xc53: 0x0369, 0xc54: 0x0ff9, 0xc55: 0x0249, 0xc56: 0x0f51, 0xc57: 0x0359, - 0xc58: 0x0f61, 0xc59: 0x0f71, 0xc5a: 0x0f99, 0xc5b: 0x01d9, 0xc5c: 0x0fa9, 0xc5d: 0x0040, + 0xc40: 0x06e1, 0xc41: 0x0049, 0xc42: 0x0029, 0xc43: 0x0031, 0xc44: 0x06e9, 0xc45: 0x06f1, + 0xc46: 0x06f9, 0xc47: 0x0701, 0xc48: 0x0709, 0xc49: 0x0711, 0xc4a: 0x071a, 0xc4b: 0x07ed, + 0xc4c: 0x0722, 0xc4d: 0x072a, 0xc4e: 0x0732, 0xc4f: 0x0040, 0xc50: 0x0019, 0xc51: 0x02f9, + 0xc52: 0x0051, 0xc53: 0x0109, 0xc54: 0x0361, 0xc55: 0x00a9, 0xc56: 0x0319, 0xc57: 0x0101, + 0xc58: 0x0321, 0xc59: 0x0329, 0xc5a: 0x0339, 0xc5b: 0x0089, 0xc5c: 0x0341, 0xc5d: 0x0040, 0xc5e: 0x0040, 0xc5f: 0x0040, 0xc60: 0x0018, 0xc61: 0x0018, 0xc62: 0x0018, 0xc63: 0x0018, - 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x1ff1, 0xc69: 0x0018, + 0xc64: 0x0018, 0xc65: 0x0018, 0xc66: 0x0018, 0xc67: 0x0018, 0xc68: 0x0739, 0xc69: 0x0018, 0xc6a: 0x0018, 0xc6b: 0x0018, 0xc6c: 0x0018, 0xc6d: 0x0018, 0xc6e: 0x0018, 0xc6f: 0x0018, 0xc70: 0x0018, 0xc71: 0x0018, 0xc72: 0x0018, 0xc73: 0x0018, 0xc74: 0x0018, 0xc75: 0x0018, 0xc76: 0x0018, 0xc77: 0x0018, 0xc78: 0x0018, 0xc79: 0x0018, 0xc7a: 0x0018, 0xc7b: 0x0018, 0xc7c: 0x0018, 0xc7d: 0x0018, 0xc7e: 0x0018, 0xc7f: 0x0018, // Block 0x32, offset 0xc80 - 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x1159, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, - 0xc86: 0x0886, 0xc87: 0x1011, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0f31, 0xc8b: 0x0249, - 0xc8c: 0x0249, 0xc8d: 0x0249, 0xc8e: 0x0249, 0xc8f: 0x2009, 0xc90: 0x0f41, 0xc91: 0x0f41, - 0xc92: 0x0359, 0xc93: 0x0359, 0xc94: 0x0018, 0xc95: 0x0f71, 0xc96: 0x2021, 0xc97: 0x0018, - 0xc98: 0x0018, 0xc99: 0x0f99, 0xc9a: 0x2039, 0xc9b: 0x0269, 0xc9c: 0x0269, 0xc9d: 0x0269, - 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x2049, 0xca1: 0x08c5, 0xca2: 0x2061, 0xca3: 0x0018, - 0xca4: 0x13d1, 0xca5: 0x0018, 0xca6: 0x2079, 0xca7: 0x0018, 0xca8: 0x13d1, 0xca9: 0x0018, - 0xcaa: 0x0f51, 0xcab: 0x2091, 0xcac: 0x0ee9, 0xcad: 0x1159, 0xcae: 0x0018, 0xcaf: 0x0f09, - 0xcb0: 0x0f09, 0xcb1: 0x1199, 0xcb2: 0x0040, 0xcb3: 0x0f61, 0xcb4: 0x00d9, 0xcb5: 0x20a9, - 0xcb6: 0x20c1, 0xcb7: 0x20d9, 0xcb8: 0x20f1, 0xcb9: 0x0f41, 0xcba: 0x0018, 0xcbb: 0x08e5, - 0xcbc: 0x2109, 0xcbd: 0x10b1, 0xcbe: 0x10b1, 0xcbf: 0x2109, + 0xc80: 0x0806, 0xc81: 0x0826, 0xc82: 0x03d9, 0xc83: 0x0845, 0xc84: 0x0018, 0xc85: 0x0866, + 0xc86: 0x0886, 0xc87: 0x0369, 0xc88: 0x0018, 0xc89: 0x08a5, 0xc8a: 0x0309, 0xc8b: 0x00a9, + 0xc8c: 0x00a9, 0xc8d: 0x00a9, 0xc8e: 0x00a9, 0xc8f: 0x0741, 0xc90: 0x0311, 0xc91: 0x0311, + 0xc92: 0x0101, 0xc93: 0x0101, 0xc94: 0x0018, 0xc95: 0x0329, 0xc96: 0x0749, 0xc97: 0x0018, + 0xc98: 0x0018, 0xc99: 0x0339, 0xc9a: 0x0751, 0xc9b: 0x00b9, 0xc9c: 0x00b9, 0xc9d: 0x00b9, + 0xc9e: 0x0018, 0xc9f: 0x0018, 0xca0: 0x0759, 0xca1: 0x08c5, 0xca2: 0x0761, 0xca3: 0x0018, + 0xca4: 0x04b1, 0xca5: 0x0018, 0xca6: 0x0769, 0xca7: 0x0018, 0xca8: 0x04b1, 0xca9: 0x0018, + 0xcaa: 0x0319, 0xcab: 0x0771, 0xcac: 0x02e9, 0xcad: 0x03d9, 0xcae: 0x0018, 0xcaf: 0x02f9, + 0xcb0: 0x02f9, 0xcb1: 0x03f1, 0xcb2: 0x0040, 0xcb3: 0x0321, 0xcb4: 0x0051, 0xcb5: 0x0779, + 0xcb6: 0x0781, 0xcb7: 0x0789, 0xcb8: 0x0791, 0xcb9: 0x0311, 0xcba: 0x0018, 0xcbb: 0x08e5, + 0xcbc: 0x0799, 0xcbd: 0x03a1, 0xcbe: 0x03a1, 0xcbf: 0x0799, // Block 0x33, offset 0xcc0 - 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x0ef9, - 0xcc6: 0x0ef9, 0xcc7: 0x0f09, 0xcc8: 0x0f41, 0xcc9: 0x0259, 0xcca: 0x0018, 0xccb: 0x0018, - 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x2121, 0xcd1: 0x2151, - 0xcd2: 0x2181, 0xcd3: 0x21b9, 0xcd4: 0x21e9, 0xcd5: 0x2219, 0xcd6: 0x2249, 0xcd7: 0x2279, - 0xcd8: 0x22a9, 0xcd9: 0x22d9, 0xcda: 0x2309, 0xcdb: 0x2339, 0xcdc: 0x2369, 0xcdd: 0x2399, - 0xcde: 0x23c9, 0xcdf: 0x23f9, 0xce0: 0x0f41, 0xce1: 0x2421, 0xce2: 0x091d, 0xce3: 0x2439, - 0xce4: 0x1089, 0xce5: 0x2451, 0xce6: 0x093d, 0xce7: 0x2469, 0xce8: 0x2491, 0xce9: 0x0369, - 0xcea: 0x24a9, 0xceb: 0x095d, 0xcec: 0x0359, 0xced: 0x1159, 0xcee: 0x0ef9, 0xcef: 0x0f61, - 0xcf0: 0x0f41, 0xcf1: 0x2421, 0xcf2: 0x097d, 0xcf3: 0x2439, 0xcf4: 0x1089, 0xcf5: 0x2451, - 0xcf6: 0x099d, 0xcf7: 0x2469, 0xcf8: 0x2491, 0xcf9: 0x0369, 0xcfa: 0x24a9, 0xcfb: 0x09bd, - 0xcfc: 0x0359, 0xcfd: 0x1159, 0xcfe: 0x0ef9, 0xcff: 0x0f61, + 0xcc0: 0x0905, 0xcc1: 0x0018, 0xcc2: 0x0018, 0xcc3: 0x0018, 0xcc4: 0x0018, 0xcc5: 0x02f1, + 0xcc6: 0x02f1, 0xcc7: 0x02f9, 0xcc8: 0x0311, 0xcc9: 0x00b1, 0xcca: 0x0018, 0xccb: 0x0018, + 0xccc: 0x0018, 0xccd: 0x0018, 0xcce: 0x0008, 0xccf: 0x0018, 0xcd0: 0x07a1, 0xcd1: 0x07a9, + 0xcd2: 0x07b1, 0xcd3: 0x07b9, 0xcd4: 0x07c1, 0xcd5: 0x07c9, 0xcd6: 0x07d1, 0xcd7: 0x07d9, + 0xcd8: 0x07e1, 0xcd9: 0x07e9, 0xcda: 0x07f1, 0xcdb: 0x07f9, 0xcdc: 0x0801, 0xcdd: 0x0809, + 0xcde: 0x0811, 0xcdf: 0x0819, 0xce0: 0x0311, 0xce1: 0x0821, 0xce2: 0x091d, 0xce3: 0x0829, + 0xce4: 0x0391, 0xce5: 0x0831, 0xce6: 0x093d, 0xce7: 0x0839, 0xce8: 0x0841, 0xce9: 0x0109, + 0xcea: 0x0849, 0xceb: 0x095d, 0xcec: 0x0101, 0xced: 0x03d9, 0xcee: 0x02f1, 0xcef: 0x0321, + 0xcf0: 0x0311, 0xcf1: 0x0821, 0xcf2: 0x097d, 0xcf3: 0x0829, 0xcf4: 0x0391, 0xcf5: 0x0831, + 0xcf6: 0x099d, 0xcf7: 0x0839, 0xcf8: 0x0841, 0xcf9: 0x0109, 0xcfa: 0x0849, 0xcfb: 0x09bd, + 0xcfc: 0x0101, 0xcfd: 0x03d9, 0xcfe: 0x02f1, 0xcff: 0x0321, // Block 0x34, offset 0xd00 0xd00: 0x0018, 0xd01: 0x0018, 0xd02: 0x0018, 0xd03: 0x0018, 0xd04: 0x0018, 0xd05: 0x0018, 0xd06: 0x0018, 0xd07: 0x0018, 0xd08: 0x0018, 0xd09: 0x0018, 0xd0a: 0x0018, 0xd0b: 0x0040, 0xd0c: 0x0040, 0xd0d: 0x0040, 0xd0e: 0x0040, 0xd0f: 0x0040, 0xd10: 0x0040, 0xd11: 0x0040, 0xd12: 0x0040, 0xd13: 0x0040, 0xd14: 0x0040, 0xd15: 0x0040, 0xd16: 0x0040, 0xd17: 0x0040, 0xd18: 0x0040, 0xd19: 0x0040, 0xd1a: 0x0040, 0xd1b: 0x0040, 0xd1c: 0x0040, 0xd1d: 0x0040, - 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x00c9, 0xd21: 0x0069, 0xd22: 0x0079, 0xd23: 0x1f51, - 0xd24: 0x1f61, 0xd25: 0x1f71, 0xd26: 0x1f81, 0xd27: 0x1f91, 0xd28: 0x1fa1, 0xd29: 0x2601, - 0xd2a: 0x2619, 0xd2b: 0x2631, 0xd2c: 0x2649, 0xd2d: 0x2661, 0xd2e: 0x2679, 0xd2f: 0x2691, - 0xd30: 0x26a9, 0xd31: 0x26c1, 0xd32: 0x26d9, 0xd33: 0x26f1, 0xd34: 0x0a1e, 0xd35: 0x0a3e, + 0xd1e: 0x0040, 0xd1f: 0x0040, 0xd20: 0x0049, 0xd21: 0x0029, 0xd22: 0x0031, 0xd23: 0x06e9, + 0xd24: 0x06f1, 0xd25: 0x06f9, 0xd26: 0x0701, 0xd27: 0x0709, 0xd28: 0x0711, 0xd29: 0x0879, + 0xd2a: 0x0881, 0xd2b: 0x0889, 0xd2c: 0x0891, 0xd2d: 0x0899, 0xd2e: 0x08a1, 0xd2f: 0x08a9, + 0xd30: 0x08b1, 0xd31: 0x08b9, 0xd32: 0x08c1, 0xd33: 0x08c9, 0xd34: 0x0a1e, 0xd35: 0x0a3e, 0xd36: 0x0a5e, 0xd37: 0x0a7e, 0xd38: 0x0a9e, 0xd39: 0x0abe, 0xd3a: 0x0ade, 0xd3b: 0x0afe, - 0xd3c: 0x0b1e, 0xd3d: 0x270a, 0xd3e: 0x2732, 0xd3f: 0x275a, + 0xd3c: 0x0b1e, 0xd3d: 0x08d2, 0xd3e: 0x08da, 0xd3f: 0x08e2, // Block 0x35, offset 0xd40 - 0xd40: 0x2782, 0xd41: 0x27aa, 0xd42: 0x27d2, 0xd43: 0x27fa, 0xd44: 0x2822, 0xd45: 0x284a, - 0xd46: 0x2872, 0xd47: 0x289a, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, + 0xd40: 0x08ea, 0xd41: 0x08f2, 0xd42: 0x08fa, 0xd43: 0x0902, 0xd44: 0x090a, 0xd45: 0x0912, + 0xd46: 0x091a, 0xd47: 0x0922, 0xd48: 0x0040, 0xd49: 0x0040, 0xd4a: 0x0040, 0xd4b: 0x0040, 0xd4c: 0x0040, 0xd4d: 0x0040, 0xd4e: 0x0040, 0xd4f: 0x0040, 0xd50: 0x0040, 0xd51: 0x0040, 0xd52: 0x0040, 0xd53: 0x0040, 0xd54: 0x0040, 0xd55: 0x0040, 0xd56: 0x0040, 0xd57: 0x0040, 0xd58: 0x0040, 0xd59: 0x0040, 0xd5a: 0x0040, 0xd5b: 0x0040, 0xd5c: 0x0b3e, 0xd5d: 0x0b5e, @@ -1203,17 +1345,17 @@ var idnaValues = [8192]uint16{ 0xd64: 0x0c3e, 0xd65: 0x0c5e, 0xd66: 0x0c7e, 0xd67: 0x0c9e, 0xd68: 0x0cbe, 0xd69: 0x0cde, 0xd6a: 0x0cfe, 0xd6b: 0x0d1e, 0xd6c: 0x0d3e, 0xd6d: 0x0d5e, 0xd6e: 0x0d7e, 0xd6f: 0x0d9e, 0xd70: 0x0dbe, 0xd71: 0x0dde, 0xd72: 0x0dfe, 0xd73: 0x0e1e, 0xd74: 0x0e3e, 0xd75: 0x0e5e, - 0xd76: 0x0039, 0xd77: 0x0ee9, 0xd78: 0x1159, 0xd79: 0x0ef9, 0xd7a: 0x0f09, 0xd7b: 0x1199, - 0xd7c: 0x0f31, 0xd7d: 0x0249, 0xd7e: 0x0f41, 0xd7f: 0x0259, + 0xd76: 0x0019, 0xd77: 0x02e9, 0xd78: 0x03d9, 0xd79: 0x02f1, 0xd7a: 0x02f9, 0xd7b: 0x03f1, + 0xd7c: 0x0309, 0xd7d: 0x00a9, 0xd7e: 0x0311, 0xd7f: 0x00b1, // Block 0x36, offset 0xd80 - 0xd80: 0x0f51, 0xd81: 0x0359, 0xd82: 0x0f61, 0xd83: 0x0f71, 0xd84: 0x00d9, 0xd85: 0x0f99, - 0xd86: 0x2039, 0xd87: 0x0269, 0xd88: 0x01d9, 0xd89: 0x0fa9, 0xd8a: 0x0fb9, 0xd8b: 0x1089, - 0xd8c: 0x0279, 0xd8d: 0x0369, 0xd8e: 0x0289, 0xd8f: 0x13d1, 0xd90: 0x0039, 0xd91: 0x0ee9, - 0xd92: 0x1159, 0xd93: 0x0ef9, 0xd94: 0x0f09, 0xd95: 0x1199, 0xd96: 0x0f31, 0xd97: 0x0249, - 0xd98: 0x0f41, 0xd99: 0x0259, 0xd9a: 0x0f51, 0xd9b: 0x0359, 0xd9c: 0x0f61, 0xd9d: 0x0f71, - 0xd9e: 0x00d9, 0xd9f: 0x0f99, 0xda0: 0x2039, 0xda1: 0x0269, 0xda2: 0x01d9, 0xda3: 0x0fa9, - 0xda4: 0x0fb9, 0xda5: 0x1089, 0xda6: 0x0279, 0xda7: 0x0369, 0xda8: 0x0289, 0xda9: 0x13d1, - 0xdaa: 0x1f41, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, + 0xd80: 0x0319, 0xd81: 0x0101, 0xd82: 0x0321, 0xd83: 0x0329, 0xd84: 0x0051, 0xd85: 0x0339, + 0xd86: 0x0751, 0xd87: 0x00b9, 0xd88: 0x0089, 0xd89: 0x0341, 0xd8a: 0x0349, 0xd8b: 0x0391, + 0xd8c: 0x00c1, 0xd8d: 0x0109, 0xd8e: 0x00c9, 0xd8f: 0x04b1, 0xd90: 0x0019, 0xd91: 0x02e9, + 0xd92: 0x03d9, 0xd93: 0x02f1, 0xd94: 0x02f9, 0xd95: 0x03f1, 0xd96: 0x0309, 0xd97: 0x00a9, + 0xd98: 0x0311, 0xd99: 0x00b1, 0xd9a: 0x0319, 0xd9b: 0x0101, 0xd9c: 0x0321, 0xd9d: 0x0329, + 0xd9e: 0x0051, 0xd9f: 0x0339, 0xda0: 0x0751, 0xda1: 0x00b9, 0xda2: 0x0089, 0xda3: 0x0341, + 0xda4: 0x0349, 0xda5: 0x0391, 0xda6: 0x00c1, 0xda7: 0x0109, 0xda8: 0x00c9, 0xda9: 0x04b1, + 0xdaa: 0x06e1, 0xdab: 0x0018, 0xdac: 0x0018, 0xdad: 0x0018, 0xdae: 0x0018, 0xdaf: 0x0018, 0xdb0: 0x0018, 0xdb1: 0x0018, 0xdb2: 0x0018, 0xdb3: 0x0018, 0xdb4: 0x0018, 0xdb5: 0x0018, 0xdb6: 0x0018, 0xdb7: 0x0018, 0xdb8: 0x0018, 0xdb9: 0x0018, 0xdba: 0x0018, 0xdbb: 0x0018, 0xdbc: 0x0018, 0xdbd: 0x0018, 0xdbe: 0x0018, 0xdbf: 0x0018, @@ -1223,12 +1365,12 @@ var idnaValues = [8192]uint16{ 0xdcc: 0x0008, 0xdcd: 0x0008, 0xdce: 0x0008, 0xdcf: 0x0008, 0xdd0: 0x0008, 0xdd1: 0x0008, 0xdd2: 0x0008, 0xdd3: 0x0008, 0xdd4: 0x0008, 0xdd5: 0x0008, 0xdd6: 0x0008, 0xdd7: 0x0008, 0xdd8: 0x0008, 0xdd9: 0x0008, 0xdda: 0x0008, 0xddb: 0x0008, 0xddc: 0x0008, 0xddd: 0x0008, - 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x2971, 0xde3: 0x0ed5, - 0xde4: 0x2989, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, - 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0fe1, 0xdee: 0x1281, 0xdef: 0x0fc9, - 0xdf0: 0x1141, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, + 0xdde: 0x0008, 0xddf: 0x0040, 0xde0: 0xe00d, 0xde1: 0x0008, 0xde2: 0x0941, 0xde3: 0x0ed5, + 0xde4: 0x0949, 0xde5: 0x0008, 0xde6: 0x0008, 0xde7: 0xe07d, 0xde8: 0x0008, 0xde9: 0xe01d, + 0xdea: 0x0008, 0xdeb: 0xe03d, 0xdec: 0x0008, 0xded: 0x0359, 0xdee: 0x0441, 0xdef: 0x0351, + 0xdf0: 0x03d1, 0xdf1: 0x0008, 0xdf2: 0xe00d, 0xdf3: 0x0008, 0xdf4: 0x0008, 0xdf5: 0xe01d, 0xdf6: 0x0008, 0xdf7: 0x0008, 0xdf8: 0x0008, 0xdf9: 0x0008, 0xdfa: 0x0008, 0xdfb: 0x0008, - 0xdfc: 0x0259, 0xdfd: 0x1089, 0xdfe: 0x29a1, 0xdff: 0x29b9, + 0xdfc: 0x00b1, 0xdfd: 0x0391, 0xdfe: 0x0951, 0xdff: 0x0959, // Block 0x38, offset 0xe00 0xe00: 0xe00d, 0xe01: 0x0008, 0xe02: 0xe00d, 0xe03: 0x0008, 0xe04: 0xe00d, 0xe05: 0x0008, 0xe06: 0xe00d, 0xe07: 0x0008, 0xe08: 0xe00d, 0xe09: 0x0008, 0xe0a: 0xe00d, 0xe0b: 0x0008, @@ -1254,7 +1396,7 @@ var idnaValues = [8192]uint16{ 0xe76: 0x0040, 0xe77: 0x0040, 0xe78: 0x0040, 0xe79: 0x0040, 0xe7a: 0x0040, 0xe7b: 0x0040, 0xe7c: 0x0040, 0xe7d: 0x0040, 0xe7e: 0x0040, 0xe7f: 0x0040, // Block 0x3a, offset 0xe80 - 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x29d1, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, + 0xe80: 0x000a, 0xe81: 0x0018, 0xe82: 0x0961, 0xe83: 0x0018, 0xe84: 0x0018, 0xe85: 0x0008, 0xe86: 0x0008, 0xe87: 0x0008, 0xe88: 0x0018, 0xe89: 0x0018, 0xe8a: 0x0018, 0xe8b: 0x0018, 0xe8c: 0x0018, 0xe8d: 0x0018, 0xe8e: 0x0018, 0xe8f: 0x0018, 0xe90: 0x0018, 0xe91: 0x0018, 0xe92: 0x0018, 0xe93: 0x0018, 0xe94: 0x0018, 0xe95: 0x0018, 0xe96: 0x0018, 0xe97: 0x0018, @@ -1290,17 +1432,17 @@ var idnaValues = [8192]uint16{ 0xf36: 0x0008, 0xf37: 0x0008, 0xf38: 0x0008, 0xf39: 0x0008, 0xf3a: 0x0008, 0xf3b: 0x0008, 0xf3c: 0x0008, 0xf3d: 0x0008, 0xf3e: 0x0008, 0xf3f: 0x0008, // Block 0x3d, offset 0xf40 - 0xf40: 0x36a2, 0xf41: 0x36d2, 0xf42: 0x3702, 0xf43: 0x3732, 0xf44: 0x32d5, 0xf45: 0x32f5, + 0xf40: 0x0b82, 0xf41: 0x0b8a, 0xf42: 0x0b92, 0xf43: 0x0b9a, 0xf44: 0x32d5, 0xf45: 0x32f5, 0xf46: 0x3315, 0xf47: 0x3335, 0xf48: 0x0018, 0xf49: 0x0018, 0xf4a: 0x0018, 0xf4b: 0x0018, - 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x3761, - 0xf52: 0x3779, 0xf53: 0x3791, 0xf54: 0x37a9, 0xf55: 0x37c1, 0xf56: 0x37d9, 0xf57: 0x37f1, - 0xf58: 0x3809, 0xf59: 0x3821, 0xf5a: 0x3839, 0xf5b: 0x3851, 0xf5c: 0x3869, 0xf5d: 0x3881, - 0xf5e: 0x3899, 0xf5f: 0x38b1, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, + 0xf4c: 0x0018, 0xf4d: 0x0018, 0xf4e: 0x0018, 0xf4f: 0x0018, 0xf50: 0x3355, 0xf51: 0x0ba1, + 0xf52: 0x0ba9, 0xf53: 0x0bb1, 0xf54: 0x0bb9, 0xf55: 0x0bc1, 0xf56: 0x0bc9, 0xf57: 0x0bd1, + 0xf58: 0x0bd9, 0xf59: 0x0be1, 0xf5a: 0x0be9, 0xf5b: 0x0bf1, 0xf5c: 0x0bf9, 0xf5d: 0x0c01, + 0xf5e: 0x0c09, 0xf5f: 0x0c11, 0xf60: 0x3375, 0xf61: 0x3395, 0xf62: 0x33b5, 0xf63: 0x33d5, 0xf64: 0x33f5, 0xf65: 0x33f5, 0xf66: 0x3415, 0xf67: 0x3435, 0xf68: 0x3455, 0xf69: 0x3475, 0xf6a: 0x3495, 0xf6b: 0x34b5, 0xf6c: 0x34d5, 0xf6d: 0x34f5, 0xf6e: 0x3515, 0xf6f: 0x3535, 0xf70: 0x3555, 0xf71: 0x3575, 0xf72: 0x3595, 0xf73: 0x35b5, 0xf74: 0x35d5, 0xf75: 0x35f5, 0xf76: 0x3615, 0xf77: 0x3635, 0xf78: 0x3655, 0xf79: 0x3675, 0xf7a: 0x3695, 0xf7b: 0x36b5, - 0xf7c: 0x38c9, 0xf7d: 0x3901, 0xf7e: 0x36d5, 0xf7f: 0x0018, + 0xf7c: 0x0c19, 0xf7d: 0x0c21, 0xf7e: 0x36d5, 0xf7f: 0x0018, // Block 0x3e, offset 0xf80 0xf80: 0x36f5, 0xf81: 0x3715, 0xf82: 0x3735, 0xf83: 0x3755, 0xf84: 0x3775, 0xf85: 0x3795, 0xf86: 0x37b5, 0xf87: 0x37d5, 0xf88: 0x37f5, 0xf89: 0x3815, 0xf8a: 0x3835, 0xf8b: 0x3855, @@ -1310,13 +1452,13 @@ var idnaValues = [8192]uint16{ 0xf9e: 0x3ab5, 0xf9f: 0x3ad5, 0xfa0: 0x3af5, 0xfa1: 0x3b15, 0xfa2: 0x3b35, 0xfa3: 0x3b55, 0xfa4: 0x3b75, 0xfa5: 0x3b95, 0xfa6: 0x1295, 0xfa7: 0x3bb5, 0xfa8: 0x3bd5, 0xfa9: 0x3bf5, 0xfaa: 0x3c15, 0xfab: 0x3c35, 0xfac: 0x3c55, 0xfad: 0x3c75, 0xfae: 0x23b5, 0xfaf: 0x3c95, - 0xfb0: 0x3cb5, 0xfb1: 0x3939, 0xfb2: 0x3951, 0xfb3: 0x3969, 0xfb4: 0x3981, 0xfb5: 0x3999, - 0xfb6: 0x39b1, 0xfb7: 0x39c9, 0xfb8: 0x39e1, 0xfb9: 0x39f9, 0xfba: 0x3a11, 0xfbb: 0x3a29, - 0xfbc: 0x3a41, 0xfbd: 0x3a59, 0xfbe: 0x3a71, 0xfbf: 0x3a89, + 0xfb0: 0x3cb5, 0xfb1: 0x0c29, 0xfb2: 0x0c31, 0xfb3: 0x0c39, 0xfb4: 0x0c41, 0xfb5: 0x0c49, + 0xfb6: 0x0c51, 0xfb7: 0x0c59, 0xfb8: 0x0c61, 0xfb9: 0x0c69, 0xfba: 0x0c71, 0xfbb: 0x0c79, + 0xfbc: 0x0c81, 0xfbd: 0x0c89, 0xfbe: 0x0c91, 0xfbf: 0x0c99, // Block 0x3f, offset 0xfc0 - 0xfc0: 0x3aa1, 0xfc1: 0x3ac9, 0xfc2: 0x3af1, 0xfc3: 0x3b19, 0xfc4: 0x3b41, 0xfc5: 0x3b69, - 0xfc6: 0x3b91, 0xfc7: 0x3bb9, 0xfc8: 0x3be1, 0xfc9: 0x3c09, 0xfca: 0x3c39, 0xfcb: 0x3c69, - 0xfcc: 0x3c99, 0xfcd: 0x3cd5, 0xfce: 0x3cb1, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, + 0xfc0: 0x0ca1, 0xfc1: 0x0ca9, 0xfc2: 0x0cb1, 0xfc3: 0x0cb9, 0xfc4: 0x0cc1, 0xfc5: 0x0cc9, + 0xfc6: 0x0cd1, 0xfc7: 0x0cd9, 0xfc8: 0x0ce1, 0xfc9: 0x0ce9, 0xfca: 0x0cf1, 0xfcb: 0x0cf9, + 0xfcc: 0x0d01, 0xfcd: 0x3cd5, 0xfce: 0x0d09, 0xfcf: 0x3cf5, 0xfd0: 0x3d15, 0xfd1: 0x3d2d, 0xfd2: 0x3d45, 0xfd3: 0x3d5d, 0xfd4: 0x3d75, 0xfd5: 0x3d75, 0xfd6: 0x3d5d, 0xfd7: 0x3d8d, 0xfd8: 0x07d5, 0xfd9: 0x3da5, 0xfda: 0x3dbd, 0xfdb: 0x3dd5, 0xfdc: 0x3ded, 0xfdd: 0x3e05, 0xfde: 0x3e1d, 0xfdf: 0x3e35, 0xfe0: 0x3e4d, 0xfe1: 0x3e65, 0xfe2: 0x3e7d, 0xfe3: 0x3e95, @@ -1324,769 +1466,769 @@ var idnaValues = [8192]uint16{ 0xfea: 0x3ef5, 0xfeb: 0x3f0d, 0xfec: 0x3f25, 0xfed: 0x3f3d, 0xfee: 0x3f55, 0xfef: 0x3f55, 0xff0: 0x3f6d, 0xff1: 0x3f6d, 0xff2: 0x3f6d, 0xff3: 0x3f85, 0xff4: 0x3f9d, 0xff5: 0x3fb5, 0xff6: 0x3fcd, 0xff7: 0x3fb5, 0xff8: 0x3fe5, 0xff9: 0x3ffd, 0xffa: 0x3f85, 0xffb: 0x4015, - 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x3cc9, + 0xffc: 0x402d, 0xffd: 0x402d, 0xffe: 0x402d, 0xfff: 0x0d11, // Block 0x40, offset 0x1000 - 0x1000: 0x3d01, 0x1001: 0x3d69, 0x1002: 0x3dd1, 0x1003: 0x3e39, 0x1004: 0x3e89, 0x1005: 0x3ef1, - 0x1006: 0x3f41, 0x1007: 0x3f91, 0x1008: 0x4011, 0x1009: 0x4079, 0x100a: 0x40c9, 0x100b: 0x4119, - 0x100c: 0x4169, 0x100d: 0x41d1, 0x100e: 0x4239, 0x100f: 0x4289, 0x1010: 0x42d9, 0x1011: 0x4311, - 0x1012: 0x4361, 0x1013: 0x43c9, 0x1014: 0x4431, 0x1015: 0x4469, 0x1016: 0x44e9, 0x1017: 0x4581, - 0x1018: 0x4601, 0x1019: 0x4651, 0x101a: 0x46d1, 0x101b: 0x4751, 0x101c: 0x47b9, 0x101d: 0x4809, - 0x101e: 0x4859, 0x101f: 0x48a9, 0x1020: 0x4911, 0x1021: 0x4991, 0x1022: 0x49f9, 0x1023: 0x4a49, - 0x1024: 0x4a99, 0x1025: 0x4ae9, 0x1026: 0x4b21, 0x1027: 0x4b59, 0x1028: 0x4b91, 0x1029: 0x4bc9, - 0x102a: 0x4c19, 0x102b: 0x4c69, 0x102c: 0x4ce9, 0x102d: 0x4d39, 0x102e: 0x4da1, 0x102f: 0x4e21, - 0x1030: 0x4e71, 0x1031: 0x4ea9, 0x1032: 0x4ee1, 0x1033: 0x4f61, 0x1034: 0x4fc9, 0x1035: 0x5049, - 0x1036: 0x5099, 0x1037: 0x5119, 0x1038: 0x5151, 0x1039: 0x51a1, 0x103a: 0x51f1, 0x103b: 0x5241, - 0x103c: 0x5291, 0x103d: 0x52e1, 0x103e: 0x5349, 0x103f: 0x5399, + 0x1000: 0x10f9, 0x1001: 0x1101, 0x1002: 0x40a5, 0x1003: 0x1109, 0x1004: 0x1111, 0x1005: 0x1119, + 0x1006: 0x1121, 0x1007: 0x1129, 0x1008: 0x40c5, 0x1009: 0x1131, 0x100a: 0x1139, 0x100b: 0x1141, + 0x100c: 0x40e5, 0x100d: 0x40e5, 0x100e: 0x1149, 0x100f: 0x1151, 0x1010: 0x1159, 0x1011: 0x4105, + 0x1012: 0x4125, 0x1013: 0x4145, 0x1014: 0x4165, 0x1015: 0x4185, 0x1016: 0x1161, 0x1017: 0x1169, + 0x1018: 0x1171, 0x1019: 0x1179, 0x101a: 0x1181, 0x101b: 0x41a5, 0x101c: 0x1189, 0x101d: 0x1191, + 0x101e: 0x1199, 0x101f: 0x41c5, 0x1020: 0x41e5, 0x1021: 0x11a1, 0x1022: 0x4205, 0x1023: 0x4225, + 0x1024: 0x4245, 0x1025: 0x11a9, 0x1026: 0x4265, 0x1027: 0x11b1, 0x1028: 0x11b9, 0x1029: 0x10f9, + 0x102a: 0x4285, 0x102b: 0x42a5, 0x102c: 0x42c5, 0x102d: 0x42e5, 0x102e: 0x11c1, 0x102f: 0x11c9, + 0x1030: 0x11d1, 0x1031: 0x11d9, 0x1032: 0x4305, 0x1033: 0x11e1, 0x1034: 0x11e9, 0x1035: 0x11f1, + 0x1036: 0x4325, 0x1037: 0x11f9, 0x1038: 0x1201, 0x1039: 0x11f9, 0x103a: 0x1209, 0x103b: 0x1211, + 0x103c: 0x4345, 0x103d: 0x1219, 0x103e: 0x1221, 0x103f: 0x1219, // Block 0x41, offset 0x1040 - 0x1040: 0x53d1, 0x1041: 0x5421, 0x1042: 0x5471, 0x1043: 0x54c1, 0x1044: 0x5529, 0x1045: 0x5579, - 0x1046: 0x55c9, 0x1047: 0x5619, 0x1048: 0x5699, 0x1049: 0x5701, 0x104a: 0x5739, 0x104b: 0x57b9, - 0x104c: 0x57f1, 0x104d: 0x5859, 0x104e: 0x58c1, 0x104f: 0x5911, 0x1050: 0x5961, 0x1051: 0x59b1, - 0x1052: 0x5a19, 0x1053: 0x5a51, 0x1054: 0x5aa1, 0x1055: 0x5b09, 0x1056: 0x5b41, 0x1057: 0x5bc1, - 0x1058: 0x5c11, 0x1059: 0x5c39, 0x105a: 0x5c61, 0x105b: 0x5c89, 0x105c: 0x5cb1, 0x105d: 0x5cd9, - 0x105e: 0x5d01, 0x105f: 0x5d29, 0x1060: 0x5d51, 0x1061: 0x5d79, 0x1062: 0x5da1, 0x1063: 0x5dd1, - 0x1064: 0x5e01, 0x1065: 0x5e31, 0x1066: 0x5e61, 0x1067: 0x5e91, 0x1068: 0x5ec1, 0x1069: 0x5ef1, - 0x106a: 0x5f21, 0x106b: 0x5f51, 0x106c: 0x5f81, 0x106d: 0x5fb1, 0x106e: 0x5fe1, 0x106f: 0x6011, - 0x1070: 0x6041, 0x1071: 0x4045, 0x1072: 0x6071, 0x1073: 0x6089, 0x1074: 0x4065, 0x1075: 0x60a1, - 0x1076: 0x60b9, 0x1077: 0x60d1, 0x1078: 0x4085, 0x1079: 0x4085, 0x107a: 0x60e9, 0x107b: 0x6101, - 0x107c: 0x6139, 0x107d: 0x6171, 0x107e: 0x61a9, 0x107f: 0x61e1, + 0x1040: 0x4365, 0x1041: 0x4385, 0x1042: 0x0040, 0x1043: 0x1229, 0x1044: 0x1231, 0x1045: 0x1239, + 0x1046: 0x1241, 0x1047: 0x0040, 0x1048: 0x1249, 0x1049: 0x1251, 0x104a: 0x1259, 0x104b: 0x1261, + 0x104c: 0x1269, 0x104d: 0x1271, 0x104e: 0x1199, 0x104f: 0x1279, 0x1050: 0x1281, 0x1051: 0x1289, + 0x1052: 0x43a5, 0x1053: 0x1291, 0x1054: 0x1121, 0x1055: 0x43c5, 0x1056: 0x43e5, 0x1057: 0x1299, + 0x1058: 0x0040, 0x1059: 0x4405, 0x105a: 0x12a1, 0x105b: 0x12a9, 0x105c: 0x12b1, 0x105d: 0x12b9, + 0x105e: 0x12c1, 0x105f: 0x12c9, 0x1060: 0x12d1, 0x1061: 0x12d9, 0x1062: 0x12e1, 0x1063: 0x12e9, + 0x1064: 0x12f1, 0x1065: 0x12f9, 0x1066: 0x1301, 0x1067: 0x1309, 0x1068: 0x1311, 0x1069: 0x1319, + 0x106a: 0x1321, 0x106b: 0x1329, 0x106c: 0x1331, 0x106d: 0x1339, 0x106e: 0x1341, 0x106f: 0x1349, + 0x1070: 0x1351, 0x1071: 0x1359, 0x1072: 0x1361, 0x1073: 0x1369, 0x1074: 0x1371, 0x1075: 0x1379, + 0x1076: 0x1381, 0x1077: 0x1389, 0x1078: 0x1391, 0x1079: 0x1399, 0x107a: 0x13a1, 0x107b: 0x13a9, + 0x107c: 0x13b1, 0x107d: 0x13b9, 0x107e: 0x13c1, 0x107f: 0x4425, // Block 0x42, offset 0x1080 - 0x1080: 0x6249, 0x1081: 0x6261, 0x1082: 0x40a5, 0x1083: 0x6279, 0x1084: 0x6291, 0x1085: 0x62a9, - 0x1086: 0x62c1, 0x1087: 0x62d9, 0x1088: 0x40c5, 0x1089: 0x62f1, 0x108a: 0x6319, 0x108b: 0x6331, - 0x108c: 0x40e5, 0x108d: 0x40e5, 0x108e: 0x6349, 0x108f: 0x6361, 0x1090: 0x6379, 0x1091: 0x4105, - 0x1092: 0x4125, 0x1093: 0x4145, 0x1094: 0x4165, 0x1095: 0x4185, 0x1096: 0x6391, 0x1097: 0x63a9, - 0x1098: 0x63c1, 0x1099: 0x63d9, 0x109a: 0x63f1, 0x109b: 0x41a5, 0x109c: 0x6409, 0x109d: 0x6421, - 0x109e: 0x6439, 0x109f: 0x41c5, 0x10a0: 0x41e5, 0x10a1: 0x6451, 0x10a2: 0x4205, 0x10a3: 0x4225, - 0x10a4: 0x4245, 0x10a5: 0x6469, 0x10a6: 0x4265, 0x10a7: 0x6481, 0x10a8: 0x64b1, 0x10a9: 0x6249, - 0x10aa: 0x4285, 0x10ab: 0x42a5, 0x10ac: 0x42c5, 0x10ad: 0x42e5, 0x10ae: 0x64e9, 0x10af: 0x6529, - 0x10b0: 0x6571, 0x10b1: 0x6589, 0x10b2: 0x4305, 0x10b3: 0x65a1, 0x10b4: 0x65b9, 0x10b5: 0x65d1, - 0x10b6: 0x4325, 0x10b7: 0x65e9, 0x10b8: 0x6601, 0x10b9: 0x65e9, 0x10ba: 0x6619, 0x10bb: 0x6631, - 0x10bc: 0x4345, 0x10bd: 0x6649, 0x10be: 0x6661, 0x10bf: 0x6649, + 0x1080: 0xe00d, 0x1081: 0x0008, 0x1082: 0xe00d, 0x1083: 0x0008, 0x1084: 0xe00d, 0x1085: 0x0008, + 0x1086: 0xe00d, 0x1087: 0x0008, 0x1088: 0xe00d, 0x1089: 0x0008, 0x108a: 0xe00d, 0x108b: 0x0008, + 0x108c: 0xe00d, 0x108d: 0x0008, 0x108e: 0xe00d, 0x108f: 0x0008, 0x1090: 0xe00d, 0x1091: 0x0008, + 0x1092: 0xe00d, 0x1093: 0x0008, 0x1094: 0xe00d, 0x1095: 0x0008, 0x1096: 0xe00d, 0x1097: 0x0008, + 0x1098: 0xe00d, 0x1099: 0x0008, 0x109a: 0xe00d, 0x109b: 0x0008, 0x109c: 0xe00d, 0x109d: 0x0008, + 0x109e: 0xe00d, 0x109f: 0x0008, 0x10a0: 0xe00d, 0x10a1: 0x0008, 0x10a2: 0xe00d, 0x10a3: 0x0008, + 0x10a4: 0xe00d, 0x10a5: 0x0008, 0x10a6: 0xe00d, 0x10a7: 0x0008, 0x10a8: 0xe00d, 0x10a9: 0x0008, + 0x10aa: 0xe00d, 0x10ab: 0x0008, 0x10ac: 0xe00d, 0x10ad: 0x0008, 0x10ae: 0x0008, 0x10af: 0x3308, + 0x10b0: 0x3318, 0x10b1: 0x3318, 0x10b2: 0x3318, 0x10b3: 0x0018, 0x10b4: 0x3308, 0x10b5: 0x3308, + 0x10b6: 0x3308, 0x10b7: 0x3308, 0x10b8: 0x3308, 0x10b9: 0x3308, 0x10ba: 0x3308, 0x10bb: 0x3308, + 0x10bc: 0x3308, 0x10bd: 0x3308, 0x10be: 0x0018, 0x10bf: 0x0008, // Block 0x43, offset 0x10c0 - 0x10c0: 0x4365, 0x10c1: 0x4385, 0x10c2: 0x0040, 0x10c3: 0x6679, 0x10c4: 0x6691, 0x10c5: 0x66a9, - 0x10c6: 0x66c1, 0x10c7: 0x0040, 0x10c8: 0x66f9, 0x10c9: 0x6711, 0x10ca: 0x6729, 0x10cb: 0x6741, - 0x10cc: 0x6759, 0x10cd: 0x6771, 0x10ce: 0x6439, 0x10cf: 0x6789, 0x10d0: 0x67a1, 0x10d1: 0x67b9, - 0x10d2: 0x43a5, 0x10d3: 0x67d1, 0x10d4: 0x62c1, 0x10d5: 0x43c5, 0x10d6: 0x43e5, 0x10d7: 0x67e9, - 0x10d8: 0x0040, 0x10d9: 0x4405, 0x10da: 0x6801, 0x10db: 0x6819, 0x10dc: 0x6831, 0x10dd: 0x6849, - 0x10de: 0x6861, 0x10df: 0x6891, 0x10e0: 0x68c1, 0x10e1: 0x68e9, 0x10e2: 0x6911, 0x10e3: 0x6939, - 0x10e4: 0x6961, 0x10e5: 0x6989, 0x10e6: 0x69b1, 0x10e7: 0x69d9, 0x10e8: 0x6a01, 0x10e9: 0x6a29, - 0x10ea: 0x6a59, 0x10eb: 0x6a89, 0x10ec: 0x6ab9, 0x10ed: 0x6ae9, 0x10ee: 0x6b19, 0x10ef: 0x6b49, - 0x10f0: 0x6b79, 0x10f1: 0x6ba9, 0x10f2: 0x6bd9, 0x10f3: 0x6c09, 0x10f4: 0x6c39, 0x10f5: 0x6c69, - 0x10f6: 0x6c99, 0x10f7: 0x6cc9, 0x10f8: 0x6cf9, 0x10f9: 0x6d29, 0x10fa: 0x6d59, 0x10fb: 0x6d89, - 0x10fc: 0x6db9, 0x10fd: 0x6de9, 0x10fe: 0x6e19, 0x10ff: 0x4425, + 0x10c0: 0xe00d, 0x10c1: 0x0008, 0x10c2: 0xe00d, 0x10c3: 0x0008, 0x10c4: 0xe00d, 0x10c5: 0x0008, + 0x10c6: 0xe00d, 0x10c7: 0x0008, 0x10c8: 0xe00d, 0x10c9: 0x0008, 0x10ca: 0xe00d, 0x10cb: 0x0008, + 0x10cc: 0xe00d, 0x10cd: 0x0008, 0x10ce: 0xe00d, 0x10cf: 0x0008, 0x10d0: 0xe00d, 0x10d1: 0x0008, + 0x10d2: 0xe00d, 0x10d3: 0x0008, 0x10d4: 0xe00d, 0x10d5: 0x0008, 0x10d6: 0xe00d, 0x10d7: 0x0008, + 0x10d8: 0xe00d, 0x10d9: 0x0008, 0x10da: 0xe00d, 0x10db: 0x0008, 0x10dc: 0x02d1, 0x10dd: 0x13c9, + 0x10de: 0x3308, 0x10df: 0x3308, 0x10e0: 0x0008, 0x10e1: 0x0008, 0x10e2: 0x0008, 0x10e3: 0x0008, + 0x10e4: 0x0008, 0x10e5: 0x0008, 0x10e6: 0x0008, 0x10e7: 0x0008, 0x10e8: 0x0008, 0x10e9: 0x0008, + 0x10ea: 0x0008, 0x10eb: 0x0008, 0x10ec: 0x0008, 0x10ed: 0x0008, 0x10ee: 0x0008, 0x10ef: 0x0008, + 0x10f0: 0x0008, 0x10f1: 0x0008, 0x10f2: 0x0008, 0x10f3: 0x0008, 0x10f4: 0x0008, 0x10f5: 0x0008, + 0x10f6: 0x0008, 0x10f7: 0x0008, 0x10f8: 0x0008, 0x10f9: 0x0008, 0x10fa: 0x0008, 0x10fb: 0x0008, + 0x10fc: 0x0008, 0x10fd: 0x0008, 0x10fe: 0x0008, 0x10ff: 0x0008, // Block 0x44, offset 0x1100 - 0x1100: 0xe00d, 0x1101: 0x0008, 0x1102: 0xe00d, 0x1103: 0x0008, 0x1104: 0xe00d, 0x1105: 0x0008, - 0x1106: 0xe00d, 0x1107: 0x0008, 0x1108: 0xe00d, 0x1109: 0x0008, 0x110a: 0xe00d, 0x110b: 0x0008, - 0x110c: 0xe00d, 0x110d: 0x0008, 0x110e: 0xe00d, 0x110f: 0x0008, 0x1110: 0xe00d, 0x1111: 0x0008, - 0x1112: 0xe00d, 0x1113: 0x0008, 0x1114: 0xe00d, 0x1115: 0x0008, 0x1116: 0xe00d, 0x1117: 0x0008, - 0x1118: 0xe00d, 0x1119: 0x0008, 0x111a: 0xe00d, 0x111b: 0x0008, 0x111c: 0xe00d, 0x111d: 0x0008, - 0x111e: 0xe00d, 0x111f: 0x0008, 0x1120: 0xe00d, 0x1121: 0x0008, 0x1122: 0xe00d, 0x1123: 0x0008, + 0x1100: 0x0018, 0x1101: 0x0018, 0x1102: 0x0018, 0x1103: 0x0018, 0x1104: 0x0018, 0x1105: 0x0018, + 0x1106: 0x0018, 0x1107: 0x0018, 0x1108: 0x0018, 0x1109: 0x0018, 0x110a: 0x0018, 0x110b: 0x0018, + 0x110c: 0x0018, 0x110d: 0x0018, 0x110e: 0x0018, 0x110f: 0x0018, 0x1110: 0x0018, 0x1111: 0x0018, + 0x1112: 0x0018, 0x1113: 0x0018, 0x1114: 0x0018, 0x1115: 0x0018, 0x1116: 0x0018, 0x1117: 0x0008, + 0x1118: 0x0008, 0x1119: 0x0008, 0x111a: 0x0008, 0x111b: 0x0008, 0x111c: 0x0008, 0x111d: 0x0008, + 0x111e: 0x0008, 0x111f: 0x0008, 0x1120: 0x0018, 0x1121: 0x0018, 0x1122: 0xe00d, 0x1123: 0x0008, 0x1124: 0xe00d, 0x1125: 0x0008, 0x1126: 0xe00d, 0x1127: 0x0008, 0x1128: 0xe00d, 0x1129: 0x0008, - 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0x0008, 0x112f: 0x3308, - 0x1130: 0x3318, 0x1131: 0x3318, 0x1132: 0x3318, 0x1133: 0x0018, 0x1134: 0x3308, 0x1135: 0x3308, - 0x1136: 0x3308, 0x1137: 0x3308, 0x1138: 0x3308, 0x1139: 0x3308, 0x113a: 0x3308, 0x113b: 0x3308, - 0x113c: 0x3308, 0x113d: 0x3308, 0x113e: 0x0018, 0x113f: 0x0008, + 0x112a: 0xe00d, 0x112b: 0x0008, 0x112c: 0xe00d, 0x112d: 0x0008, 0x112e: 0xe00d, 0x112f: 0x0008, + 0x1130: 0x0008, 0x1131: 0x0008, 0x1132: 0xe00d, 0x1133: 0x0008, 0x1134: 0xe00d, 0x1135: 0x0008, + 0x1136: 0xe00d, 0x1137: 0x0008, 0x1138: 0xe00d, 0x1139: 0x0008, 0x113a: 0xe00d, 0x113b: 0x0008, + 0x113c: 0xe00d, 0x113d: 0x0008, 0x113e: 0xe00d, 0x113f: 0x0008, // Block 0x45, offset 0x1140 0x1140: 0xe00d, 0x1141: 0x0008, 0x1142: 0xe00d, 0x1143: 0x0008, 0x1144: 0xe00d, 0x1145: 0x0008, 0x1146: 0xe00d, 0x1147: 0x0008, 0x1148: 0xe00d, 0x1149: 0x0008, 0x114a: 0xe00d, 0x114b: 0x0008, 0x114c: 0xe00d, 0x114d: 0x0008, 0x114e: 0xe00d, 0x114f: 0x0008, 0x1150: 0xe00d, 0x1151: 0x0008, 0x1152: 0xe00d, 0x1153: 0x0008, 0x1154: 0xe00d, 0x1155: 0x0008, 0x1156: 0xe00d, 0x1157: 0x0008, - 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0x0ea1, 0x115d: 0x6e49, - 0x115e: 0x3308, 0x115f: 0x3308, 0x1160: 0x0008, 0x1161: 0x0008, 0x1162: 0x0008, 0x1163: 0x0008, - 0x1164: 0x0008, 0x1165: 0x0008, 0x1166: 0x0008, 0x1167: 0x0008, 0x1168: 0x0008, 0x1169: 0x0008, - 0x116a: 0x0008, 0x116b: 0x0008, 0x116c: 0x0008, 0x116d: 0x0008, 0x116e: 0x0008, 0x116f: 0x0008, - 0x1170: 0x0008, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, - 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0x0008, 0x117a: 0x0008, 0x117b: 0x0008, - 0x117c: 0x0008, 0x117d: 0x0008, 0x117e: 0x0008, 0x117f: 0x0008, + 0x1158: 0xe00d, 0x1159: 0x0008, 0x115a: 0xe00d, 0x115b: 0x0008, 0x115c: 0xe00d, 0x115d: 0x0008, + 0x115e: 0xe00d, 0x115f: 0x0008, 0x1160: 0xe00d, 0x1161: 0x0008, 0x1162: 0xe00d, 0x1163: 0x0008, + 0x1164: 0xe00d, 0x1165: 0x0008, 0x1166: 0xe00d, 0x1167: 0x0008, 0x1168: 0xe00d, 0x1169: 0x0008, + 0x116a: 0xe00d, 0x116b: 0x0008, 0x116c: 0xe00d, 0x116d: 0x0008, 0x116e: 0xe00d, 0x116f: 0x0008, + 0x1170: 0xe0fd, 0x1171: 0x0008, 0x1172: 0x0008, 0x1173: 0x0008, 0x1174: 0x0008, 0x1175: 0x0008, + 0x1176: 0x0008, 0x1177: 0x0008, 0x1178: 0x0008, 0x1179: 0xe01d, 0x117a: 0x0008, 0x117b: 0xe03d, + 0x117c: 0x0008, 0x117d: 0x4445, 0x117e: 0xe00d, 0x117f: 0x0008, // Block 0x46, offset 0x1180 - 0x1180: 0x0018, 0x1181: 0x0018, 0x1182: 0x0018, 0x1183: 0x0018, 0x1184: 0x0018, 0x1185: 0x0018, - 0x1186: 0x0018, 0x1187: 0x0018, 0x1188: 0x0018, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0x0018, - 0x118c: 0x0018, 0x118d: 0x0018, 0x118e: 0x0018, 0x118f: 0x0018, 0x1190: 0x0018, 0x1191: 0x0018, - 0x1192: 0x0018, 0x1193: 0x0018, 0x1194: 0x0018, 0x1195: 0x0018, 0x1196: 0x0018, 0x1197: 0x0008, - 0x1198: 0x0008, 0x1199: 0x0008, 0x119a: 0x0008, 0x119b: 0x0008, 0x119c: 0x0008, 0x119d: 0x0008, - 0x119e: 0x0008, 0x119f: 0x0008, 0x11a0: 0x0018, 0x11a1: 0x0018, 0x11a2: 0xe00d, 0x11a3: 0x0008, + 0x1180: 0xe00d, 0x1181: 0x0008, 0x1182: 0xe00d, 0x1183: 0x0008, 0x1184: 0xe00d, 0x1185: 0x0008, + 0x1186: 0xe00d, 0x1187: 0x0008, 0x1188: 0x0008, 0x1189: 0x0018, 0x118a: 0x0018, 0x118b: 0xe03d, + 0x118c: 0x0008, 0x118d: 0x0409, 0x118e: 0x0008, 0x118f: 0x0008, 0x1190: 0xe00d, 0x1191: 0x0008, + 0x1192: 0xe00d, 0x1193: 0x0008, 0x1194: 0x0008, 0x1195: 0x0008, 0x1196: 0xe00d, 0x1197: 0x0008, + 0x1198: 0xe00d, 0x1199: 0x0008, 0x119a: 0xe00d, 0x119b: 0x0008, 0x119c: 0xe00d, 0x119d: 0x0008, + 0x119e: 0xe00d, 0x119f: 0x0008, 0x11a0: 0xe00d, 0x11a1: 0x0008, 0x11a2: 0xe00d, 0x11a3: 0x0008, 0x11a4: 0xe00d, 0x11a5: 0x0008, 0x11a6: 0xe00d, 0x11a7: 0x0008, 0x11a8: 0xe00d, 0x11a9: 0x0008, - 0x11aa: 0xe00d, 0x11ab: 0x0008, 0x11ac: 0xe00d, 0x11ad: 0x0008, 0x11ae: 0xe00d, 0x11af: 0x0008, - 0x11b0: 0x0008, 0x11b1: 0x0008, 0x11b2: 0xe00d, 0x11b3: 0x0008, 0x11b4: 0xe00d, 0x11b5: 0x0008, + 0x11aa: 0x13d1, 0x11ab: 0x0371, 0x11ac: 0x0401, 0x11ad: 0x13d9, 0x11ae: 0x0421, 0x11af: 0x0008, + 0x11b0: 0x13e1, 0x11b1: 0x13e9, 0x11b2: 0x0429, 0x11b3: 0x4465, 0x11b4: 0xe00d, 0x11b5: 0x0008, 0x11b6: 0xe00d, 0x11b7: 0x0008, 0x11b8: 0xe00d, 0x11b9: 0x0008, 0x11ba: 0xe00d, 0x11bb: 0x0008, 0x11bc: 0xe00d, 0x11bd: 0x0008, 0x11be: 0xe00d, 0x11bf: 0x0008, // Block 0x47, offset 0x11c0 - 0x11c0: 0xe00d, 0x11c1: 0x0008, 0x11c2: 0xe00d, 0x11c3: 0x0008, 0x11c4: 0xe00d, 0x11c5: 0x0008, - 0x11c6: 0xe00d, 0x11c7: 0x0008, 0x11c8: 0xe00d, 0x11c9: 0x0008, 0x11ca: 0xe00d, 0x11cb: 0x0008, - 0x11cc: 0xe00d, 0x11cd: 0x0008, 0x11ce: 0xe00d, 0x11cf: 0x0008, 0x11d0: 0xe00d, 0x11d1: 0x0008, - 0x11d2: 0xe00d, 0x11d3: 0x0008, 0x11d4: 0xe00d, 0x11d5: 0x0008, 0x11d6: 0xe00d, 0x11d7: 0x0008, - 0x11d8: 0xe00d, 0x11d9: 0x0008, 0x11da: 0xe00d, 0x11db: 0x0008, 0x11dc: 0xe00d, 0x11dd: 0x0008, - 0x11de: 0xe00d, 0x11df: 0x0008, 0x11e0: 0xe00d, 0x11e1: 0x0008, 0x11e2: 0xe00d, 0x11e3: 0x0008, - 0x11e4: 0xe00d, 0x11e5: 0x0008, 0x11e6: 0xe00d, 0x11e7: 0x0008, 0x11e8: 0xe00d, 0x11e9: 0x0008, - 0x11ea: 0xe00d, 0x11eb: 0x0008, 0x11ec: 0xe00d, 0x11ed: 0x0008, 0x11ee: 0xe00d, 0x11ef: 0x0008, - 0x11f0: 0xe0fd, 0x11f1: 0x0008, 0x11f2: 0x0008, 0x11f3: 0x0008, 0x11f4: 0x0008, 0x11f5: 0x0008, - 0x11f6: 0x0008, 0x11f7: 0x0008, 0x11f8: 0x0008, 0x11f9: 0xe01d, 0x11fa: 0x0008, 0x11fb: 0xe03d, - 0x11fc: 0x0008, 0x11fd: 0x4445, 0x11fe: 0xe00d, 0x11ff: 0x0008, + 0x11c0: 0x650d, 0x11c1: 0x652d, 0x11c2: 0x654d, 0x11c3: 0x656d, 0x11c4: 0x658d, 0x11c5: 0x65ad, + 0x11c6: 0x65cd, 0x11c7: 0x65ed, 0x11c8: 0x660d, 0x11c9: 0x662d, 0x11ca: 0x664d, 0x11cb: 0x666d, + 0x11cc: 0x668d, 0x11cd: 0x66ad, 0x11ce: 0x0008, 0x11cf: 0x0008, 0x11d0: 0x66cd, 0x11d1: 0x0008, + 0x11d2: 0x66ed, 0x11d3: 0x0008, 0x11d4: 0x0008, 0x11d5: 0x670d, 0x11d6: 0x672d, 0x11d7: 0x674d, + 0x11d8: 0x676d, 0x11d9: 0x678d, 0x11da: 0x67ad, 0x11db: 0x67cd, 0x11dc: 0x67ed, 0x11dd: 0x680d, + 0x11de: 0x682d, 0x11df: 0x0008, 0x11e0: 0x684d, 0x11e1: 0x0008, 0x11e2: 0x686d, 0x11e3: 0x0008, + 0x11e4: 0x0008, 0x11e5: 0x688d, 0x11e6: 0x68ad, 0x11e7: 0x0008, 0x11e8: 0x0008, 0x11e9: 0x0008, + 0x11ea: 0x68cd, 0x11eb: 0x68ed, 0x11ec: 0x690d, 0x11ed: 0x692d, 0x11ee: 0x694d, 0x11ef: 0x696d, + 0x11f0: 0x698d, 0x11f1: 0x69ad, 0x11f2: 0x69cd, 0x11f3: 0x69ed, 0x11f4: 0x6a0d, 0x11f5: 0x6a2d, + 0x11f6: 0x6a4d, 0x11f7: 0x6a6d, 0x11f8: 0x6a8d, 0x11f9: 0x6aad, 0x11fa: 0x6acd, 0x11fb: 0x6aed, + 0x11fc: 0x6b0d, 0x11fd: 0x6b2d, 0x11fe: 0x6b4d, 0x11ff: 0x6b6d, // Block 0x48, offset 0x1200 - 0x1200: 0xe00d, 0x1201: 0x0008, 0x1202: 0xe00d, 0x1203: 0x0008, 0x1204: 0xe00d, 0x1205: 0x0008, - 0x1206: 0xe00d, 0x1207: 0x0008, 0x1208: 0x0008, 0x1209: 0x0018, 0x120a: 0x0018, 0x120b: 0xe03d, - 0x120c: 0x0008, 0x120d: 0x11d9, 0x120e: 0x0008, 0x120f: 0x0008, 0x1210: 0xe00d, 0x1211: 0x0008, - 0x1212: 0xe00d, 0x1213: 0x0008, 0x1214: 0x0008, 0x1215: 0x0008, 0x1216: 0xe00d, 0x1217: 0x0008, - 0x1218: 0xe00d, 0x1219: 0x0008, 0x121a: 0xe00d, 0x121b: 0x0008, 0x121c: 0xe00d, 0x121d: 0x0008, - 0x121e: 0xe00d, 0x121f: 0x0008, 0x1220: 0xe00d, 0x1221: 0x0008, 0x1222: 0xe00d, 0x1223: 0x0008, - 0x1224: 0xe00d, 0x1225: 0x0008, 0x1226: 0xe00d, 0x1227: 0x0008, 0x1228: 0xe00d, 0x1229: 0x0008, - 0x122a: 0x6e61, 0x122b: 0x1029, 0x122c: 0x11c1, 0x122d: 0x6e79, 0x122e: 0x1221, 0x122f: 0x0008, - 0x1230: 0x6e91, 0x1231: 0x6ea9, 0x1232: 0x1239, 0x1233: 0x4465, 0x1234: 0xe00d, 0x1235: 0x0008, - 0x1236: 0xe00d, 0x1237: 0x0008, 0x1238: 0xe00d, 0x1239: 0x0008, 0x123a: 0xe00d, 0x123b: 0x0008, - 0x123c: 0xe00d, 0x123d: 0x0008, 0x123e: 0xe00d, 0x123f: 0x0008, + 0x1200: 0x7acd, 0x1201: 0x7aed, 0x1202: 0x7b0d, 0x1203: 0x7b2d, 0x1204: 0x7b4d, 0x1205: 0x7b6d, + 0x1206: 0x7b8d, 0x1207: 0x7bad, 0x1208: 0x7bcd, 0x1209: 0x7bed, 0x120a: 0x7c0d, 0x120b: 0x7c2d, + 0x120c: 0x7c4d, 0x120d: 0x7c6d, 0x120e: 0x7c8d, 0x120f: 0x1409, 0x1210: 0x1411, 0x1211: 0x1419, + 0x1212: 0x7cad, 0x1213: 0x7ccd, 0x1214: 0x7ced, 0x1215: 0x1421, 0x1216: 0x1429, 0x1217: 0x1431, + 0x1218: 0x7d0d, 0x1219: 0x7d2d, 0x121a: 0x0040, 0x121b: 0x0040, 0x121c: 0x0040, 0x121d: 0x0040, + 0x121e: 0x0040, 0x121f: 0x0040, 0x1220: 0x0040, 0x1221: 0x0040, 0x1222: 0x0040, 0x1223: 0x0040, + 0x1224: 0x0040, 0x1225: 0x0040, 0x1226: 0x0040, 0x1227: 0x0040, 0x1228: 0x0040, 0x1229: 0x0040, + 0x122a: 0x0040, 0x122b: 0x0040, 0x122c: 0x0040, 0x122d: 0x0040, 0x122e: 0x0040, 0x122f: 0x0040, + 0x1230: 0x0040, 0x1231: 0x0040, 0x1232: 0x0040, 0x1233: 0x0040, 0x1234: 0x0040, 0x1235: 0x0040, + 0x1236: 0x0040, 0x1237: 0x0040, 0x1238: 0x0040, 0x1239: 0x0040, 0x123a: 0x0040, 0x123b: 0x0040, + 0x123c: 0x0040, 0x123d: 0x0040, 0x123e: 0x0040, 0x123f: 0x0040, // Block 0x49, offset 0x1240 - 0x1240: 0x650d, 0x1241: 0x652d, 0x1242: 0x654d, 0x1243: 0x656d, 0x1244: 0x658d, 0x1245: 0x65ad, - 0x1246: 0x65cd, 0x1247: 0x65ed, 0x1248: 0x660d, 0x1249: 0x662d, 0x124a: 0x664d, 0x124b: 0x666d, - 0x124c: 0x668d, 0x124d: 0x66ad, 0x124e: 0x0008, 0x124f: 0x0008, 0x1250: 0x66cd, 0x1251: 0x0008, - 0x1252: 0x66ed, 0x1253: 0x0008, 0x1254: 0x0008, 0x1255: 0x670d, 0x1256: 0x672d, 0x1257: 0x674d, - 0x1258: 0x676d, 0x1259: 0x678d, 0x125a: 0x67ad, 0x125b: 0x67cd, 0x125c: 0x67ed, 0x125d: 0x680d, - 0x125e: 0x682d, 0x125f: 0x0008, 0x1260: 0x684d, 0x1261: 0x0008, 0x1262: 0x686d, 0x1263: 0x0008, - 0x1264: 0x0008, 0x1265: 0x688d, 0x1266: 0x68ad, 0x1267: 0x0008, 0x1268: 0x0008, 0x1269: 0x0008, - 0x126a: 0x68cd, 0x126b: 0x68ed, 0x126c: 0x690d, 0x126d: 0x692d, 0x126e: 0x694d, 0x126f: 0x696d, - 0x1270: 0x698d, 0x1271: 0x69ad, 0x1272: 0x69cd, 0x1273: 0x69ed, 0x1274: 0x6a0d, 0x1275: 0x6a2d, - 0x1276: 0x6a4d, 0x1277: 0x6a6d, 0x1278: 0x6a8d, 0x1279: 0x6aad, 0x127a: 0x6acd, 0x127b: 0x6aed, - 0x127c: 0x6b0d, 0x127d: 0x6b2d, 0x127e: 0x6b4d, 0x127f: 0x6b6d, + 0x1240: 0x1439, 0x1241: 0x1441, 0x1242: 0x1449, 0x1243: 0x7d4d, 0x1244: 0x7d6d, 0x1245: 0x1451, + 0x1246: 0x1451, 0x1247: 0x0040, 0x1248: 0x0040, 0x1249: 0x0040, 0x124a: 0x0040, 0x124b: 0x0040, + 0x124c: 0x0040, 0x124d: 0x0040, 0x124e: 0x0040, 0x124f: 0x0040, 0x1250: 0x0040, 0x1251: 0x0040, + 0x1252: 0x0040, 0x1253: 0x1459, 0x1254: 0x1461, 0x1255: 0x1469, 0x1256: 0x1471, 0x1257: 0x1479, + 0x1258: 0x0040, 0x1259: 0x0040, 0x125a: 0x0040, 0x125b: 0x0040, 0x125c: 0x0040, 0x125d: 0x1481, + 0x125e: 0x3308, 0x125f: 0x1489, 0x1260: 0x1491, 0x1261: 0x0779, 0x1262: 0x0791, 0x1263: 0x1499, + 0x1264: 0x14a1, 0x1265: 0x14a9, 0x1266: 0x14b1, 0x1267: 0x14b9, 0x1268: 0x14c1, 0x1269: 0x071a, + 0x126a: 0x14c9, 0x126b: 0x14d1, 0x126c: 0x14d9, 0x126d: 0x14e1, 0x126e: 0x14e9, 0x126f: 0x14f1, + 0x1270: 0x14f9, 0x1271: 0x1501, 0x1272: 0x1509, 0x1273: 0x1511, 0x1274: 0x1519, 0x1275: 0x1521, + 0x1276: 0x1529, 0x1277: 0x0040, 0x1278: 0x1531, 0x1279: 0x1539, 0x127a: 0x1541, 0x127b: 0x1549, + 0x127c: 0x1551, 0x127d: 0x0040, 0x127e: 0x1559, 0x127f: 0x0040, // Block 0x4a, offset 0x1280 - 0x1280: 0x7acd, 0x1281: 0x7aed, 0x1282: 0x7b0d, 0x1283: 0x7b2d, 0x1284: 0x7b4d, 0x1285: 0x7b6d, - 0x1286: 0x7b8d, 0x1287: 0x7bad, 0x1288: 0x7bcd, 0x1289: 0x7bed, 0x128a: 0x7c0d, 0x128b: 0x7c2d, - 0x128c: 0x7c4d, 0x128d: 0x7c6d, 0x128e: 0x7c8d, 0x128f: 0x6f19, 0x1290: 0x6f41, 0x1291: 0x6f69, - 0x1292: 0x7cad, 0x1293: 0x7ccd, 0x1294: 0x7ced, 0x1295: 0x6f91, 0x1296: 0x6fb9, 0x1297: 0x6fe1, - 0x1298: 0x7d0d, 0x1299: 0x7d2d, 0x129a: 0x0040, 0x129b: 0x0040, 0x129c: 0x0040, 0x129d: 0x0040, - 0x129e: 0x0040, 0x129f: 0x0040, 0x12a0: 0x0040, 0x12a1: 0x0040, 0x12a2: 0x0040, 0x12a3: 0x0040, - 0x12a4: 0x0040, 0x12a5: 0x0040, 0x12a6: 0x0040, 0x12a7: 0x0040, 0x12a8: 0x0040, 0x12a9: 0x0040, - 0x12aa: 0x0040, 0x12ab: 0x0040, 0x12ac: 0x0040, 0x12ad: 0x0040, 0x12ae: 0x0040, 0x12af: 0x0040, - 0x12b0: 0x0040, 0x12b1: 0x0040, 0x12b2: 0x0040, 0x12b3: 0x0040, 0x12b4: 0x0040, 0x12b5: 0x0040, - 0x12b6: 0x0040, 0x12b7: 0x0040, 0x12b8: 0x0040, 0x12b9: 0x0040, 0x12ba: 0x0040, 0x12bb: 0x0040, - 0x12bc: 0x0040, 0x12bd: 0x0040, 0x12be: 0x0040, 0x12bf: 0x0040, + 0x1280: 0x1561, 0x1281: 0x1569, 0x1282: 0x0040, 0x1283: 0x1571, 0x1284: 0x1579, 0x1285: 0x0040, + 0x1286: 0x1581, 0x1287: 0x1589, 0x1288: 0x1591, 0x1289: 0x1599, 0x128a: 0x15a1, 0x128b: 0x15a9, + 0x128c: 0x15b1, 0x128d: 0x15b9, 0x128e: 0x15c1, 0x128f: 0x15c9, 0x1290: 0x15d1, 0x1291: 0x15d1, + 0x1292: 0x15d9, 0x1293: 0x15d9, 0x1294: 0x15d9, 0x1295: 0x15d9, 0x1296: 0x15e1, 0x1297: 0x15e1, + 0x1298: 0x15e1, 0x1299: 0x15e1, 0x129a: 0x15e9, 0x129b: 0x15e9, 0x129c: 0x15e9, 0x129d: 0x15e9, + 0x129e: 0x15f1, 0x129f: 0x15f1, 0x12a0: 0x15f1, 0x12a1: 0x15f1, 0x12a2: 0x15f9, 0x12a3: 0x15f9, + 0x12a4: 0x15f9, 0x12a5: 0x15f9, 0x12a6: 0x1601, 0x12a7: 0x1601, 0x12a8: 0x1601, 0x12a9: 0x1601, + 0x12aa: 0x1609, 0x12ab: 0x1609, 0x12ac: 0x1609, 0x12ad: 0x1609, 0x12ae: 0x1611, 0x12af: 0x1611, + 0x12b0: 0x1611, 0x12b1: 0x1611, 0x12b2: 0x1619, 0x12b3: 0x1619, 0x12b4: 0x1619, 0x12b5: 0x1619, + 0x12b6: 0x1621, 0x12b7: 0x1621, 0x12b8: 0x1621, 0x12b9: 0x1621, 0x12ba: 0x1629, 0x12bb: 0x1629, + 0x12bc: 0x1629, 0x12bd: 0x1629, 0x12be: 0x1631, 0x12bf: 0x1631, // Block 0x4b, offset 0x12c0 - 0x12c0: 0x7009, 0x12c1: 0x7021, 0x12c2: 0x7039, 0x12c3: 0x7d4d, 0x12c4: 0x7d6d, 0x12c5: 0x7051, - 0x12c6: 0x7051, 0x12c7: 0x0040, 0x12c8: 0x0040, 0x12c9: 0x0040, 0x12ca: 0x0040, 0x12cb: 0x0040, - 0x12cc: 0x0040, 0x12cd: 0x0040, 0x12ce: 0x0040, 0x12cf: 0x0040, 0x12d0: 0x0040, 0x12d1: 0x0040, - 0x12d2: 0x0040, 0x12d3: 0x7069, 0x12d4: 0x7091, 0x12d5: 0x70b9, 0x12d6: 0x70e1, 0x12d7: 0x7109, - 0x12d8: 0x0040, 0x12d9: 0x0040, 0x12da: 0x0040, 0x12db: 0x0040, 0x12dc: 0x0040, 0x12dd: 0x7131, - 0x12de: 0x3308, 0x12df: 0x7159, 0x12e0: 0x7181, 0x12e1: 0x20a9, 0x12e2: 0x20f1, 0x12e3: 0x7199, - 0x12e4: 0x71b1, 0x12e5: 0x71c9, 0x12e6: 0x71e1, 0x12e7: 0x71f9, 0x12e8: 0x7211, 0x12e9: 0x1fb2, - 0x12ea: 0x7229, 0x12eb: 0x7251, 0x12ec: 0x7279, 0x12ed: 0x72b1, 0x12ee: 0x72e9, 0x12ef: 0x7311, - 0x12f0: 0x7339, 0x12f1: 0x7361, 0x12f2: 0x7389, 0x12f3: 0x73b1, 0x12f4: 0x73d9, 0x12f5: 0x7401, - 0x12f6: 0x7429, 0x12f7: 0x0040, 0x12f8: 0x7451, 0x12f9: 0x7479, 0x12fa: 0x74a1, 0x12fb: 0x74c9, - 0x12fc: 0x74f1, 0x12fd: 0x0040, 0x12fe: 0x7519, 0x12ff: 0x0040, + 0x12c0: 0x1631, 0x12c1: 0x1631, 0x12c2: 0x1639, 0x12c3: 0x1639, 0x12c4: 0x1641, 0x12c5: 0x1641, + 0x12c6: 0x1649, 0x12c7: 0x1649, 0x12c8: 0x1651, 0x12c9: 0x1651, 0x12ca: 0x1659, 0x12cb: 0x1659, + 0x12cc: 0x1661, 0x12cd: 0x1661, 0x12ce: 0x1669, 0x12cf: 0x1669, 0x12d0: 0x1669, 0x12d1: 0x1669, + 0x12d2: 0x1671, 0x12d3: 0x1671, 0x12d4: 0x1671, 0x12d5: 0x1671, 0x12d6: 0x1679, 0x12d7: 0x1679, + 0x12d8: 0x1679, 0x12d9: 0x1679, 0x12da: 0x1681, 0x12db: 0x1681, 0x12dc: 0x1681, 0x12dd: 0x1681, + 0x12de: 0x1689, 0x12df: 0x1689, 0x12e0: 0x1691, 0x12e1: 0x1691, 0x12e2: 0x1691, 0x12e3: 0x1691, + 0x12e4: 0x1699, 0x12e5: 0x1699, 0x12e6: 0x16a1, 0x12e7: 0x16a1, 0x12e8: 0x16a1, 0x12e9: 0x16a1, + 0x12ea: 0x16a9, 0x12eb: 0x16a9, 0x12ec: 0x16a9, 0x12ed: 0x16a9, 0x12ee: 0x16b1, 0x12ef: 0x16b1, + 0x12f0: 0x16b9, 0x12f1: 0x16b9, 0x12f2: 0x0818, 0x12f3: 0x0818, 0x12f4: 0x0818, 0x12f5: 0x0818, + 0x12f6: 0x0818, 0x12f7: 0x0818, 0x12f8: 0x0818, 0x12f9: 0x0818, 0x12fa: 0x0818, 0x12fb: 0x0818, + 0x12fc: 0x0818, 0x12fd: 0x0818, 0x12fe: 0x0818, 0x12ff: 0x0818, // Block 0x4c, offset 0x1300 - 0x1300: 0x7541, 0x1301: 0x7569, 0x1302: 0x0040, 0x1303: 0x7591, 0x1304: 0x75b9, 0x1305: 0x0040, - 0x1306: 0x75e1, 0x1307: 0x7609, 0x1308: 0x7631, 0x1309: 0x7659, 0x130a: 0x7681, 0x130b: 0x76a9, - 0x130c: 0x76d1, 0x130d: 0x76f9, 0x130e: 0x7721, 0x130f: 0x7749, 0x1310: 0x7771, 0x1311: 0x7771, - 0x1312: 0x7789, 0x1313: 0x7789, 0x1314: 0x7789, 0x1315: 0x7789, 0x1316: 0x77a1, 0x1317: 0x77a1, - 0x1318: 0x77a1, 0x1319: 0x77a1, 0x131a: 0x77b9, 0x131b: 0x77b9, 0x131c: 0x77b9, 0x131d: 0x77b9, - 0x131e: 0x77d1, 0x131f: 0x77d1, 0x1320: 0x77d1, 0x1321: 0x77d1, 0x1322: 0x77e9, 0x1323: 0x77e9, - 0x1324: 0x77e9, 0x1325: 0x77e9, 0x1326: 0x7801, 0x1327: 0x7801, 0x1328: 0x7801, 0x1329: 0x7801, - 0x132a: 0x7819, 0x132b: 0x7819, 0x132c: 0x7819, 0x132d: 0x7819, 0x132e: 0x7831, 0x132f: 0x7831, - 0x1330: 0x7831, 0x1331: 0x7831, 0x1332: 0x7849, 0x1333: 0x7849, 0x1334: 0x7849, 0x1335: 0x7849, - 0x1336: 0x7861, 0x1337: 0x7861, 0x1338: 0x7861, 0x1339: 0x7861, 0x133a: 0x7879, 0x133b: 0x7879, - 0x133c: 0x7879, 0x133d: 0x7879, 0x133e: 0x7891, 0x133f: 0x7891, + 0x1300: 0x0818, 0x1301: 0x0818, 0x1302: 0x0040, 0x1303: 0x0040, 0x1304: 0x0040, 0x1305: 0x0040, + 0x1306: 0x0040, 0x1307: 0x0040, 0x1308: 0x0040, 0x1309: 0x0040, 0x130a: 0x0040, 0x130b: 0x0040, + 0x130c: 0x0040, 0x130d: 0x0040, 0x130e: 0x0040, 0x130f: 0x0040, 0x1310: 0x0040, 0x1311: 0x0040, + 0x1312: 0x0040, 0x1313: 0x16c1, 0x1314: 0x16c1, 0x1315: 0x16c1, 0x1316: 0x16c1, 0x1317: 0x16c9, + 0x1318: 0x16c9, 0x1319: 0x16d1, 0x131a: 0x16d1, 0x131b: 0x16d9, 0x131c: 0x16d9, 0x131d: 0x0149, + 0x131e: 0x16e1, 0x131f: 0x16e1, 0x1320: 0x16e9, 0x1321: 0x16e9, 0x1322: 0x16f1, 0x1323: 0x16f1, + 0x1324: 0x16f9, 0x1325: 0x16f9, 0x1326: 0x16f9, 0x1327: 0x16f9, 0x1328: 0x1701, 0x1329: 0x1701, + 0x132a: 0x1709, 0x132b: 0x1709, 0x132c: 0x1711, 0x132d: 0x1711, 0x132e: 0x1719, 0x132f: 0x1719, + 0x1330: 0x1721, 0x1331: 0x1721, 0x1332: 0x1729, 0x1333: 0x1729, 0x1334: 0x1731, 0x1335: 0x1731, + 0x1336: 0x1739, 0x1337: 0x1739, 0x1338: 0x1739, 0x1339: 0x1741, 0x133a: 0x1741, 0x133b: 0x1741, + 0x133c: 0x1749, 0x133d: 0x1749, 0x133e: 0x1749, 0x133f: 0x1749, // Block 0x4d, offset 0x1340 - 0x1340: 0x7891, 0x1341: 0x7891, 0x1342: 0x78a9, 0x1343: 0x78a9, 0x1344: 0x78c1, 0x1345: 0x78c1, - 0x1346: 0x78d9, 0x1347: 0x78d9, 0x1348: 0x78f1, 0x1349: 0x78f1, 0x134a: 0x7909, 0x134b: 0x7909, - 0x134c: 0x7921, 0x134d: 0x7921, 0x134e: 0x7939, 0x134f: 0x7939, 0x1350: 0x7939, 0x1351: 0x7939, - 0x1352: 0x7951, 0x1353: 0x7951, 0x1354: 0x7951, 0x1355: 0x7951, 0x1356: 0x7969, 0x1357: 0x7969, - 0x1358: 0x7969, 0x1359: 0x7969, 0x135a: 0x7981, 0x135b: 0x7981, 0x135c: 0x7981, 0x135d: 0x7981, - 0x135e: 0x7999, 0x135f: 0x7999, 0x1360: 0x79b1, 0x1361: 0x79b1, 0x1362: 0x79b1, 0x1363: 0x79b1, - 0x1364: 0x79c9, 0x1365: 0x79c9, 0x1366: 0x79e1, 0x1367: 0x79e1, 0x1368: 0x79e1, 0x1369: 0x79e1, - 0x136a: 0x79f9, 0x136b: 0x79f9, 0x136c: 0x79f9, 0x136d: 0x79f9, 0x136e: 0x7a11, 0x136f: 0x7a11, - 0x1370: 0x7a29, 0x1371: 0x7a29, 0x1372: 0x0818, 0x1373: 0x0818, 0x1374: 0x0818, 0x1375: 0x0818, - 0x1376: 0x0818, 0x1377: 0x0818, 0x1378: 0x0818, 0x1379: 0x0818, 0x137a: 0x0818, 0x137b: 0x0818, - 0x137c: 0x0818, 0x137d: 0x0818, 0x137e: 0x0818, 0x137f: 0x0818, + 0x1340: 0x1949, 0x1341: 0x1951, 0x1342: 0x1959, 0x1343: 0x1961, 0x1344: 0x1969, 0x1345: 0x1971, + 0x1346: 0x1979, 0x1347: 0x1981, 0x1348: 0x1989, 0x1349: 0x1991, 0x134a: 0x1999, 0x134b: 0x19a1, + 0x134c: 0x19a9, 0x134d: 0x19b1, 0x134e: 0x19b9, 0x134f: 0x19c1, 0x1350: 0x19c9, 0x1351: 0x19d1, + 0x1352: 0x19d9, 0x1353: 0x19e1, 0x1354: 0x19e9, 0x1355: 0x19f1, 0x1356: 0x19f9, 0x1357: 0x1a01, + 0x1358: 0x1a09, 0x1359: 0x1a11, 0x135a: 0x1a19, 0x135b: 0x1a21, 0x135c: 0x1a29, 0x135d: 0x1a31, + 0x135e: 0x1a3a, 0x135f: 0x1a42, 0x1360: 0x1a4a, 0x1361: 0x1a52, 0x1362: 0x1a5a, 0x1363: 0x1a62, + 0x1364: 0x1a69, 0x1365: 0x1a71, 0x1366: 0x1761, 0x1367: 0x1a79, 0x1368: 0x1741, 0x1369: 0x1769, + 0x136a: 0x1a81, 0x136b: 0x1a89, 0x136c: 0x1789, 0x136d: 0x1a91, 0x136e: 0x1791, 0x136f: 0x1799, + 0x1370: 0x1a99, 0x1371: 0x1aa1, 0x1372: 0x17b9, 0x1373: 0x1aa9, 0x1374: 0x17c1, 0x1375: 0x17c9, + 0x1376: 0x1ab1, 0x1377: 0x1ab9, 0x1378: 0x17d9, 0x1379: 0x1ac1, 0x137a: 0x17e1, 0x137b: 0x17e9, + 0x137c: 0x18d1, 0x137d: 0x18d9, 0x137e: 0x18f1, 0x137f: 0x18f9, // Block 0x4e, offset 0x1380 - 0x1380: 0x0818, 0x1381: 0x0818, 0x1382: 0x0040, 0x1383: 0x0040, 0x1384: 0x0040, 0x1385: 0x0040, - 0x1386: 0x0040, 0x1387: 0x0040, 0x1388: 0x0040, 0x1389: 0x0040, 0x138a: 0x0040, 0x138b: 0x0040, - 0x138c: 0x0040, 0x138d: 0x0040, 0x138e: 0x0040, 0x138f: 0x0040, 0x1390: 0x0040, 0x1391: 0x0040, - 0x1392: 0x0040, 0x1393: 0x7a41, 0x1394: 0x7a41, 0x1395: 0x7a41, 0x1396: 0x7a41, 0x1397: 0x7a59, - 0x1398: 0x7a59, 0x1399: 0x7a71, 0x139a: 0x7a71, 0x139b: 0x7a89, 0x139c: 0x7a89, 0x139d: 0x0479, - 0x139e: 0x7aa1, 0x139f: 0x7aa1, 0x13a0: 0x7ab9, 0x13a1: 0x7ab9, 0x13a2: 0x7ad1, 0x13a3: 0x7ad1, - 0x13a4: 0x7ae9, 0x13a5: 0x7ae9, 0x13a6: 0x7ae9, 0x13a7: 0x7ae9, 0x13a8: 0x7b01, 0x13a9: 0x7b01, - 0x13aa: 0x7b19, 0x13ab: 0x7b19, 0x13ac: 0x7b41, 0x13ad: 0x7b41, 0x13ae: 0x7b69, 0x13af: 0x7b69, - 0x13b0: 0x7b91, 0x13b1: 0x7b91, 0x13b2: 0x7bb9, 0x13b3: 0x7bb9, 0x13b4: 0x7be1, 0x13b5: 0x7be1, - 0x13b6: 0x7c09, 0x13b7: 0x7c09, 0x13b8: 0x7c09, 0x13b9: 0x7c31, 0x13ba: 0x7c31, 0x13bb: 0x7c31, - 0x13bc: 0x7c59, 0x13bd: 0x7c59, 0x13be: 0x7c59, 0x13bf: 0x7c59, + 0x1380: 0x1901, 0x1381: 0x1921, 0x1382: 0x1929, 0x1383: 0x1931, 0x1384: 0x1939, 0x1385: 0x1959, + 0x1386: 0x1961, 0x1387: 0x1969, 0x1388: 0x1ac9, 0x1389: 0x1989, 0x138a: 0x1ad1, 0x138b: 0x1ad9, + 0x138c: 0x19b9, 0x138d: 0x1ae1, 0x138e: 0x19c1, 0x138f: 0x19c9, 0x1390: 0x1a31, 0x1391: 0x1ae9, + 0x1392: 0x1af1, 0x1393: 0x1a09, 0x1394: 0x1af9, 0x1395: 0x1a11, 0x1396: 0x1a19, 0x1397: 0x1751, + 0x1398: 0x1759, 0x1399: 0x1b01, 0x139a: 0x1761, 0x139b: 0x1b09, 0x139c: 0x1771, 0x139d: 0x1779, + 0x139e: 0x1781, 0x139f: 0x1789, 0x13a0: 0x1b11, 0x13a1: 0x17a1, 0x13a2: 0x17a9, 0x13a3: 0x17b1, + 0x13a4: 0x17b9, 0x13a5: 0x1b19, 0x13a6: 0x17d9, 0x13a7: 0x17f1, 0x13a8: 0x17f9, 0x13a9: 0x1801, + 0x13aa: 0x1809, 0x13ab: 0x1811, 0x13ac: 0x1821, 0x13ad: 0x1829, 0x13ae: 0x1831, 0x13af: 0x1839, + 0x13b0: 0x1841, 0x13b1: 0x1849, 0x13b2: 0x1b21, 0x13b3: 0x1851, 0x13b4: 0x1859, 0x13b5: 0x1861, + 0x13b6: 0x1869, 0x13b7: 0x1871, 0x13b8: 0x1879, 0x13b9: 0x1889, 0x13ba: 0x1891, 0x13bb: 0x1899, + 0x13bc: 0x18a1, 0x13bd: 0x18a9, 0x13be: 0x18b1, 0x13bf: 0x18b9, // Block 0x4f, offset 0x13c0 - 0x13c0: 0x8649, 0x13c1: 0x8671, 0x13c2: 0x8699, 0x13c3: 0x86c1, 0x13c4: 0x86e9, 0x13c5: 0x8711, - 0x13c6: 0x8739, 0x13c7: 0x8761, 0x13c8: 0x8789, 0x13c9: 0x87b1, 0x13ca: 0x87d9, 0x13cb: 0x8801, - 0x13cc: 0x8829, 0x13cd: 0x8851, 0x13ce: 0x8879, 0x13cf: 0x88a1, 0x13d0: 0x88c9, 0x13d1: 0x88f1, - 0x13d2: 0x8919, 0x13d3: 0x8941, 0x13d4: 0x8969, 0x13d5: 0x8991, 0x13d6: 0x89b9, 0x13d7: 0x89e1, - 0x13d8: 0x8a09, 0x13d9: 0x8a31, 0x13da: 0x8a59, 0x13db: 0x8a81, 0x13dc: 0x8aa9, 0x13dd: 0x8ad1, - 0x13de: 0x8afa, 0x13df: 0x8b2a, 0x13e0: 0x8b5a, 0x13e1: 0x8b8a, 0x13e2: 0x8bba, 0x13e3: 0x8bea, - 0x13e4: 0x8c19, 0x13e5: 0x8c41, 0x13e6: 0x7cc1, 0x13e7: 0x8c69, 0x13e8: 0x7c31, 0x13e9: 0x7ce9, - 0x13ea: 0x8c91, 0x13eb: 0x8cb9, 0x13ec: 0x7d89, 0x13ed: 0x8ce1, 0x13ee: 0x7db1, 0x13ef: 0x7dd9, - 0x13f0: 0x8d09, 0x13f1: 0x8d31, 0x13f2: 0x7e79, 0x13f3: 0x8d59, 0x13f4: 0x7ea1, 0x13f5: 0x7ec9, - 0x13f6: 0x8d81, 0x13f7: 0x8da9, 0x13f8: 0x7f19, 0x13f9: 0x8dd1, 0x13fa: 0x7f41, 0x13fb: 0x7f69, - 0x13fc: 0x83f1, 0x13fd: 0x8419, 0x13fe: 0x8491, 0x13ff: 0x84b9, + 0x13c0: 0x18c1, 0x13c1: 0x18c9, 0x13c2: 0x18e1, 0x13c3: 0x18e9, 0x13c4: 0x1909, 0x13c5: 0x1911, + 0x13c6: 0x1919, 0x13c7: 0x1921, 0x13c8: 0x1929, 0x13c9: 0x1941, 0x13ca: 0x1949, 0x13cb: 0x1951, + 0x13cc: 0x1959, 0x13cd: 0x1b29, 0x13ce: 0x1971, 0x13cf: 0x1979, 0x13d0: 0x1981, 0x13d1: 0x1989, + 0x13d2: 0x19a1, 0x13d3: 0x19a9, 0x13d4: 0x19b1, 0x13d5: 0x19b9, 0x13d6: 0x1b31, 0x13d7: 0x19d1, + 0x13d8: 0x19d9, 0x13d9: 0x1b39, 0x13da: 0x19f1, 0x13db: 0x19f9, 0x13dc: 0x1a01, 0x13dd: 0x1a09, + 0x13de: 0x1b41, 0x13df: 0x1761, 0x13e0: 0x1b09, 0x13e1: 0x1789, 0x13e2: 0x1b11, 0x13e3: 0x17b9, + 0x13e4: 0x1b19, 0x13e5: 0x17d9, 0x13e6: 0x1b49, 0x13e7: 0x1841, 0x13e8: 0x1b51, 0x13e9: 0x1b59, + 0x13ea: 0x1b61, 0x13eb: 0x1921, 0x13ec: 0x1929, 0x13ed: 0x1959, 0x13ee: 0x19b9, 0x13ef: 0x1b31, + 0x13f0: 0x1a09, 0x13f1: 0x1b41, 0x13f2: 0x1b69, 0x13f3: 0x1b71, 0x13f4: 0x1b79, 0x13f5: 0x1b81, + 0x13f6: 0x1b89, 0x13f7: 0x1b91, 0x13f8: 0x1b99, 0x13f9: 0x1ba1, 0x13fa: 0x1ba9, 0x13fb: 0x1bb1, + 0x13fc: 0x1bb9, 0x13fd: 0x1bc1, 0x13fe: 0x1bc9, 0x13ff: 0x1bd1, // Block 0x50, offset 0x1400 - 0x1400: 0x84e1, 0x1401: 0x8581, 0x1402: 0x85a9, 0x1403: 0x85d1, 0x1404: 0x85f9, 0x1405: 0x8699, - 0x1406: 0x86c1, 0x1407: 0x86e9, 0x1408: 0x8df9, 0x1409: 0x8789, 0x140a: 0x8e21, 0x140b: 0x8e49, - 0x140c: 0x8879, 0x140d: 0x8e71, 0x140e: 0x88a1, 0x140f: 0x88c9, 0x1410: 0x8ad1, 0x1411: 0x8e99, - 0x1412: 0x8ec1, 0x1413: 0x8a09, 0x1414: 0x8ee9, 0x1415: 0x8a31, 0x1416: 0x8a59, 0x1417: 0x7c71, - 0x1418: 0x7c99, 0x1419: 0x8f11, 0x141a: 0x7cc1, 0x141b: 0x8f39, 0x141c: 0x7d11, 0x141d: 0x7d39, - 0x141e: 0x7d61, 0x141f: 0x7d89, 0x1420: 0x8f61, 0x1421: 0x7e01, 0x1422: 0x7e29, 0x1423: 0x7e51, - 0x1424: 0x7e79, 0x1425: 0x8f89, 0x1426: 0x7f19, 0x1427: 0x7f91, 0x1428: 0x7fb9, 0x1429: 0x7fe1, - 0x142a: 0x8009, 0x142b: 0x8031, 0x142c: 0x8081, 0x142d: 0x80a9, 0x142e: 0x80d1, 0x142f: 0x80f9, - 0x1430: 0x8121, 0x1431: 0x8149, 0x1432: 0x8fb1, 0x1433: 0x8171, 0x1434: 0x8199, 0x1435: 0x81c1, - 0x1436: 0x81e9, 0x1437: 0x8211, 0x1438: 0x8239, 0x1439: 0x8289, 0x143a: 0x82b1, 0x143b: 0x82d9, - 0x143c: 0x8301, 0x143d: 0x8329, 0x143e: 0x8351, 0x143f: 0x8379, + 0x1400: 0x1bd9, 0x1401: 0x1be1, 0x1402: 0x1be9, 0x1403: 0x1bf1, 0x1404: 0x1bf9, 0x1405: 0x1c01, + 0x1406: 0x1c09, 0x1407: 0x1c11, 0x1408: 0x1c19, 0x1409: 0x1c21, 0x140a: 0x1c29, 0x140b: 0x1c31, + 0x140c: 0x1b59, 0x140d: 0x1c39, 0x140e: 0x1c41, 0x140f: 0x1c49, 0x1410: 0x1c51, 0x1411: 0x1b81, + 0x1412: 0x1b89, 0x1413: 0x1b91, 0x1414: 0x1b99, 0x1415: 0x1ba1, 0x1416: 0x1ba9, 0x1417: 0x1bb1, + 0x1418: 0x1bb9, 0x1419: 0x1bc1, 0x141a: 0x1bc9, 0x141b: 0x1bd1, 0x141c: 0x1bd9, 0x141d: 0x1be1, + 0x141e: 0x1be9, 0x141f: 0x1bf1, 0x1420: 0x1bf9, 0x1421: 0x1c01, 0x1422: 0x1c09, 0x1423: 0x1c11, + 0x1424: 0x1c19, 0x1425: 0x1c21, 0x1426: 0x1c29, 0x1427: 0x1c31, 0x1428: 0x1b59, 0x1429: 0x1c39, + 0x142a: 0x1c41, 0x142b: 0x1c49, 0x142c: 0x1c51, 0x142d: 0x1c21, 0x142e: 0x1c29, 0x142f: 0x1c31, + 0x1430: 0x1b59, 0x1431: 0x1b51, 0x1432: 0x1b61, 0x1433: 0x1881, 0x1434: 0x1829, 0x1435: 0x1831, + 0x1436: 0x1839, 0x1437: 0x1c21, 0x1438: 0x1c29, 0x1439: 0x1c31, 0x143a: 0x1881, 0x143b: 0x1889, + 0x143c: 0x1c59, 0x143d: 0x1c59, 0x143e: 0x0018, 0x143f: 0x0018, // Block 0x51, offset 0x1440 - 0x1440: 0x83a1, 0x1441: 0x83c9, 0x1442: 0x8441, 0x1443: 0x8469, 0x1444: 0x8509, 0x1445: 0x8531, - 0x1446: 0x8559, 0x1447: 0x8581, 0x1448: 0x85a9, 0x1449: 0x8621, 0x144a: 0x8649, 0x144b: 0x8671, - 0x144c: 0x8699, 0x144d: 0x8fd9, 0x144e: 0x8711, 0x144f: 0x8739, 0x1450: 0x8761, 0x1451: 0x8789, - 0x1452: 0x8801, 0x1453: 0x8829, 0x1454: 0x8851, 0x1455: 0x8879, 0x1456: 0x9001, 0x1457: 0x88f1, - 0x1458: 0x8919, 0x1459: 0x9029, 0x145a: 0x8991, 0x145b: 0x89b9, 0x145c: 0x89e1, 0x145d: 0x8a09, - 0x145e: 0x9051, 0x145f: 0x7cc1, 0x1460: 0x8f39, 0x1461: 0x7d89, 0x1462: 0x8f61, 0x1463: 0x7e79, - 0x1464: 0x8f89, 0x1465: 0x7f19, 0x1466: 0x9079, 0x1467: 0x8121, 0x1468: 0x90a1, 0x1469: 0x90c9, - 0x146a: 0x90f1, 0x146b: 0x8581, 0x146c: 0x85a9, 0x146d: 0x8699, 0x146e: 0x8879, 0x146f: 0x9001, - 0x1470: 0x8a09, 0x1471: 0x9051, 0x1472: 0x9119, 0x1473: 0x9151, 0x1474: 0x9189, 0x1475: 0x91c1, - 0x1476: 0x91e9, 0x1477: 0x9211, 0x1478: 0x9239, 0x1479: 0x9261, 0x147a: 0x9289, 0x147b: 0x92b1, - 0x147c: 0x92d9, 0x147d: 0x9301, 0x147e: 0x9329, 0x147f: 0x9351, + 0x1440: 0x0040, 0x1441: 0x0040, 0x1442: 0x0040, 0x1443: 0x0040, 0x1444: 0x0040, 0x1445: 0x0040, + 0x1446: 0x0040, 0x1447: 0x0040, 0x1448: 0x0040, 0x1449: 0x0040, 0x144a: 0x0040, 0x144b: 0x0040, + 0x144c: 0x0040, 0x144d: 0x0040, 0x144e: 0x0040, 0x144f: 0x0040, 0x1450: 0x1c61, 0x1451: 0x1c69, + 0x1452: 0x1c69, 0x1453: 0x1c71, 0x1454: 0x1c79, 0x1455: 0x1c81, 0x1456: 0x1c89, 0x1457: 0x1c91, + 0x1458: 0x1c99, 0x1459: 0x1c99, 0x145a: 0x1ca1, 0x145b: 0x1ca9, 0x145c: 0x1cb1, 0x145d: 0x1cb9, + 0x145e: 0x1cc1, 0x145f: 0x1cc9, 0x1460: 0x1cc9, 0x1461: 0x1cd1, 0x1462: 0x1cd9, 0x1463: 0x1cd9, + 0x1464: 0x1ce1, 0x1465: 0x1ce1, 0x1466: 0x1ce9, 0x1467: 0x1cf1, 0x1468: 0x1cf1, 0x1469: 0x1cf9, + 0x146a: 0x1d01, 0x146b: 0x1d01, 0x146c: 0x1d09, 0x146d: 0x1d09, 0x146e: 0x1d11, 0x146f: 0x1d19, + 0x1470: 0x1d19, 0x1471: 0x1d21, 0x1472: 0x1d21, 0x1473: 0x1d29, 0x1474: 0x1d31, 0x1475: 0x1d39, + 0x1476: 0x1d41, 0x1477: 0x1d41, 0x1478: 0x1d49, 0x1479: 0x1d51, 0x147a: 0x1d59, 0x147b: 0x1d61, + 0x147c: 0x1d69, 0x147d: 0x1d69, 0x147e: 0x1d71, 0x147f: 0x1d79, // Block 0x52, offset 0x1480 - 0x1480: 0x9379, 0x1481: 0x93a1, 0x1482: 0x93c9, 0x1483: 0x93f1, 0x1484: 0x9419, 0x1485: 0x9441, - 0x1486: 0x9469, 0x1487: 0x9491, 0x1488: 0x94b9, 0x1489: 0x94e1, 0x148a: 0x9509, 0x148b: 0x9531, - 0x148c: 0x90c9, 0x148d: 0x9559, 0x148e: 0x9581, 0x148f: 0x95a9, 0x1490: 0x95d1, 0x1491: 0x91c1, - 0x1492: 0x91e9, 0x1493: 0x9211, 0x1494: 0x9239, 0x1495: 0x9261, 0x1496: 0x9289, 0x1497: 0x92b1, - 0x1498: 0x92d9, 0x1499: 0x9301, 0x149a: 0x9329, 0x149b: 0x9351, 0x149c: 0x9379, 0x149d: 0x93a1, - 0x149e: 0x93c9, 0x149f: 0x93f1, 0x14a0: 0x9419, 0x14a1: 0x9441, 0x14a2: 0x9469, 0x14a3: 0x9491, - 0x14a4: 0x94b9, 0x14a5: 0x94e1, 0x14a6: 0x9509, 0x14a7: 0x9531, 0x14a8: 0x90c9, 0x14a9: 0x9559, - 0x14aa: 0x9581, 0x14ab: 0x95a9, 0x14ac: 0x95d1, 0x14ad: 0x94e1, 0x14ae: 0x9509, 0x14af: 0x9531, - 0x14b0: 0x90c9, 0x14b1: 0x90a1, 0x14b2: 0x90f1, 0x14b3: 0x8261, 0x14b4: 0x80a9, 0x14b5: 0x80d1, - 0x14b6: 0x80f9, 0x14b7: 0x94e1, 0x14b8: 0x9509, 0x14b9: 0x9531, 0x14ba: 0x8261, 0x14bb: 0x8289, - 0x14bc: 0x95f9, 0x14bd: 0x95f9, 0x14be: 0x0018, 0x14bf: 0x0018, + 0x1480: 0x1f29, 0x1481: 0x1f31, 0x1482: 0x1f39, 0x1483: 0x1f11, 0x1484: 0x1d39, 0x1485: 0x1ce9, + 0x1486: 0x1f41, 0x1487: 0x1f49, 0x1488: 0x0040, 0x1489: 0x0040, 0x148a: 0x0040, 0x148b: 0x0040, + 0x148c: 0x0040, 0x148d: 0x0040, 0x148e: 0x0040, 0x148f: 0x0040, 0x1490: 0x0040, 0x1491: 0x0040, + 0x1492: 0x0040, 0x1493: 0x0040, 0x1494: 0x0040, 0x1495: 0x0040, 0x1496: 0x0040, 0x1497: 0x0040, + 0x1498: 0x0040, 0x1499: 0x0040, 0x149a: 0x0040, 0x149b: 0x0040, 0x149c: 0x0040, 0x149d: 0x0040, + 0x149e: 0x0040, 0x149f: 0x0040, 0x14a0: 0x0040, 0x14a1: 0x0040, 0x14a2: 0x0040, 0x14a3: 0x0040, + 0x14a4: 0x0040, 0x14a5: 0x0040, 0x14a6: 0x0040, 0x14a7: 0x0040, 0x14a8: 0x0040, 0x14a9: 0x0040, + 0x14aa: 0x0040, 0x14ab: 0x0040, 0x14ac: 0x0040, 0x14ad: 0x0040, 0x14ae: 0x0040, 0x14af: 0x0040, + 0x14b0: 0x1f51, 0x14b1: 0x1f59, 0x14b2: 0x1f61, 0x14b3: 0x1f69, 0x14b4: 0x1f71, 0x14b5: 0x1f79, + 0x14b6: 0x1f81, 0x14b7: 0x1f89, 0x14b8: 0x1f91, 0x14b9: 0x1f99, 0x14ba: 0x1fa2, 0x14bb: 0x1faa, + 0x14bc: 0x1fb1, 0x14bd: 0x0018, 0x14be: 0x0040, 0x14bf: 0x0040, // Block 0x53, offset 0x14c0 - 0x14c0: 0x0040, 0x14c1: 0x0040, 0x14c2: 0x0040, 0x14c3: 0x0040, 0x14c4: 0x0040, 0x14c5: 0x0040, - 0x14c6: 0x0040, 0x14c7: 0x0040, 0x14c8: 0x0040, 0x14c9: 0x0040, 0x14ca: 0x0040, 0x14cb: 0x0040, - 0x14cc: 0x0040, 0x14cd: 0x0040, 0x14ce: 0x0040, 0x14cf: 0x0040, 0x14d0: 0x9621, 0x14d1: 0x9659, - 0x14d2: 0x9659, 0x14d3: 0x9691, 0x14d4: 0x96c9, 0x14d5: 0x9701, 0x14d6: 0x9739, 0x14d7: 0x9771, - 0x14d8: 0x97a9, 0x14d9: 0x97a9, 0x14da: 0x97e1, 0x14db: 0x9819, 0x14dc: 0x9851, 0x14dd: 0x9889, - 0x14de: 0x98c1, 0x14df: 0x98f9, 0x14e0: 0x98f9, 0x14e1: 0x9931, 0x14e2: 0x9969, 0x14e3: 0x9969, - 0x14e4: 0x99a1, 0x14e5: 0x99a1, 0x14e6: 0x99d9, 0x14e7: 0x9a11, 0x14e8: 0x9a11, 0x14e9: 0x9a49, - 0x14ea: 0x9a81, 0x14eb: 0x9a81, 0x14ec: 0x9ab9, 0x14ed: 0x9ab9, 0x14ee: 0x9af1, 0x14ef: 0x9b29, - 0x14f0: 0x9b29, 0x14f1: 0x9b61, 0x14f2: 0x9b61, 0x14f3: 0x9b99, 0x14f4: 0x9bd1, 0x14f5: 0x9c09, - 0x14f6: 0x9c41, 0x14f7: 0x9c41, 0x14f8: 0x9c79, 0x14f9: 0x9cb1, 0x14fa: 0x9ce9, 0x14fb: 0x9d21, - 0x14fc: 0x9d59, 0x14fd: 0x9d59, 0x14fe: 0x9d91, 0x14ff: 0x9dc9, + 0x14c0: 0x33c0, 0x14c1: 0x33c0, 0x14c2: 0x33c0, 0x14c3: 0x33c0, 0x14c4: 0x33c0, 0x14c5: 0x33c0, + 0x14c6: 0x33c0, 0x14c7: 0x33c0, 0x14c8: 0x33c0, 0x14c9: 0x33c0, 0x14ca: 0x33c0, 0x14cb: 0x33c0, + 0x14cc: 0x33c0, 0x14cd: 0x33c0, 0x14ce: 0x33c0, 0x14cf: 0x33c0, 0x14d0: 0x1fba, 0x14d1: 0x7d8d, + 0x14d2: 0x0040, 0x14d3: 0x1fc2, 0x14d4: 0x0122, 0x14d5: 0x1fca, 0x14d6: 0x1fd2, 0x14d7: 0x7dad, + 0x14d8: 0x7dcd, 0x14d9: 0x0040, 0x14da: 0x0040, 0x14db: 0x0040, 0x14dc: 0x0040, 0x14dd: 0x0040, + 0x14de: 0x0040, 0x14df: 0x0040, 0x14e0: 0x3308, 0x14e1: 0x3308, 0x14e2: 0x3308, 0x14e3: 0x3308, + 0x14e4: 0x3308, 0x14e5: 0x3308, 0x14e6: 0x3308, 0x14e7: 0x3308, 0x14e8: 0x3308, 0x14e9: 0x3308, + 0x14ea: 0x3308, 0x14eb: 0x3308, 0x14ec: 0x3308, 0x14ed: 0x3308, 0x14ee: 0x3308, 0x14ef: 0x3308, + 0x14f0: 0x0040, 0x14f1: 0x7ded, 0x14f2: 0x7e0d, 0x14f3: 0x1fda, 0x14f4: 0x1fda, 0x14f5: 0x072a, + 0x14f6: 0x0732, 0x14f7: 0x1fe2, 0x14f8: 0x1fea, 0x14f9: 0x7e2d, 0x14fa: 0x7e4d, 0x14fb: 0x7e6d, + 0x14fc: 0x7e2d, 0x14fd: 0x7e8d, 0x14fe: 0x7ead, 0x14ff: 0x7e8d, // Block 0x54, offset 0x1500 - 0x1500: 0xa999, 0x1501: 0xa9d1, 0x1502: 0xaa09, 0x1503: 0xa8f1, 0x1504: 0x9c09, 0x1505: 0x99d9, - 0x1506: 0xaa41, 0x1507: 0xaa79, 0x1508: 0x0040, 0x1509: 0x0040, 0x150a: 0x0040, 0x150b: 0x0040, - 0x150c: 0x0040, 0x150d: 0x0040, 0x150e: 0x0040, 0x150f: 0x0040, 0x1510: 0x0040, 0x1511: 0x0040, - 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0040, 0x1515: 0x0040, 0x1516: 0x0040, 0x1517: 0x0040, - 0x1518: 0x0040, 0x1519: 0x0040, 0x151a: 0x0040, 0x151b: 0x0040, 0x151c: 0x0040, 0x151d: 0x0040, - 0x151e: 0x0040, 0x151f: 0x0040, 0x1520: 0x0040, 0x1521: 0x0040, 0x1522: 0x0040, 0x1523: 0x0040, - 0x1524: 0x0040, 0x1525: 0x0040, 0x1526: 0x0040, 0x1527: 0x0040, 0x1528: 0x0040, 0x1529: 0x0040, - 0x152a: 0x0040, 0x152b: 0x0040, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, - 0x1530: 0xaab1, 0x1531: 0xaae9, 0x1532: 0xab21, 0x1533: 0xab69, 0x1534: 0xabb1, 0x1535: 0xabf9, - 0x1536: 0xac41, 0x1537: 0xac89, 0x1538: 0xacd1, 0x1539: 0xad19, 0x153a: 0xad52, 0x153b: 0xae62, - 0x153c: 0xaee1, 0x153d: 0x0018, 0x153e: 0x0040, 0x153f: 0x0040, + 0x1500: 0x7ecd, 0x1501: 0x7eed, 0x1502: 0x7f0d, 0x1503: 0x7eed, 0x1504: 0x7f2d, 0x1505: 0x0018, + 0x1506: 0x0018, 0x1507: 0x1ff2, 0x1508: 0x1ffa, 0x1509: 0x7f4e, 0x150a: 0x7f6e, 0x150b: 0x7f8e, + 0x150c: 0x7fae, 0x150d: 0x1fda, 0x150e: 0x1fda, 0x150f: 0x1fda, 0x1510: 0x1fba, 0x1511: 0x7fcd, + 0x1512: 0x0040, 0x1513: 0x0040, 0x1514: 0x0122, 0x1515: 0x1fc2, 0x1516: 0x1fd2, 0x1517: 0x1fca, + 0x1518: 0x7fed, 0x1519: 0x072a, 0x151a: 0x0732, 0x151b: 0x1fe2, 0x151c: 0x1fea, 0x151d: 0x7ecd, + 0x151e: 0x7f2d, 0x151f: 0x2002, 0x1520: 0x200a, 0x1521: 0x2012, 0x1522: 0x071a, 0x1523: 0x2019, + 0x1524: 0x2022, 0x1525: 0x202a, 0x1526: 0x0722, 0x1527: 0x0040, 0x1528: 0x2032, 0x1529: 0x203a, + 0x152a: 0x2042, 0x152b: 0x204a, 0x152c: 0x0040, 0x152d: 0x0040, 0x152e: 0x0040, 0x152f: 0x0040, + 0x1530: 0x800e, 0x1531: 0x2051, 0x1532: 0x802e, 0x1533: 0x0808, 0x1534: 0x804e, 0x1535: 0x0040, + 0x1536: 0x806e, 0x1537: 0x2059, 0x1538: 0x808e, 0x1539: 0x2061, 0x153a: 0x80ae, 0x153b: 0x2069, + 0x153c: 0x80ce, 0x153d: 0x2071, 0x153e: 0x80ee, 0x153f: 0x2079, // Block 0x55, offset 0x1540 - 0x1540: 0x33c0, 0x1541: 0x33c0, 0x1542: 0x33c0, 0x1543: 0x33c0, 0x1544: 0x33c0, 0x1545: 0x33c0, - 0x1546: 0x33c0, 0x1547: 0x33c0, 0x1548: 0x33c0, 0x1549: 0x33c0, 0x154a: 0x33c0, 0x154b: 0x33c0, - 0x154c: 0x33c0, 0x154d: 0x33c0, 0x154e: 0x33c0, 0x154f: 0x33c0, 0x1550: 0xaf2a, 0x1551: 0x7d8d, - 0x1552: 0x0040, 0x1553: 0xaf3a, 0x1554: 0x03c2, 0x1555: 0xaf4a, 0x1556: 0xaf5a, 0x1557: 0x7dad, - 0x1558: 0x7dcd, 0x1559: 0x0040, 0x155a: 0x0040, 0x155b: 0x0040, 0x155c: 0x0040, 0x155d: 0x0040, - 0x155e: 0x0040, 0x155f: 0x0040, 0x1560: 0x3308, 0x1561: 0x3308, 0x1562: 0x3308, 0x1563: 0x3308, - 0x1564: 0x3308, 0x1565: 0x3308, 0x1566: 0x3308, 0x1567: 0x3308, 0x1568: 0x3308, 0x1569: 0x3308, - 0x156a: 0x3308, 0x156b: 0x3308, 0x156c: 0x3308, 0x156d: 0x3308, 0x156e: 0x3308, 0x156f: 0x3308, - 0x1570: 0x0040, 0x1571: 0x7ded, 0x1572: 0x7e0d, 0x1573: 0xaf6a, 0x1574: 0xaf6a, 0x1575: 0x1fd2, - 0x1576: 0x1fe2, 0x1577: 0xaf7a, 0x1578: 0xaf8a, 0x1579: 0x7e2d, 0x157a: 0x7e4d, 0x157b: 0x7e6d, - 0x157c: 0x7e2d, 0x157d: 0x7e8d, 0x157e: 0x7ead, 0x157f: 0x7e8d, + 0x1540: 0x2081, 0x1541: 0x2089, 0x1542: 0x2089, 0x1543: 0x2091, 0x1544: 0x2091, 0x1545: 0x2099, + 0x1546: 0x2099, 0x1547: 0x20a1, 0x1548: 0x20a1, 0x1549: 0x20a9, 0x154a: 0x20a9, 0x154b: 0x20a9, + 0x154c: 0x20a9, 0x154d: 0x20b1, 0x154e: 0x20b1, 0x154f: 0x20b9, 0x1550: 0x20b9, 0x1551: 0x20b9, + 0x1552: 0x20b9, 0x1553: 0x20c1, 0x1554: 0x20c1, 0x1555: 0x20c9, 0x1556: 0x20c9, 0x1557: 0x20c9, + 0x1558: 0x20c9, 0x1559: 0x20d1, 0x155a: 0x20d1, 0x155b: 0x20d1, 0x155c: 0x20d1, 0x155d: 0x20d9, + 0x155e: 0x20d9, 0x155f: 0x20d9, 0x1560: 0x20d9, 0x1561: 0x20e1, 0x1562: 0x20e1, 0x1563: 0x20e1, + 0x1564: 0x20e1, 0x1565: 0x20e9, 0x1566: 0x20e9, 0x1567: 0x20e9, 0x1568: 0x20e9, 0x1569: 0x20f1, + 0x156a: 0x20f1, 0x156b: 0x20f9, 0x156c: 0x20f9, 0x156d: 0x2101, 0x156e: 0x2101, 0x156f: 0x2109, + 0x1570: 0x2109, 0x1571: 0x2111, 0x1572: 0x2111, 0x1573: 0x2111, 0x1574: 0x2111, 0x1575: 0x2119, + 0x1576: 0x2119, 0x1577: 0x2119, 0x1578: 0x2119, 0x1579: 0x2121, 0x157a: 0x2121, 0x157b: 0x2121, + 0x157c: 0x2121, 0x157d: 0x2129, 0x157e: 0x2129, 0x157f: 0x2129, // Block 0x56, offset 0x1580 - 0x1580: 0x7ecd, 0x1581: 0x7eed, 0x1582: 0x7f0d, 0x1583: 0x7eed, 0x1584: 0x7f2d, 0x1585: 0x0018, - 0x1586: 0x0018, 0x1587: 0xaf9a, 0x1588: 0xafaa, 0x1589: 0x7f4e, 0x158a: 0x7f6e, 0x158b: 0x7f8e, - 0x158c: 0x7fae, 0x158d: 0xaf6a, 0x158e: 0xaf6a, 0x158f: 0xaf6a, 0x1590: 0xaf2a, 0x1591: 0x7fcd, - 0x1592: 0x0040, 0x1593: 0x0040, 0x1594: 0x03c2, 0x1595: 0xaf3a, 0x1596: 0xaf5a, 0x1597: 0xaf4a, - 0x1598: 0x7fed, 0x1599: 0x1fd2, 0x159a: 0x1fe2, 0x159b: 0xaf7a, 0x159c: 0xaf8a, 0x159d: 0x7ecd, - 0x159e: 0x7f2d, 0x159f: 0xafba, 0x15a0: 0xafca, 0x15a1: 0xafda, 0x15a2: 0x1fb2, 0x15a3: 0xafe9, - 0x15a4: 0xaffa, 0x15a5: 0xb00a, 0x15a6: 0x1fc2, 0x15a7: 0x0040, 0x15a8: 0xb01a, 0x15a9: 0xb02a, - 0x15aa: 0xb03a, 0x15ab: 0xb04a, 0x15ac: 0x0040, 0x15ad: 0x0040, 0x15ae: 0x0040, 0x15af: 0x0040, - 0x15b0: 0x800e, 0x15b1: 0xb059, 0x15b2: 0x802e, 0x15b3: 0x0808, 0x15b4: 0x804e, 0x15b5: 0x0040, - 0x15b6: 0x806e, 0x15b7: 0xb081, 0x15b8: 0x808e, 0x15b9: 0xb0a9, 0x15ba: 0x80ae, 0x15bb: 0xb0d1, - 0x15bc: 0x80ce, 0x15bd: 0xb0f9, 0x15be: 0x80ee, 0x15bf: 0xb121, + 0x1580: 0x2129, 0x1581: 0x2131, 0x1582: 0x2131, 0x1583: 0x2131, 0x1584: 0x2131, 0x1585: 0x2139, + 0x1586: 0x2139, 0x1587: 0x2139, 0x1588: 0x2139, 0x1589: 0x2141, 0x158a: 0x2141, 0x158b: 0x2141, + 0x158c: 0x2141, 0x158d: 0x2149, 0x158e: 0x2149, 0x158f: 0x2149, 0x1590: 0x2149, 0x1591: 0x2151, + 0x1592: 0x2151, 0x1593: 0x2151, 0x1594: 0x2151, 0x1595: 0x2159, 0x1596: 0x2159, 0x1597: 0x2159, + 0x1598: 0x2159, 0x1599: 0x2161, 0x159a: 0x2161, 0x159b: 0x2161, 0x159c: 0x2161, 0x159d: 0x2169, + 0x159e: 0x2169, 0x159f: 0x2169, 0x15a0: 0x2169, 0x15a1: 0x2171, 0x15a2: 0x2171, 0x15a3: 0x2171, + 0x15a4: 0x2171, 0x15a5: 0x2179, 0x15a6: 0x2179, 0x15a7: 0x2179, 0x15a8: 0x2179, 0x15a9: 0x2181, + 0x15aa: 0x2181, 0x15ab: 0x2181, 0x15ac: 0x2181, 0x15ad: 0x2189, 0x15ae: 0x2189, 0x15af: 0x1701, + 0x15b0: 0x1701, 0x15b1: 0x2191, 0x15b2: 0x2191, 0x15b3: 0x2191, 0x15b4: 0x2191, 0x15b5: 0x2199, + 0x15b6: 0x2199, 0x15b7: 0x21a1, 0x15b8: 0x21a1, 0x15b9: 0x21a9, 0x15ba: 0x21a9, 0x15bb: 0x21b1, + 0x15bc: 0x21b1, 0x15bd: 0x0040, 0x15be: 0x0040, 0x15bf: 0x03c0, // Block 0x57, offset 0x15c0 - 0x15c0: 0xb149, 0x15c1: 0xb161, 0x15c2: 0xb161, 0x15c3: 0xb179, 0x15c4: 0xb179, 0x15c5: 0xb191, - 0x15c6: 0xb191, 0x15c7: 0xb1a9, 0x15c8: 0xb1a9, 0x15c9: 0xb1c1, 0x15ca: 0xb1c1, 0x15cb: 0xb1c1, - 0x15cc: 0xb1c1, 0x15cd: 0xb1d9, 0x15ce: 0xb1d9, 0x15cf: 0xb1f1, 0x15d0: 0xb1f1, 0x15d1: 0xb1f1, - 0x15d2: 0xb1f1, 0x15d3: 0xb209, 0x15d4: 0xb209, 0x15d5: 0xb221, 0x15d6: 0xb221, 0x15d7: 0xb221, - 0x15d8: 0xb221, 0x15d9: 0xb239, 0x15da: 0xb239, 0x15db: 0xb239, 0x15dc: 0xb239, 0x15dd: 0xb251, - 0x15de: 0xb251, 0x15df: 0xb251, 0x15e0: 0xb251, 0x15e1: 0xb269, 0x15e2: 0xb269, 0x15e3: 0xb269, - 0x15e4: 0xb269, 0x15e5: 0xb281, 0x15e6: 0xb281, 0x15e7: 0xb281, 0x15e8: 0xb281, 0x15e9: 0xb299, - 0x15ea: 0xb299, 0x15eb: 0xb2b1, 0x15ec: 0xb2b1, 0x15ed: 0xb2c9, 0x15ee: 0xb2c9, 0x15ef: 0xb2e1, - 0x15f0: 0xb2e1, 0x15f1: 0xb2f9, 0x15f2: 0xb2f9, 0x15f3: 0xb2f9, 0x15f4: 0xb2f9, 0x15f5: 0xb311, - 0x15f6: 0xb311, 0x15f7: 0xb311, 0x15f8: 0xb311, 0x15f9: 0xb329, 0x15fa: 0xb329, 0x15fb: 0xb329, - 0x15fc: 0xb329, 0x15fd: 0xb341, 0x15fe: 0xb341, 0x15ff: 0xb341, + 0x15c0: 0x0040, 0x15c1: 0x1fca, 0x15c2: 0x21ba, 0x15c3: 0x2002, 0x15c4: 0x203a, 0x15c5: 0x2042, + 0x15c6: 0x200a, 0x15c7: 0x21c2, 0x15c8: 0x072a, 0x15c9: 0x0732, 0x15ca: 0x2012, 0x15cb: 0x071a, + 0x15cc: 0x1fba, 0x15cd: 0x2019, 0x15ce: 0x0961, 0x15cf: 0x21ca, 0x15d0: 0x06e1, 0x15d1: 0x0049, + 0x15d2: 0x0029, 0x15d3: 0x0031, 0x15d4: 0x06e9, 0x15d5: 0x06f1, 0x15d6: 0x06f9, 0x15d7: 0x0701, + 0x15d8: 0x0709, 0x15d9: 0x0711, 0x15da: 0x1fc2, 0x15db: 0x0122, 0x15dc: 0x2022, 0x15dd: 0x0722, + 0x15de: 0x202a, 0x15df: 0x1fd2, 0x15e0: 0x204a, 0x15e1: 0x0019, 0x15e2: 0x02e9, 0x15e3: 0x03d9, + 0x15e4: 0x02f1, 0x15e5: 0x02f9, 0x15e6: 0x03f1, 0x15e7: 0x0309, 0x15e8: 0x00a9, 0x15e9: 0x0311, + 0x15ea: 0x00b1, 0x15eb: 0x0319, 0x15ec: 0x0101, 0x15ed: 0x0321, 0x15ee: 0x0329, 0x15ef: 0x0051, + 0x15f0: 0x0339, 0x15f1: 0x0751, 0x15f2: 0x00b9, 0x15f3: 0x0089, 0x15f4: 0x0341, 0x15f5: 0x0349, + 0x15f6: 0x0391, 0x15f7: 0x00c1, 0x15f8: 0x0109, 0x15f9: 0x00c9, 0x15fa: 0x04b1, 0x15fb: 0x1ff2, + 0x15fc: 0x2032, 0x15fd: 0x1ffa, 0x15fe: 0x21d2, 0x15ff: 0x1fda, // Block 0x58, offset 0x1600 - 0x1600: 0xb341, 0x1601: 0xb359, 0x1602: 0xb359, 0x1603: 0xb359, 0x1604: 0xb359, 0x1605: 0xb371, - 0x1606: 0xb371, 0x1607: 0xb371, 0x1608: 0xb371, 0x1609: 0xb389, 0x160a: 0xb389, 0x160b: 0xb389, - 0x160c: 0xb389, 0x160d: 0xb3a1, 0x160e: 0xb3a1, 0x160f: 0xb3a1, 0x1610: 0xb3a1, 0x1611: 0xb3b9, - 0x1612: 0xb3b9, 0x1613: 0xb3b9, 0x1614: 0xb3b9, 0x1615: 0xb3d1, 0x1616: 0xb3d1, 0x1617: 0xb3d1, - 0x1618: 0xb3d1, 0x1619: 0xb3e9, 0x161a: 0xb3e9, 0x161b: 0xb3e9, 0x161c: 0xb3e9, 0x161d: 0xb401, - 0x161e: 0xb401, 0x161f: 0xb401, 0x1620: 0xb401, 0x1621: 0xb419, 0x1622: 0xb419, 0x1623: 0xb419, - 0x1624: 0xb419, 0x1625: 0xb431, 0x1626: 0xb431, 0x1627: 0xb431, 0x1628: 0xb431, 0x1629: 0xb449, - 0x162a: 0xb449, 0x162b: 0xb449, 0x162c: 0xb449, 0x162d: 0xb461, 0x162e: 0xb461, 0x162f: 0x7b01, - 0x1630: 0x7b01, 0x1631: 0xb479, 0x1632: 0xb479, 0x1633: 0xb479, 0x1634: 0xb479, 0x1635: 0xb491, - 0x1636: 0xb491, 0x1637: 0xb4b9, 0x1638: 0xb4b9, 0x1639: 0xb4e1, 0x163a: 0xb4e1, 0x163b: 0xb509, - 0x163c: 0xb509, 0x163d: 0x0040, 0x163e: 0x0040, 0x163f: 0x03c0, + 0x1600: 0x0672, 0x1601: 0x0019, 0x1602: 0x02e9, 0x1603: 0x03d9, 0x1604: 0x02f1, 0x1605: 0x02f9, + 0x1606: 0x03f1, 0x1607: 0x0309, 0x1608: 0x00a9, 0x1609: 0x0311, 0x160a: 0x00b1, 0x160b: 0x0319, + 0x160c: 0x0101, 0x160d: 0x0321, 0x160e: 0x0329, 0x160f: 0x0051, 0x1610: 0x0339, 0x1611: 0x0751, + 0x1612: 0x00b9, 0x1613: 0x0089, 0x1614: 0x0341, 0x1615: 0x0349, 0x1616: 0x0391, 0x1617: 0x00c1, + 0x1618: 0x0109, 0x1619: 0x00c9, 0x161a: 0x04b1, 0x161b: 0x1fe2, 0x161c: 0x21da, 0x161d: 0x1fea, + 0x161e: 0x21e2, 0x161f: 0x810d, 0x1620: 0x812d, 0x1621: 0x0961, 0x1622: 0x814d, 0x1623: 0x814d, + 0x1624: 0x816d, 0x1625: 0x818d, 0x1626: 0x81ad, 0x1627: 0x81cd, 0x1628: 0x81ed, 0x1629: 0x820d, + 0x162a: 0x822d, 0x162b: 0x824d, 0x162c: 0x826d, 0x162d: 0x828d, 0x162e: 0x82ad, 0x162f: 0x82cd, + 0x1630: 0x82ed, 0x1631: 0x830d, 0x1632: 0x832d, 0x1633: 0x834d, 0x1634: 0x836d, 0x1635: 0x838d, + 0x1636: 0x83ad, 0x1637: 0x83cd, 0x1638: 0x83ed, 0x1639: 0x840d, 0x163a: 0x842d, 0x163b: 0x844d, + 0x163c: 0x81ed, 0x163d: 0x846d, 0x163e: 0x848d, 0x163f: 0x824d, // Block 0x59, offset 0x1640 - 0x1640: 0x0040, 0x1641: 0xaf4a, 0x1642: 0xb532, 0x1643: 0xafba, 0x1644: 0xb02a, 0x1645: 0xb03a, - 0x1646: 0xafca, 0x1647: 0xb542, 0x1648: 0x1fd2, 0x1649: 0x1fe2, 0x164a: 0xafda, 0x164b: 0x1fb2, - 0x164c: 0xaf2a, 0x164d: 0xafe9, 0x164e: 0x29d1, 0x164f: 0xb552, 0x1650: 0x1f41, 0x1651: 0x00c9, - 0x1652: 0x0069, 0x1653: 0x0079, 0x1654: 0x1f51, 0x1655: 0x1f61, 0x1656: 0x1f71, 0x1657: 0x1f81, - 0x1658: 0x1f91, 0x1659: 0x1fa1, 0x165a: 0xaf3a, 0x165b: 0x03c2, 0x165c: 0xaffa, 0x165d: 0x1fc2, - 0x165e: 0xb00a, 0x165f: 0xaf5a, 0x1660: 0xb04a, 0x1661: 0x0039, 0x1662: 0x0ee9, 0x1663: 0x1159, - 0x1664: 0x0ef9, 0x1665: 0x0f09, 0x1666: 0x1199, 0x1667: 0x0f31, 0x1668: 0x0249, 0x1669: 0x0f41, - 0x166a: 0x0259, 0x166b: 0x0f51, 0x166c: 0x0359, 0x166d: 0x0f61, 0x166e: 0x0f71, 0x166f: 0x00d9, - 0x1670: 0x0f99, 0x1671: 0x2039, 0x1672: 0x0269, 0x1673: 0x01d9, 0x1674: 0x0fa9, 0x1675: 0x0fb9, - 0x1676: 0x1089, 0x1677: 0x0279, 0x1678: 0x0369, 0x1679: 0x0289, 0x167a: 0x13d1, 0x167b: 0xaf9a, - 0x167c: 0xb01a, 0x167d: 0xafaa, 0x167e: 0xb562, 0x167f: 0xaf6a, + 0x1640: 0x84ad, 0x1641: 0x84cd, 0x1642: 0x84ed, 0x1643: 0x850d, 0x1644: 0x852d, 0x1645: 0x854d, + 0x1646: 0x856d, 0x1647: 0x858d, 0x1648: 0x850d, 0x1649: 0x85ad, 0x164a: 0x850d, 0x164b: 0x85cd, + 0x164c: 0x85cd, 0x164d: 0x85ed, 0x164e: 0x85ed, 0x164f: 0x860d, 0x1650: 0x854d, 0x1651: 0x862d, + 0x1652: 0x864d, 0x1653: 0x862d, 0x1654: 0x866d, 0x1655: 0x864d, 0x1656: 0x868d, 0x1657: 0x868d, + 0x1658: 0x86ad, 0x1659: 0x86ad, 0x165a: 0x86cd, 0x165b: 0x86cd, 0x165c: 0x864d, 0x165d: 0x814d, + 0x165e: 0x86ed, 0x165f: 0x870d, 0x1660: 0x0040, 0x1661: 0x872d, 0x1662: 0x874d, 0x1663: 0x876d, + 0x1664: 0x878d, 0x1665: 0x876d, 0x1666: 0x87ad, 0x1667: 0x87cd, 0x1668: 0x87ed, 0x1669: 0x87ed, + 0x166a: 0x880d, 0x166b: 0x880d, 0x166c: 0x882d, 0x166d: 0x882d, 0x166e: 0x880d, 0x166f: 0x880d, + 0x1670: 0x884d, 0x1671: 0x886d, 0x1672: 0x888d, 0x1673: 0x88ad, 0x1674: 0x88cd, 0x1675: 0x88ed, + 0x1676: 0x88ed, 0x1677: 0x88ed, 0x1678: 0x890d, 0x1679: 0x890d, 0x167a: 0x890d, 0x167b: 0x890d, + 0x167c: 0x87ed, 0x167d: 0x87ed, 0x167e: 0x87ed, 0x167f: 0x0040, // Block 0x5a, offset 0x1680 - 0x1680: 0x1caa, 0x1681: 0x0039, 0x1682: 0x0ee9, 0x1683: 0x1159, 0x1684: 0x0ef9, 0x1685: 0x0f09, - 0x1686: 0x1199, 0x1687: 0x0f31, 0x1688: 0x0249, 0x1689: 0x0f41, 0x168a: 0x0259, 0x168b: 0x0f51, - 0x168c: 0x0359, 0x168d: 0x0f61, 0x168e: 0x0f71, 0x168f: 0x00d9, 0x1690: 0x0f99, 0x1691: 0x2039, - 0x1692: 0x0269, 0x1693: 0x01d9, 0x1694: 0x0fa9, 0x1695: 0x0fb9, 0x1696: 0x1089, 0x1697: 0x0279, - 0x1698: 0x0369, 0x1699: 0x0289, 0x169a: 0x13d1, 0x169b: 0xaf7a, 0x169c: 0xb572, 0x169d: 0xaf8a, - 0x169e: 0xb582, 0x169f: 0x810d, 0x16a0: 0x812d, 0x16a1: 0x29d1, 0x16a2: 0x814d, 0x16a3: 0x814d, - 0x16a4: 0x816d, 0x16a5: 0x818d, 0x16a6: 0x81ad, 0x16a7: 0x81cd, 0x16a8: 0x81ed, 0x16a9: 0x820d, - 0x16aa: 0x822d, 0x16ab: 0x824d, 0x16ac: 0x826d, 0x16ad: 0x828d, 0x16ae: 0x82ad, 0x16af: 0x82cd, - 0x16b0: 0x82ed, 0x16b1: 0x830d, 0x16b2: 0x832d, 0x16b3: 0x834d, 0x16b4: 0x836d, 0x16b5: 0x838d, - 0x16b6: 0x83ad, 0x16b7: 0x83cd, 0x16b8: 0x83ed, 0x16b9: 0x840d, 0x16ba: 0x842d, 0x16bb: 0x844d, - 0x16bc: 0x81ed, 0x16bd: 0x846d, 0x16be: 0x848d, 0x16bf: 0x824d, + 0x1680: 0x0040, 0x1681: 0x0040, 0x1682: 0x874d, 0x1683: 0x872d, 0x1684: 0x892d, 0x1685: 0x872d, + 0x1686: 0x874d, 0x1687: 0x872d, 0x1688: 0x0040, 0x1689: 0x0040, 0x168a: 0x894d, 0x168b: 0x874d, + 0x168c: 0x896d, 0x168d: 0x892d, 0x168e: 0x896d, 0x168f: 0x874d, 0x1690: 0x0040, 0x1691: 0x0040, + 0x1692: 0x898d, 0x1693: 0x89ad, 0x1694: 0x88ad, 0x1695: 0x896d, 0x1696: 0x892d, 0x1697: 0x896d, + 0x1698: 0x0040, 0x1699: 0x0040, 0x169a: 0x89cd, 0x169b: 0x89ed, 0x169c: 0x89cd, 0x169d: 0x0040, + 0x169e: 0x0040, 0x169f: 0x0040, 0x16a0: 0x21e9, 0x16a1: 0x21f1, 0x16a2: 0x21f9, 0x16a3: 0x8a0e, + 0x16a4: 0x2201, 0x16a5: 0x2209, 0x16a6: 0x8a2d, 0x16a7: 0x0040, 0x16a8: 0x8a4d, 0x16a9: 0x8a6d, + 0x16aa: 0x8a8d, 0x16ab: 0x8a6d, 0x16ac: 0x8aad, 0x16ad: 0x8acd, 0x16ae: 0x8aed, 0x16af: 0x0040, + 0x16b0: 0x0040, 0x16b1: 0x0040, 0x16b2: 0x0040, 0x16b3: 0x0040, 0x16b4: 0x0040, 0x16b5: 0x0040, + 0x16b6: 0x0040, 0x16b7: 0x0040, 0x16b8: 0x0040, 0x16b9: 0x0340, 0x16ba: 0x0340, 0x16bb: 0x0340, + 0x16bc: 0x0040, 0x16bd: 0x0040, 0x16be: 0x0040, 0x16bf: 0x0040, // Block 0x5b, offset 0x16c0 - 0x16c0: 0x84ad, 0x16c1: 0x84cd, 0x16c2: 0x84ed, 0x16c3: 0x850d, 0x16c4: 0x852d, 0x16c5: 0x854d, - 0x16c6: 0x856d, 0x16c7: 0x858d, 0x16c8: 0x850d, 0x16c9: 0x85ad, 0x16ca: 0x850d, 0x16cb: 0x85cd, - 0x16cc: 0x85cd, 0x16cd: 0x85ed, 0x16ce: 0x85ed, 0x16cf: 0x860d, 0x16d0: 0x854d, 0x16d1: 0x862d, - 0x16d2: 0x864d, 0x16d3: 0x862d, 0x16d4: 0x866d, 0x16d5: 0x864d, 0x16d6: 0x868d, 0x16d7: 0x868d, - 0x16d8: 0x86ad, 0x16d9: 0x86ad, 0x16da: 0x86cd, 0x16db: 0x86cd, 0x16dc: 0x864d, 0x16dd: 0x814d, - 0x16de: 0x86ed, 0x16df: 0x870d, 0x16e0: 0x0040, 0x16e1: 0x872d, 0x16e2: 0x874d, 0x16e3: 0x876d, - 0x16e4: 0x878d, 0x16e5: 0x876d, 0x16e6: 0x87ad, 0x16e7: 0x87cd, 0x16e8: 0x87ed, 0x16e9: 0x87ed, - 0x16ea: 0x880d, 0x16eb: 0x880d, 0x16ec: 0x882d, 0x16ed: 0x882d, 0x16ee: 0x880d, 0x16ef: 0x880d, - 0x16f0: 0x884d, 0x16f1: 0x886d, 0x16f2: 0x888d, 0x16f3: 0x88ad, 0x16f4: 0x88cd, 0x16f5: 0x88ed, - 0x16f6: 0x88ed, 0x16f7: 0x88ed, 0x16f8: 0x890d, 0x16f9: 0x890d, 0x16fa: 0x890d, 0x16fb: 0x890d, - 0x16fc: 0x87ed, 0x16fd: 0x87ed, 0x16fe: 0x87ed, 0x16ff: 0x0040, + 0x16c0: 0x0a08, 0x16c1: 0x0a08, 0x16c2: 0x0a08, 0x16c3: 0x0a08, 0x16c4: 0x0a08, 0x16c5: 0x0c08, + 0x16c6: 0x0808, 0x16c7: 0x0c08, 0x16c8: 0x0818, 0x16c9: 0x0c08, 0x16ca: 0x0c08, 0x16cb: 0x0808, + 0x16cc: 0x0808, 0x16cd: 0x0908, 0x16ce: 0x0c08, 0x16cf: 0x0c08, 0x16d0: 0x0c08, 0x16d1: 0x0c08, + 0x16d2: 0x0c08, 0x16d3: 0x0a08, 0x16d4: 0x0a08, 0x16d5: 0x0a08, 0x16d6: 0x0a08, 0x16d7: 0x0908, + 0x16d8: 0x0a08, 0x16d9: 0x0a08, 0x16da: 0x0a08, 0x16db: 0x0a08, 0x16dc: 0x0a08, 0x16dd: 0x0c08, + 0x16de: 0x0a08, 0x16df: 0x0a08, 0x16e0: 0x0a08, 0x16e1: 0x0c08, 0x16e2: 0x0808, 0x16e3: 0x0808, + 0x16e4: 0x0c08, 0x16e5: 0x3308, 0x16e6: 0x3308, 0x16e7: 0x0040, 0x16e8: 0x0040, 0x16e9: 0x0040, + 0x16ea: 0x0040, 0x16eb: 0x0a18, 0x16ec: 0x0a18, 0x16ed: 0x0a18, 0x16ee: 0x0a18, 0x16ef: 0x0c18, + 0x16f0: 0x0818, 0x16f1: 0x0818, 0x16f2: 0x0818, 0x16f3: 0x0818, 0x16f4: 0x0818, 0x16f5: 0x0818, + 0x16f6: 0x0818, 0x16f7: 0x0040, 0x16f8: 0x0040, 0x16f9: 0x0040, 0x16fa: 0x0040, 0x16fb: 0x0040, + 0x16fc: 0x0040, 0x16fd: 0x0040, 0x16fe: 0x0040, 0x16ff: 0x0040, // Block 0x5c, offset 0x1700 - 0x1700: 0x0040, 0x1701: 0x0040, 0x1702: 0x874d, 0x1703: 0x872d, 0x1704: 0x892d, 0x1705: 0x872d, - 0x1706: 0x874d, 0x1707: 0x872d, 0x1708: 0x0040, 0x1709: 0x0040, 0x170a: 0x894d, 0x170b: 0x874d, - 0x170c: 0x896d, 0x170d: 0x892d, 0x170e: 0x896d, 0x170f: 0x874d, 0x1710: 0x0040, 0x1711: 0x0040, - 0x1712: 0x898d, 0x1713: 0x89ad, 0x1714: 0x88ad, 0x1715: 0x896d, 0x1716: 0x892d, 0x1717: 0x896d, - 0x1718: 0x0040, 0x1719: 0x0040, 0x171a: 0x89cd, 0x171b: 0x89ed, 0x171c: 0x89cd, 0x171d: 0x0040, - 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0xb591, 0x1721: 0xb5a9, 0x1722: 0xb5c1, 0x1723: 0x8a0e, - 0x1724: 0xb5d9, 0x1725: 0xb5f1, 0x1726: 0x8a2d, 0x1727: 0x0040, 0x1728: 0x8a4d, 0x1729: 0x8a6d, - 0x172a: 0x8a8d, 0x172b: 0x8a6d, 0x172c: 0x8aad, 0x172d: 0x8acd, 0x172e: 0x8aed, 0x172f: 0x0040, + 0x1700: 0x0a08, 0x1701: 0x0c08, 0x1702: 0x0a08, 0x1703: 0x0c08, 0x1704: 0x0c08, 0x1705: 0x0c08, + 0x1706: 0x0a08, 0x1707: 0x0a08, 0x1708: 0x0a08, 0x1709: 0x0c08, 0x170a: 0x0a08, 0x170b: 0x0a08, + 0x170c: 0x0c08, 0x170d: 0x0a08, 0x170e: 0x0c08, 0x170f: 0x0c08, 0x1710: 0x0a08, 0x1711: 0x0c08, + 0x1712: 0x0040, 0x1713: 0x0040, 0x1714: 0x0040, 0x1715: 0x0040, 0x1716: 0x0040, 0x1717: 0x0040, + 0x1718: 0x0040, 0x1719: 0x0818, 0x171a: 0x0818, 0x171b: 0x0818, 0x171c: 0x0818, 0x171d: 0x0040, + 0x171e: 0x0040, 0x171f: 0x0040, 0x1720: 0x0040, 0x1721: 0x0040, 0x1722: 0x0040, 0x1723: 0x0040, + 0x1724: 0x0040, 0x1725: 0x0040, 0x1726: 0x0040, 0x1727: 0x0040, 0x1728: 0x0040, 0x1729: 0x0c18, + 0x172a: 0x0c18, 0x172b: 0x0c18, 0x172c: 0x0c18, 0x172d: 0x0a18, 0x172e: 0x0a18, 0x172f: 0x0818, 0x1730: 0x0040, 0x1731: 0x0040, 0x1732: 0x0040, 0x1733: 0x0040, 0x1734: 0x0040, 0x1735: 0x0040, - 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0340, 0x173a: 0x0340, 0x173b: 0x0340, + 0x1736: 0x0040, 0x1737: 0x0040, 0x1738: 0x0040, 0x1739: 0x0040, 0x173a: 0x0040, 0x173b: 0x0040, 0x173c: 0x0040, 0x173d: 0x0040, 0x173e: 0x0040, 0x173f: 0x0040, // Block 0x5d, offset 0x1740 - 0x1740: 0x0a08, 0x1741: 0x0a08, 0x1742: 0x0a08, 0x1743: 0x0a08, 0x1744: 0x0a08, 0x1745: 0x0c08, - 0x1746: 0x0808, 0x1747: 0x0c08, 0x1748: 0x0818, 0x1749: 0x0c08, 0x174a: 0x0c08, 0x174b: 0x0808, - 0x174c: 0x0808, 0x174d: 0x0908, 0x174e: 0x0c08, 0x174f: 0x0c08, 0x1750: 0x0c08, 0x1751: 0x0c08, - 0x1752: 0x0c08, 0x1753: 0x0a08, 0x1754: 0x0a08, 0x1755: 0x0a08, 0x1756: 0x0a08, 0x1757: 0x0908, - 0x1758: 0x0a08, 0x1759: 0x0a08, 0x175a: 0x0a08, 0x175b: 0x0a08, 0x175c: 0x0a08, 0x175d: 0x0c08, - 0x175e: 0x0a08, 0x175f: 0x0a08, 0x1760: 0x0a08, 0x1761: 0x0c08, 0x1762: 0x0808, 0x1763: 0x0808, - 0x1764: 0x0c08, 0x1765: 0x3308, 0x1766: 0x3308, 0x1767: 0x0040, 0x1768: 0x0040, 0x1769: 0x0040, - 0x176a: 0x0040, 0x176b: 0x0a18, 0x176c: 0x0a18, 0x176d: 0x0a18, 0x176e: 0x0a18, 0x176f: 0x0c18, - 0x1770: 0x0818, 0x1771: 0x0818, 0x1772: 0x0818, 0x1773: 0x0818, 0x1774: 0x0818, 0x1775: 0x0818, - 0x1776: 0x0818, 0x1777: 0x0040, 0x1778: 0x0040, 0x1779: 0x0040, 0x177a: 0x0040, 0x177b: 0x0040, - 0x177c: 0x0040, 0x177d: 0x0040, 0x177e: 0x0040, 0x177f: 0x0040, + 0x1740: 0x3308, 0x1741: 0x3308, 0x1742: 0x3008, 0x1743: 0x3008, 0x1744: 0x0040, 0x1745: 0x0008, + 0x1746: 0x0008, 0x1747: 0x0008, 0x1748: 0x0008, 0x1749: 0x0008, 0x174a: 0x0008, 0x174b: 0x0008, + 0x174c: 0x0008, 0x174d: 0x0040, 0x174e: 0x0040, 0x174f: 0x0008, 0x1750: 0x0008, 0x1751: 0x0040, + 0x1752: 0x0040, 0x1753: 0x0008, 0x1754: 0x0008, 0x1755: 0x0008, 0x1756: 0x0008, 0x1757: 0x0008, + 0x1758: 0x0008, 0x1759: 0x0008, 0x175a: 0x0008, 0x175b: 0x0008, 0x175c: 0x0008, 0x175d: 0x0008, + 0x175e: 0x0008, 0x175f: 0x0008, 0x1760: 0x0008, 0x1761: 0x0008, 0x1762: 0x0008, 0x1763: 0x0008, + 0x1764: 0x0008, 0x1765: 0x0008, 0x1766: 0x0008, 0x1767: 0x0008, 0x1768: 0x0008, 0x1769: 0x0040, + 0x176a: 0x0008, 0x176b: 0x0008, 0x176c: 0x0008, 0x176d: 0x0008, 0x176e: 0x0008, 0x176f: 0x0008, + 0x1770: 0x0008, 0x1771: 0x0040, 0x1772: 0x0008, 0x1773: 0x0008, 0x1774: 0x0040, 0x1775: 0x0008, + 0x1776: 0x0008, 0x1777: 0x0008, 0x1778: 0x0008, 0x1779: 0x0008, 0x177a: 0x0040, 0x177b: 0x3308, + 0x177c: 0x3308, 0x177d: 0x0008, 0x177e: 0x3008, 0x177f: 0x3008, // Block 0x5e, offset 0x1780 - 0x1780: 0x0a08, 0x1781: 0x0c08, 0x1782: 0x0a08, 0x1783: 0x0c08, 0x1784: 0x0c08, 0x1785: 0x0c08, - 0x1786: 0x0a08, 0x1787: 0x0a08, 0x1788: 0x0a08, 0x1789: 0x0c08, 0x178a: 0x0a08, 0x178b: 0x0a08, - 0x178c: 0x0c08, 0x178d: 0x0a08, 0x178e: 0x0c08, 0x178f: 0x0c08, 0x1790: 0x0a08, 0x1791: 0x0c08, - 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x0040, - 0x1798: 0x0040, 0x1799: 0x0818, 0x179a: 0x0818, 0x179b: 0x0818, 0x179c: 0x0818, 0x179d: 0x0040, - 0x179e: 0x0040, 0x179f: 0x0040, 0x17a0: 0x0040, 0x17a1: 0x0040, 0x17a2: 0x0040, 0x17a3: 0x0040, - 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x0040, 0x17a7: 0x0040, 0x17a8: 0x0040, 0x17a9: 0x0c18, - 0x17aa: 0x0c18, 0x17ab: 0x0c18, 0x17ac: 0x0c18, 0x17ad: 0x0a18, 0x17ae: 0x0a18, 0x17af: 0x0818, - 0x17b0: 0x0040, 0x17b1: 0x0040, 0x17b2: 0x0040, 0x17b3: 0x0040, 0x17b4: 0x0040, 0x17b5: 0x0040, + 0x1780: 0x3308, 0x1781: 0x3008, 0x1782: 0x3008, 0x1783: 0x3008, 0x1784: 0x3008, 0x1785: 0x0040, + 0x1786: 0x0040, 0x1787: 0x3008, 0x1788: 0x3008, 0x1789: 0x0040, 0x178a: 0x0040, 0x178b: 0x3008, + 0x178c: 0x3008, 0x178d: 0x3808, 0x178e: 0x0040, 0x178f: 0x0040, 0x1790: 0x0008, 0x1791: 0x0040, + 0x1792: 0x0040, 0x1793: 0x0040, 0x1794: 0x0040, 0x1795: 0x0040, 0x1796: 0x0040, 0x1797: 0x3008, + 0x1798: 0x0040, 0x1799: 0x0040, 0x179a: 0x0040, 0x179b: 0x0040, 0x179c: 0x0040, 0x179d: 0x0008, + 0x179e: 0x0008, 0x179f: 0x0008, 0x17a0: 0x0008, 0x17a1: 0x0008, 0x17a2: 0x3008, 0x17a3: 0x3008, + 0x17a4: 0x0040, 0x17a5: 0x0040, 0x17a6: 0x3308, 0x17a7: 0x3308, 0x17a8: 0x3308, 0x17a9: 0x3308, + 0x17aa: 0x3308, 0x17ab: 0x3308, 0x17ac: 0x3308, 0x17ad: 0x0040, 0x17ae: 0x0040, 0x17af: 0x0040, + 0x17b0: 0x3308, 0x17b1: 0x3308, 0x17b2: 0x3308, 0x17b3: 0x3308, 0x17b4: 0x3308, 0x17b5: 0x0040, 0x17b6: 0x0040, 0x17b7: 0x0040, 0x17b8: 0x0040, 0x17b9: 0x0040, 0x17ba: 0x0040, 0x17bb: 0x0040, 0x17bc: 0x0040, 0x17bd: 0x0040, 0x17be: 0x0040, 0x17bf: 0x0040, // Block 0x5f, offset 0x17c0 - 0x17c0: 0x3308, 0x17c1: 0x3308, 0x17c2: 0x3008, 0x17c3: 0x3008, 0x17c4: 0x0040, 0x17c5: 0x0008, - 0x17c6: 0x0008, 0x17c7: 0x0008, 0x17c8: 0x0008, 0x17c9: 0x0008, 0x17ca: 0x0008, 0x17cb: 0x0008, - 0x17cc: 0x0008, 0x17cd: 0x0040, 0x17ce: 0x0040, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0040, - 0x17d2: 0x0040, 0x17d3: 0x0008, 0x17d4: 0x0008, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0008, + 0x17c0: 0x0008, 0x17c1: 0x0008, 0x17c2: 0x0008, 0x17c3: 0x0008, 0x17c4: 0x0008, 0x17c5: 0x0008, + 0x17c6: 0x0008, 0x17c7: 0x0040, 0x17c8: 0x0040, 0x17c9: 0x0008, 0x17ca: 0x0040, 0x17cb: 0x0040, + 0x17cc: 0x0008, 0x17cd: 0x0008, 0x17ce: 0x0008, 0x17cf: 0x0008, 0x17d0: 0x0008, 0x17d1: 0x0008, + 0x17d2: 0x0008, 0x17d3: 0x0008, 0x17d4: 0x0040, 0x17d5: 0x0008, 0x17d6: 0x0008, 0x17d7: 0x0040, 0x17d8: 0x0008, 0x17d9: 0x0008, 0x17da: 0x0008, 0x17db: 0x0008, 0x17dc: 0x0008, 0x17dd: 0x0008, 0x17de: 0x0008, 0x17df: 0x0008, 0x17e0: 0x0008, 0x17e1: 0x0008, 0x17e2: 0x0008, 0x17e3: 0x0008, - 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0040, + 0x17e4: 0x0008, 0x17e5: 0x0008, 0x17e6: 0x0008, 0x17e7: 0x0008, 0x17e8: 0x0008, 0x17e9: 0x0008, 0x17ea: 0x0008, 0x17eb: 0x0008, 0x17ec: 0x0008, 0x17ed: 0x0008, 0x17ee: 0x0008, 0x17ef: 0x0008, - 0x17f0: 0x0008, 0x17f1: 0x0040, 0x17f2: 0x0008, 0x17f3: 0x0008, 0x17f4: 0x0040, 0x17f5: 0x0008, - 0x17f6: 0x0008, 0x17f7: 0x0008, 0x17f8: 0x0008, 0x17f9: 0x0008, 0x17fa: 0x0040, 0x17fb: 0x3308, - 0x17fc: 0x3308, 0x17fd: 0x0008, 0x17fe: 0x3008, 0x17ff: 0x3008, + 0x17f0: 0x3008, 0x17f1: 0x3008, 0x17f2: 0x3008, 0x17f3: 0x3008, 0x17f4: 0x3008, 0x17f5: 0x3008, + 0x17f6: 0x0040, 0x17f7: 0x3008, 0x17f8: 0x3008, 0x17f9: 0x0040, 0x17fa: 0x0040, 0x17fb: 0x3308, + 0x17fc: 0x3308, 0x17fd: 0x3808, 0x17fe: 0x3b08, 0x17ff: 0x0008, // Block 0x60, offset 0x1800 - 0x1800: 0x3308, 0x1801: 0x3008, 0x1802: 0x3008, 0x1803: 0x3008, 0x1804: 0x3008, 0x1805: 0x0040, - 0x1806: 0x0040, 0x1807: 0x3008, 0x1808: 0x3008, 0x1809: 0x0040, 0x180a: 0x0040, 0x180b: 0x3008, - 0x180c: 0x3008, 0x180d: 0x3808, 0x180e: 0x0040, 0x180f: 0x0040, 0x1810: 0x0008, 0x1811: 0x0040, - 0x1812: 0x0040, 0x1813: 0x0040, 0x1814: 0x0040, 0x1815: 0x0040, 0x1816: 0x0040, 0x1817: 0x3008, - 0x1818: 0x0040, 0x1819: 0x0040, 0x181a: 0x0040, 0x181b: 0x0040, 0x181c: 0x0040, 0x181d: 0x0008, - 0x181e: 0x0008, 0x181f: 0x0008, 0x1820: 0x0008, 0x1821: 0x0008, 0x1822: 0x3008, 0x1823: 0x3008, - 0x1824: 0x0040, 0x1825: 0x0040, 0x1826: 0x3308, 0x1827: 0x3308, 0x1828: 0x3308, 0x1829: 0x3308, - 0x182a: 0x3308, 0x182b: 0x3308, 0x182c: 0x3308, 0x182d: 0x0040, 0x182e: 0x0040, 0x182f: 0x0040, - 0x1830: 0x3308, 0x1831: 0x3308, 0x1832: 0x3308, 0x1833: 0x3308, 0x1834: 0x3308, 0x1835: 0x0040, - 0x1836: 0x0040, 0x1837: 0x0040, 0x1838: 0x0040, 0x1839: 0x0040, 0x183a: 0x0040, 0x183b: 0x0040, - 0x183c: 0x0040, 0x183d: 0x0040, 0x183e: 0x0040, 0x183f: 0x0040, + 0x1800: 0x0019, 0x1801: 0x02e9, 0x1802: 0x03d9, 0x1803: 0x02f1, 0x1804: 0x02f9, 0x1805: 0x03f1, + 0x1806: 0x0309, 0x1807: 0x00a9, 0x1808: 0x0311, 0x1809: 0x00b1, 0x180a: 0x0319, 0x180b: 0x0101, + 0x180c: 0x0321, 0x180d: 0x0329, 0x180e: 0x0051, 0x180f: 0x0339, 0x1810: 0x0751, 0x1811: 0x00b9, + 0x1812: 0x0089, 0x1813: 0x0341, 0x1814: 0x0349, 0x1815: 0x0391, 0x1816: 0x00c1, 0x1817: 0x0109, + 0x1818: 0x00c9, 0x1819: 0x04b1, 0x181a: 0x0019, 0x181b: 0x02e9, 0x181c: 0x03d9, 0x181d: 0x02f1, + 0x181e: 0x02f9, 0x181f: 0x03f1, 0x1820: 0x0309, 0x1821: 0x00a9, 0x1822: 0x0311, 0x1823: 0x00b1, + 0x1824: 0x0319, 0x1825: 0x0101, 0x1826: 0x0321, 0x1827: 0x0329, 0x1828: 0x0051, 0x1829: 0x0339, + 0x182a: 0x0751, 0x182b: 0x00b9, 0x182c: 0x0089, 0x182d: 0x0341, 0x182e: 0x0349, 0x182f: 0x0391, + 0x1830: 0x00c1, 0x1831: 0x0109, 0x1832: 0x00c9, 0x1833: 0x04b1, 0x1834: 0x0019, 0x1835: 0x02e9, + 0x1836: 0x03d9, 0x1837: 0x02f1, 0x1838: 0x02f9, 0x1839: 0x03f1, 0x183a: 0x0309, 0x183b: 0x00a9, + 0x183c: 0x0311, 0x183d: 0x00b1, 0x183e: 0x0319, 0x183f: 0x0101, // Block 0x61, offset 0x1840 - 0x1840: 0x0008, 0x1841: 0x0008, 0x1842: 0x0008, 0x1843: 0x0008, 0x1844: 0x0008, 0x1845: 0x0008, - 0x1846: 0x0008, 0x1847: 0x0040, 0x1848: 0x0040, 0x1849: 0x0008, 0x184a: 0x0040, 0x184b: 0x0040, - 0x184c: 0x0008, 0x184d: 0x0008, 0x184e: 0x0008, 0x184f: 0x0008, 0x1850: 0x0008, 0x1851: 0x0008, - 0x1852: 0x0008, 0x1853: 0x0008, 0x1854: 0x0040, 0x1855: 0x0008, 0x1856: 0x0008, 0x1857: 0x0040, - 0x1858: 0x0008, 0x1859: 0x0008, 0x185a: 0x0008, 0x185b: 0x0008, 0x185c: 0x0008, 0x185d: 0x0008, - 0x185e: 0x0008, 0x185f: 0x0008, 0x1860: 0x0008, 0x1861: 0x0008, 0x1862: 0x0008, 0x1863: 0x0008, - 0x1864: 0x0008, 0x1865: 0x0008, 0x1866: 0x0008, 0x1867: 0x0008, 0x1868: 0x0008, 0x1869: 0x0008, - 0x186a: 0x0008, 0x186b: 0x0008, 0x186c: 0x0008, 0x186d: 0x0008, 0x186e: 0x0008, 0x186f: 0x0008, - 0x1870: 0x3008, 0x1871: 0x3008, 0x1872: 0x3008, 0x1873: 0x3008, 0x1874: 0x3008, 0x1875: 0x3008, - 0x1876: 0x0040, 0x1877: 0x3008, 0x1878: 0x3008, 0x1879: 0x0040, 0x187a: 0x0040, 0x187b: 0x3308, - 0x187c: 0x3308, 0x187d: 0x3808, 0x187e: 0x3b08, 0x187f: 0x0008, + 0x1840: 0x0321, 0x1841: 0x0329, 0x1842: 0x0051, 0x1843: 0x0339, 0x1844: 0x0751, 0x1845: 0x00b9, + 0x1846: 0x0089, 0x1847: 0x0341, 0x1848: 0x0349, 0x1849: 0x0391, 0x184a: 0x00c1, 0x184b: 0x0109, + 0x184c: 0x00c9, 0x184d: 0x04b1, 0x184e: 0x0019, 0x184f: 0x02e9, 0x1850: 0x03d9, 0x1851: 0x02f1, + 0x1852: 0x02f9, 0x1853: 0x03f1, 0x1854: 0x0309, 0x1855: 0x0040, 0x1856: 0x0311, 0x1857: 0x00b1, + 0x1858: 0x0319, 0x1859: 0x0101, 0x185a: 0x0321, 0x185b: 0x0329, 0x185c: 0x0051, 0x185d: 0x0339, + 0x185e: 0x0751, 0x185f: 0x00b9, 0x1860: 0x0089, 0x1861: 0x0341, 0x1862: 0x0349, 0x1863: 0x0391, + 0x1864: 0x00c1, 0x1865: 0x0109, 0x1866: 0x00c9, 0x1867: 0x04b1, 0x1868: 0x0019, 0x1869: 0x02e9, + 0x186a: 0x03d9, 0x186b: 0x02f1, 0x186c: 0x02f9, 0x186d: 0x03f1, 0x186e: 0x0309, 0x186f: 0x00a9, + 0x1870: 0x0311, 0x1871: 0x00b1, 0x1872: 0x0319, 0x1873: 0x0101, 0x1874: 0x0321, 0x1875: 0x0329, + 0x1876: 0x0051, 0x1877: 0x0339, 0x1878: 0x0751, 0x1879: 0x00b9, 0x187a: 0x0089, 0x187b: 0x0341, + 0x187c: 0x0349, 0x187d: 0x0391, 0x187e: 0x00c1, 0x187f: 0x0109, // Block 0x62, offset 0x1880 - 0x1880: 0x0039, 0x1881: 0x0ee9, 0x1882: 0x1159, 0x1883: 0x0ef9, 0x1884: 0x0f09, 0x1885: 0x1199, - 0x1886: 0x0f31, 0x1887: 0x0249, 0x1888: 0x0f41, 0x1889: 0x0259, 0x188a: 0x0f51, 0x188b: 0x0359, - 0x188c: 0x0f61, 0x188d: 0x0f71, 0x188e: 0x00d9, 0x188f: 0x0f99, 0x1890: 0x2039, 0x1891: 0x0269, - 0x1892: 0x01d9, 0x1893: 0x0fa9, 0x1894: 0x0fb9, 0x1895: 0x1089, 0x1896: 0x0279, 0x1897: 0x0369, - 0x1898: 0x0289, 0x1899: 0x13d1, 0x189a: 0x0039, 0x189b: 0x0ee9, 0x189c: 0x1159, 0x189d: 0x0ef9, - 0x189e: 0x0f09, 0x189f: 0x1199, 0x18a0: 0x0f31, 0x18a1: 0x0249, 0x18a2: 0x0f41, 0x18a3: 0x0259, - 0x18a4: 0x0f51, 0x18a5: 0x0359, 0x18a6: 0x0f61, 0x18a7: 0x0f71, 0x18a8: 0x00d9, 0x18a9: 0x0f99, - 0x18aa: 0x2039, 0x18ab: 0x0269, 0x18ac: 0x01d9, 0x18ad: 0x0fa9, 0x18ae: 0x0fb9, 0x18af: 0x1089, - 0x18b0: 0x0279, 0x18b1: 0x0369, 0x18b2: 0x0289, 0x18b3: 0x13d1, 0x18b4: 0x0039, 0x18b5: 0x0ee9, - 0x18b6: 0x1159, 0x18b7: 0x0ef9, 0x18b8: 0x0f09, 0x18b9: 0x1199, 0x18ba: 0x0f31, 0x18bb: 0x0249, - 0x18bc: 0x0f41, 0x18bd: 0x0259, 0x18be: 0x0f51, 0x18bf: 0x0359, + 0x1880: 0x00c9, 0x1881: 0x04b1, 0x1882: 0x0019, 0x1883: 0x02e9, 0x1884: 0x03d9, 0x1885: 0x02f1, + 0x1886: 0x02f9, 0x1887: 0x03f1, 0x1888: 0x0309, 0x1889: 0x00a9, 0x188a: 0x0311, 0x188b: 0x00b1, + 0x188c: 0x0319, 0x188d: 0x0101, 0x188e: 0x0321, 0x188f: 0x0329, 0x1890: 0x0051, 0x1891: 0x0339, + 0x1892: 0x0751, 0x1893: 0x00b9, 0x1894: 0x0089, 0x1895: 0x0341, 0x1896: 0x0349, 0x1897: 0x0391, + 0x1898: 0x00c1, 0x1899: 0x0109, 0x189a: 0x00c9, 0x189b: 0x04b1, 0x189c: 0x0019, 0x189d: 0x0040, + 0x189e: 0x03d9, 0x189f: 0x02f1, 0x18a0: 0x0040, 0x18a1: 0x0040, 0x18a2: 0x0309, 0x18a3: 0x0040, + 0x18a4: 0x0040, 0x18a5: 0x00b1, 0x18a6: 0x0319, 0x18a7: 0x0040, 0x18a8: 0x0040, 0x18a9: 0x0329, + 0x18aa: 0x0051, 0x18ab: 0x0339, 0x18ac: 0x0751, 0x18ad: 0x0040, 0x18ae: 0x0089, 0x18af: 0x0341, + 0x18b0: 0x0349, 0x18b1: 0x0391, 0x18b2: 0x00c1, 0x18b3: 0x0109, 0x18b4: 0x00c9, 0x18b5: 0x04b1, + 0x18b6: 0x0019, 0x18b7: 0x02e9, 0x18b8: 0x03d9, 0x18b9: 0x02f1, 0x18ba: 0x0040, 0x18bb: 0x03f1, + 0x18bc: 0x0040, 0x18bd: 0x00a9, 0x18be: 0x0311, 0x18bf: 0x00b1, // Block 0x63, offset 0x18c0 - 0x18c0: 0x0f61, 0x18c1: 0x0f71, 0x18c2: 0x00d9, 0x18c3: 0x0f99, 0x18c4: 0x2039, 0x18c5: 0x0269, - 0x18c6: 0x01d9, 0x18c7: 0x0fa9, 0x18c8: 0x0fb9, 0x18c9: 0x1089, 0x18ca: 0x0279, 0x18cb: 0x0369, - 0x18cc: 0x0289, 0x18cd: 0x13d1, 0x18ce: 0x0039, 0x18cf: 0x0ee9, 0x18d0: 0x1159, 0x18d1: 0x0ef9, - 0x18d2: 0x0f09, 0x18d3: 0x1199, 0x18d4: 0x0f31, 0x18d5: 0x0040, 0x18d6: 0x0f41, 0x18d7: 0x0259, - 0x18d8: 0x0f51, 0x18d9: 0x0359, 0x18da: 0x0f61, 0x18db: 0x0f71, 0x18dc: 0x00d9, 0x18dd: 0x0f99, - 0x18de: 0x2039, 0x18df: 0x0269, 0x18e0: 0x01d9, 0x18e1: 0x0fa9, 0x18e2: 0x0fb9, 0x18e3: 0x1089, - 0x18e4: 0x0279, 0x18e5: 0x0369, 0x18e6: 0x0289, 0x18e7: 0x13d1, 0x18e8: 0x0039, 0x18e9: 0x0ee9, - 0x18ea: 0x1159, 0x18eb: 0x0ef9, 0x18ec: 0x0f09, 0x18ed: 0x1199, 0x18ee: 0x0f31, 0x18ef: 0x0249, - 0x18f0: 0x0f41, 0x18f1: 0x0259, 0x18f2: 0x0f51, 0x18f3: 0x0359, 0x18f4: 0x0f61, 0x18f5: 0x0f71, - 0x18f6: 0x00d9, 0x18f7: 0x0f99, 0x18f8: 0x2039, 0x18f9: 0x0269, 0x18fa: 0x01d9, 0x18fb: 0x0fa9, - 0x18fc: 0x0fb9, 0x18fd: 0x1089, 0x18fe: 0x0279, 0x18ff: 0x0369, + 0x18c0: 0x0319, 0x18c1: 0x0101, 0x18c2: 0x0321, 0x18c3: 0x0329, 0x18c4: 0x0040, 0x18c5: 0x0339, + 0x18c6: 0x0751, 0x18c7: 0x00b9, 0x18c8: 0x0089, 0x18c9: 0x0341, 0x18ca: 0x0349, 0x18cb: 0x0391, + 0x18cc: 0x00c1, 0x18cd: 0x0109, 0x18ce: 0x00c9, 0x18cf: 0x04b1, 0x18d0: 0x0019, 0x18d1: 0x02e9, + 0x18d2: 0x03d9, 0x18d3: 0x02f1, 0x18d4: 0x02f9, 0x18d5: 0x03f1, 0x18d6: 0x0309, 0x18d7: 0x00a9, + 0x18d8: 0x0311, 0x18d9: 0x00b1, 0x18da: 0x0319, 0x18db: 0x0101, 0x18dc: 0x0321, 0x18dd: 0x0329, + 0x18de: 0x0051, 0x18df: 0x0339, 0x18e0: 0x0751, 0x18e1: 0x00b9, 0x18e2: 0x0089, 0x18e3: 0x0341, + 0x18e4: 0x0349, 0x18e5: 0x0391, 0x18e6: 0x00c1, 0x18e7: 0x0109, 0x18e8: 0x00c9, 0x18e9: 0x04b1, + 0x18ea: 0x0019, 0x18eb: 0x02e9, 0x18ec: 0x03d9, 0x18ed: 0x02f1, 0x18ee: 0x02f9, 0x18ef: 0x03f1, + 0x18f0: 0x0309, 0x18f1: 0x00a9, 0x18f2: 0x0311, 0x18f3: 0x00b1, 0x18f4: 0x0319, 0x18f5: 0x0101, + 0x18f6: 0x0321, 0x18f7: 0x0329, 0x18f8: 0x0051, 0x18f9: 0x0339, 0x18fa: 0x0751, 0x18fb: 0x00b9, + 0x18fc: 0x0089, 0x18fd: 0x0341, 0x18fe: 0x0349, 0x18ff: 0x0391, // Block 0x64, offset 0x1900 - 0x1900: 0x0289, 0x1901: 0x13d1, 0x1902: 0x0039, 0x1903: 0x0ee9, 0x1904: 0x1159, 0x1905: 0x0ef9, - 0x1906: 0x0f09, 0x1907: 0x1199, 0x1908: 0x0f31, 0x1909: 0x0249, 0x190a: 0x0f41, 0x190b: 0x0259, - 0x190c: 0x0f51, 0x190d: 0x0359, 0x190e: 0x0f61, 0x190f: 0x0f71, 0x1910: 0x00d9, 0x1911: 0x0f99, - 0x1912: 0x2039, 0x1913: 0x0269, 0x1914: 0x01d9, 0x1915: 0x0fa9, 0x1916: 0x0fb9, 0x1917: 0x1089, - 0x1918: 0x0279, 0x1919: 0x0369, 0x191a: 0x0289, 0x191b: 0x13d1, 0x191c: 0x0039, 0x191d: 0x0040, - 0x191e: 0x1159, 0x191f: 0x0ef9, 0x1920: 0x0040, 0x1921: 0x0040, 0x1922: 0x0f31, 0x1923: 0x0040, - 0x1924: 0x0040, 0x1925: 0x0259, 0x1926: 0x0f51, 0x1927: 0x0040, 0x1928: 0x0040, 0x1929: 0x0f71, - 0x192a: 0x00d9, 0x192b: 0x0f99, 0x192c: 0x2039, 0x192d: 0x0040, 0x192e: 0x01d9, 0x192f: 0x0fa9, - 0x1930: 0x0fb9, 0x1931: 0x1089, 0x1932: 0x0279, 0x1933: 0x0369, 0x1934: 0x0289, 0x1935: 0x13d1, - 0x1936: 0x0039, 0x1937: 0x0ee9, 0x1938: 0x1159, 0x1939: 0x0ef9, 0x193a: 0x0040, 0x193b: 0x1199, - 0x193c: 0x0040, 0x193d: 0x0249, 0x193e: 0x0f41, 0x193f: 0x0259, + 0x1900: 0x00c1, 0x1901: 0x0109, 0x1902: 0x00c9, 0x1903: 0x04b1, 0x1904: 0x0019, 0x1905: 0x02e9, + 0x1906: 0x0040, 0x1907: 0x02f1, 0x1908: 0x02f9, 0x1909: 0x03f1, 0x190a: 0x0309, 0x190b: 0x0040, + 0x190c: 0x0040, 0x190d: 0x00b1, 0x190e: 0x0319, 0x190f: 0x0101, 0x1910: 0x0321, 0x1911: 0x0329, + 0x1912: 0x0051, 0x1913: 0x0339, 0x1914: 0x0751, 0x1915: 0x0040, 0x1916: 0x0089, 0x1917: 0x0341, + 0x1918: 0x0349, 0x1919: 0x0391, 0x191a: 0x00c1, 0x191b: 0x0109, 0x191c: 0x00c9, 0x191d: 0x0040, + 0x191e: 0x0019, 0x191f: 0x02e9, 0x1920: 0x03d9, 0x1921: 0x02f1, 0x1922: 0x02f9, 0x1923: 0x03f1, + 0x1924: 0x0309, 0x1925: 0x00a9, 0x1926: 0x0311, 0x1927: 0x00b1, 0x1928: 0x0319, 0x1929: 0x0101, + 0x192a: 0x0321, 0x192b: 0x0329, 0x192c: 0x0051, 0x192d: 0x0339, 0x192e: 0x0751, 0x192f: 0x00b9, + 0x1930: 0x0089, 0x1931: 0x0341, 0x1932: 0x0349, 0x1933: 0x0391, 0x1934: 0x00c1, 0x1935: 0x0109, + 0x1936: 0x00c9, 0x1937: 0x04b1, 0x1938: 0x0019, 0x1939: 0x02e9, 0x193a: 0x0040, 0x193b: 0x02f1, + 0x193c: 0x02f9, 0x193d: 0x03f1, 0x193e: 0x0309, 0x193f: 0x0040, // Block 0x65, offset 0x1940 - 0x1940: 0x0f51, 0x1941: 0x0359, 0x1942: 0x0f61, 0x1943: 0x0f71, 0x1944: 0x0040, 0x1945: 0x0f99, - 0x1946: 0x2039, 0x1947: 0x0269, 0x1948: 0x01d9, 0x1949: 0x0fa9, 0x194a: 0x0fb9, 0x194b: 0x1089, - 0x194c: 0x0279, 0x194d: 0x0369, 0x194e: 0x0289, 0x194f: 0x13d1, 0x1950: 0x0039, 0x1951: 0x0ee9, - 0x1952: 0x1159, 0x1953: 0x0ef9, 0x1954: 0x0f09, 0x1955: 0x1199, 0x1956: 0x0f31, 0x1957: 0x0249, - 0x1958: 0x0f41, 0x1959: 0x0259, 0x195a: 0x0f51, 0x195b: 0x0359, 0x195c: 0x0f61, 0x195d: 0x0f71, - 0x195e: 0x00d9, 0x195f: 0x0f99, 0x1960: 0x2039, 0x1961: 0x0269, 0x1962: 0x01d9, 0x1963: 0x0fa9, - 0x1964: 0x0fb9, 0x1965: 0x1089, 0x1966: 0x0279, 0x1967: 0x0369, 0x1968: 0x0289, 0x1969: 0x13d1, - 0x196a: 0x0039, 0x196b: 0x0ee9, 0x196c: 0x1159, 0x196d: 0x0ef9, 0x196e: 0x0f09, 0x196f: 0x1199, - 0x1970: 0x0f31, 0x1971: 0x0249, 0x1972: 0x0f41, 0x1973: 0x0259, 0x1974: 0x0f51, 0x1975: 0x0359, - 0x1976: 0x0f61, 0x1977: 0x0f71, 0x1978: 0x00d9, 0x1979: 0x0f99, 0x197a: 0x2039, 0x197b: 0x0269, - 0x197c: 0x01d9, 0x197d: 0x0fa9, 0x197e: 0x0fb9, 0x197f: 0x1089, + 0x1940: 0x0311, 0x1941: 0x00b1, 0x1942: 0x0319, 0x1943: 0x0101, 0x1944: 0x0321, 0x1945: 0x0040, + 0x1946: 0x0051, 0x1947: 0x0040, 0x1948: 0x0040, 0x1949: 0x0040, 0x194a: 0x0089, 0x194b: 0x0341, + 0x194c: 0x0349, 0x194d: 0x0391, 0x194e: 0x00c1, 0x194f: 0x0109, 0x1950: 0x00c9, 0x1951: 0x0040, + 0x1952: 0x0019, 0x1953: 0x02e9, 0x1954: 0x03d9, 0x1955: 0x02f1, 0x1956: 0x02f9, 0x1957: 0x03f1, + 0x1958: 0x0309, 0x1959: 0x00a9, 0x195a: 0x0311, 0x195b: 0x00b1, 0x195c: 0x0319, 0x195d: 0x0101, + 0x195e: 0x0321, 0x195f: 0x0329, 0x1960: 0x0051, 0x1961: 0x0339, 0x1962: 0x0751, 0x1963: 0x00b9, + 0x1964: 0x0089, 0x1965: 0x0341, 0x1966: 0x0349, 0x1967: 0x0391, 0x1968: 0x00c1, 0x1969: 0x0109, + 0x196a: 0x00c9, 0x196b: 0x04b1, 0x196c: 0x0019, 0x196d: 0x02e9, 0x196e: 0x03d9, 0x196f: 0x02f1, + 0x1970: 0x02f9, 0x1971: 0x03f1, 0x1972: 0x0309, 0x1973: 0x00a9, 0x1974: 0x0311, 0x1975: 0x00b1, + 0x1976: 0x0319, 0x1977: 0x0101, 0x1978: 0x0321, 0x1979: 0x0329, 0x197a: 0x0051, 0x197b: 0x0339, + 0x197c: 0x0751, 0x197d: 0x00b9, 0x197e: 0x0089, 0x197f: 0x0341, // Block 0x66, offset 0x1980 - 0x1980: 0x0279, 0x1981: 0x0369, 0x1982: 0x0289, 0x1983: 0x13d1, 0x1984: 0x0039, 0x1985: 0x0ee9, - 0x1986: 0x0040, 0x1987: 0x0ef9, 0x1988: 0x0f09, 0x1989: 0x1199, 0x198a: 0x0f31, 0x198b: 0x0040, - 0x198c: 0x0040, 0x198d: 0x0259, 0x198e: 0x0f51, 0x198f: 0x0359, 0x1990: 0x0f61, 0x1991: 0x0f71, - 0x1992: 0x00d9, 0x1993: 0x0f99, 0x1994: 0x2039, 0x1995: 0x0040, 0x1996: 0x01d9, 0x1997: 0x0fa9, - 0x1998: 0x0fb9, 0x1999: 0x1089, 0x199a: 0x0279, 0x199b: 0x0369, 0x199c: 0x0289, 0x199d: 0x0040, - 0x199e: 0x0039, 0x199f: 0x0ee9, 0x19a0: 0x1159, 0x19a1: 0x0ef9, 0x19a2: 0x0f09, 0x19a3: 0x1199, - 0x19a4: 0x0f31, 0x19a5: 0x0249, 0x19a6: 0x0f41, 0x19a7: 0x0259, 0x19a8: 0x0f51, 0x19a9: 0x0359, - 0x19aa: 0x0f61, 0x19ab: 0x0f71, 0x19ac: 0x00d9, 0x19ad: 0x0f99, 0x19ae: 0x2039, 0x19af: 0x0269, - 0x19b0: 0x01d9, 0x19b1: 0x0fa9, 0x19b2: 0x0fb9, 0x19b3: 0x1089, 0x19b4: 0x0279, 0x19b5: 0x0369, - 0x19b6: 0x0289, 0x19b7: 0x13d1, 0x19b8: 0x0039, 0x19b9: 0x0ee9, 0x19ba: 0x0040, 0x19bb: 0x0ef9, - 0x19bc: 0x0f09, 0x19bd: 0x1199, 0x19be: 0x0f31, 0x19bf: 0x0040, + 0x1980: 0x0349, 0x1981: 0x0391, 0x1982: 0x00c1, 0x1983: 0x0109, 0x1984: 0x00c9, 0x1985: 0x04b1, + 0x1986: 0x0019, 0x1987: 0x02e9, 0x1988: 0x03d9, 0x1989: 0x02f1, 0x198a: 0x02f9, 0x198b: 0x03f1, + 0x198c: 0x0309, 0x198d: 0x00a9, 0x198e: 0x0311, 0x198f: 0x00b1, 0x1990: 0x0319, 0x1991: 0x0101, + 0x1992: 0x0321, 0x1993: 0x0329, 0x1994: 0x0051, 0x1995: 0x0339, 0x1996: 0x0751, 0x1997: 0x00b9, + 0x1998: 0x0089, 0x1999: 0x0341, 0x199a: 0x0349, 0x199b: 0x0391, 0x199c: 0x00c1, 0x199d: 0x0109, + 0x199e: 0x00c9, 0x199f: 0x04b1, 0x19a0: 0x0019, 0x19a1: 0x02e9, 0x19a2: 0x03d9, 0x19a3: 0x02f1, + 0x19a4: 0x02f9, 0x19a5: 0x03f1, 0x19a6: 0x0309, 0x19a7: 0x00a9, 0x19a8: 0x0311, 0x19a9: 0x00b1, + 0x19aa: 0x0319, 0x19ab: 0x0101, 0x19ac: 0x0321, 0x19ad: 0x0329, 0x19ae: 0x0051, 0x19af: 0x0339, + 0x19b0: 0x0751, 0x19b1: 0x00b9, 0x19b2: 0x0089, 0x19b3: 0x0341, 0x19b4: 0x0349, 0x19b5: 0x0391, + 0x19b6: 0x00c1, 0x19b7: 0x0109, 0x19b8: 0x00c9, 0x19b9: 0x04b1, 0x19ba: 0x0019, 0x19bb: 0x02e9, + 0x19bc: 0x03d9, 0x19bd: 0x02f1, 0x19be: 0x02f9, 0x19bf: 0x03f1, // Block 0x67, offset 0x19c0 - 0x19c0: 0x0f41, 0x19c1: 0x0259, 0x19c2: 0x0f51, 0x19c3: 0x0359, 0x19c4: 0x0f61, 0x19c5: 0x0040, - 0x19c6: 0x00d9, 0x19c7: 0x0040, 0x19c8: 0x0040, 0x19c9: 0x0040, 0x19ca: 0x01d9, 0x19cb: 0x0fa9, - 0x19cc: 0x0fb9, 0x19cd: 0x1089, 0x19ce: 0x0279, 0x19cf: 0x0369, 0x19d0: 0x0289, 0x19d1: 0x0040, - 0x19d2: 0x0039, 0x19d3: 0x0ee9, 0x19d4: 0x1159, 0x19d5: 0x0ef9, 0x19d6: 0x0f09, 0x19d7: 0x1199, - 0x19d8: 0x0f31, 0x19d9: 0x0249, 0x19da: 0x0f41, 0x19db: 0x0259, 0x19dc: 0x0f51, 0x19dd: 0x0359, - 0x19de: 0x0f61, 0x19df: 0x0f71, 0x19e0: 0x00d9, 0x19e1: 0x0f99, 0x19e2: 0x2039, 0x19e3: 0x0269, - 0x19e4: 0x01d9, 0x19e5: 0x0fa9, 0x19e6: 0x0fb9, 0x19e7: 0x1089, 0x19e8: 0x0279, 0x19e9: 0x0369, - 0x19ea: 0x0289, 0x19eb: 0x13d1, 0x19ec: 0x0039, 0x19ed: 0x0ee9, 0x19ee: 0x1159, 0x19ef: 0x0ef9, - 0x19f0: 0x0f09, 0x19f1: 0x1199, 0x19f2: 0x0f31, 0x19f3: 0x0249, 0x19f4: 0x0f41, 0x19f5: 0x0259, - 0x19f6: 0x0f51, 0x19f7: 0x0359, 0x19f8: 0x0f61, 0x19f9: 0x0f71, 0x19fa: 0x00d9, 0x19fb: 0x0f99, - 0x19fc: 0x2039, 0x19fd: 0x0269, 0x19fe: 0x01d9, 0x19ff: 0x0fa9, + 0x19c0: 0x0309, 0x19c1: 0x00a9, 0x19c2: 0x0311, 0x19c3: 0x00b1, 0x19c4: 0x0319, 0x19c5: 0x0101, + 0x19c6: 0x0321, 0x19c7: 0x0329, 0x19c8: 0x0051, 0x19c9: 0x0339, 0x19ca: 0x0751, 0x19cb: 0x00b9, + 0x19cc: 0x0089, 0x19cd: 0x0341, 0x19ce: 0x0349, 0x19cf: 0x0391, 0x19d0: 0x00c1, 0x19d1: 0x0109, + 0x19d2: 0x00c9, 0x19d3: 0x04b1, 0x19d4: 0x0019, 0x19d5: 0x02e9, 0x19d6: 0x03d9, 0x19d7: 0x02f1, + 0x19d8: 0x02f9, 0x19d9: 0x03f1, 0x19da: 0x0309, 0x19db: 0x00a9, 0x19dc: 0x0311, 0x19dd: 0x00b1, + 0x19de: 0x0319, 0x19df: 0x0101, 0x19e0: 0x0321, 0x19e1: 0x0329, 0x19e2: 0x0051, 0x19e3: 0x0339, + 0x19e4: 0x0751, 0x19e5: 0x00b9, 0x19e6: 0x0089, 0x19e7: 0x0341, 0x19e8: 0x0349, 0x19e9: 0x0391, + 0x19ea: 0x00c1, 0x19eb: 0x0109, 0x19ec: 0x00c9, 0x19ed: 0x04b1, 0x19ee: 0x0019, 0x19ef: 0x02e9, + 0x19f0: 0x03d9, 0x19f1: 0x02f1, 0x19f2: 0x02f9, 0x19f3: 0x03f1, 0x19f4: 0x0309, 0x19f5: 0x00a9, + 0x19f6: 0x0311, 0x19f7: 0x00b1, 0x19f8: 0x0319, 0x19f9: 0x0101, 0x19fa: 0x0321, 0x19fb: 0x0329, + 0x19fc: 0x0051, 0x19fd: 0x0339, 0x19fe: 0x0751, 0x19ff: 0x00b9, // Block 0x68, offset 0x1a00 - 0x1a00: 0x0fb9, 0x1a01: 0x1089, 0x1a02: 0x0279, 0x1a03: 0x0369, 0x1a04: 0x0289, 0x1a05: 0x13d1, - 0x1a06: 0x0039, 0x1a07: 0x0ee9, 0x1a08: 0x1159, 0x1a09: 0x0ef9, 0x1a0a: 0x0f09, 0x1a0b: 0x1199, - 0x1a0c: 0x0f31, 0x1a0d: 0x0249, 0x1a0e: 0x0f41, 0x1a0f: 0x0259, 0x1a10: 0x0f51, 0x1a11: 0x0359, - 0x1a12: 0x0f61, 0x1a13: 0x0f71, 0x1a14: 0x00d9, 0x1a15: 0x0f99, 0x1a16: 0x2039, 0x1a17: 0x0269, - 0x1a18: 0x01d9, 0x1a19: 0x0fa9, 0x1a1a: 0x0fb9, 0x1a1b: 0x1089, 0x1a1c: 0x0279, 0x1a1d: 0x0369, - 0x1a1e: 0x0289, 0x1a1f: 0x13d1, 0x1a20: 0x0039, 0x1a21: 0x0ee9, 0x1a22: 0x1159, 0x1a23: 0x0ef9, - 0x1a24: 0x0f09, 0x1a25: 0x1199, 0x1a26: 0x0f31, 0x1a27: 0x0249, 0x1a28: 0x0f41, 0x1a29: 0x0259, - 0x1a2a: 0x0f51, 0x1a2b: 0x0359, 0x1a2c: 0x0f61, 0x1a2d: 0x0f71, 0x1a2e: 0x00d9, 0x1a2f: 0x0f99, - 0x1a30: 0x2039, 0x1a31: 0x0269, 0x1a32: 0x01d9, 0x1a33: 0x0fa9, 0x1a34: 0x0fb9, 0x1a35: 0x1089, - 0x1a36: 0x0279, 0x1a37: 0x0369, 0x1a38: 0x0289, 0x1a39: 0x13d1, 0x1a3a: 0x0039, 0x1a3b: 0x0ee9, - 0x1a3c: 0x1159, 0x1a3d: 0x0ef9, 0x1a3e: 0x0f09, 0x1a3f: 0x1199, + 0x1a00: 0x0089, 0x1a01: 0x0341, 0x1a02: 0x0349, 0x1a03: 0x0391, 0x1a04: 0x00c1, 0x1a05: 0x0109, + 0x1a06: 0x00c9, 0x1a07: 0x04b1, 0x1a08: 0x0019, 0x1a09: 0x02e9, 0x1a0a: 0x03d9, 0x1a0b: 0x02f1, + 0x1a0c: 0x02f9, 0x1a0d: 0x03f1, 0x1a0e: 0x0309, 0x1a0f: 0x00a9, 0x1a10: 0x0311, 0x1a11: 0x00b1, + 0x1a12: 0x0319, 0x1a13: 0x0101, 0x1a14: 0x0321, 0x1a15: 0x0329, 0x1a16: 0x0051, 0x1a17: 0x0339, + 0x1a18: 0x0751, 0x1a19: 0x00b9, 0x1a1a: 0x0089, 0x1a1b: 0x0341, 0x1a1c: 0x0349, 0x1a1d: 0x0391, + 0x1a1e: 0x00c1, 0x1a1f: 0x0109, 0x1a20: 0x00c9, 0x1a21: 0x04b1, 0x1a22: 0x0019, 0x1a23: 0x02e9, + 0x1a24: 0x03d9, 0x1a25: 0x02f1, 0x1a26: 0x02f9, 0x1a27: 0x03f1, 0x1a28: 0x0309, 0x1a29: 0x00a9, + 0x1a2a: 0x0311, 0x1a2b: 0x00b1, 0x1a2c: 0x0319, 0x1a2d: 0x0101, 0x1a2e: 0x0321, 0x1a2f: 0x0329, + 0x1a30: 0x0051, 0x1a31: 0x0339, 0x1a32: 0x0751, 0x1a33: 0x00b9, 0x1a34: 0x0089, 0x1a35: 0x0341, + 0x1a36: 0x0349, 0x1a37: 0x0391, 0x1a38: 0x00c1, 0x1a39: 0x0109, 0x1a3a: 0x00c9, 0x1a3b: 0x04b1, + 0x1a3c: 0x0019, 0x1a3d: 0x02e9, 0x1a3e: 0x03d9, 0x1a3f: 0x02f1, // Block 0x69, offset 0x1a40 - 0x1a40: 0x0f31, 0x1a41: 0x0249, 0x1a42: 0x0f41, 0x1a43: 0x0259, 0x1a44: 0x0f51, 0x1a45: 0x0359, - 0x1a46: 0x0f61, 0x1a47: 0x0f71, 0x1a48: 0x00d9, 0x1a49: 0x0f99, 0x1a4a: 0x2039, 0x1a4b: 0x0269, - 0x1a4c: 0x01d9, 0x1a4d: 0x0fa9, 0x1a4e: 0x0fb9, 0x1a4f: 0x1089, 0x1a50: 0x0279, 0x1a51: 0x0369, - 0x1a52: 0x0289, 0x1a53: 0x13d1, 0x1a54: 0x0039, 0x1a55: 0x0ee9, 0x1a56: 0x1159, 0x1a57: 0x0ef9, - 0x1a58: 0x0f09, 0x1a59: 0x1199, 0x1a5a: 0x0f31, 0x1a5b: 0x0249, 0x1a5c: 0x0f41, 0x1a5d: 0x0259, - 0x1a5e: 0x0f51, 0x1a5f: 0x0359, 0x1a60: 0x0f61, 0x1a61: 0x0f71, 0x1a62: 0x00d9, 0x1a63: 0x0f99, - 0x1a64: 0x2039, 0x1a65: 0x0269, 0x1a66: 0x01d9, 0x1a67: 0x0fa9, 0x1a68: 0x0fb9, 0x1a69: 0x1089, - 0x1a6a: 0x0279, 0x1a6b: 0x0369, 0x1a6c: 0x0289, 0x1a6d: 0x13d1, 0x1a6e: 0x0039, 0x1a6f: 0x0ee9, - 0x1a70: 0x1159, 0x1a71: 0x0ef9, 0x1a72: 0x0f09, 0x1a73: 0x1199, 0x1a74: 0x0f31, 0x1a75: 0x0249, - 0x1a76: 0x0f41, 0x1a77: 0x0259, 0x1a78: 0x0f51, 0x1a79: 0x0359, 0x1a7a: 0x0f61, 0x1a7b: 0x0f71, - 0x1a7c: 0x00d9, 0x1a7d: 0x0f99, 0x1a7e: 0x2039, 0x1a7f: 0x0269, + 0x1a40: 0x02f9, 0x1a41: 0x03f1, 0x1a42: 0x0309, 0x1a43: 0x00a9, 0x1a44: 0x0311, 0x1a45: 0x00b1, + 0x1a46: 0x0319, 0x1a47: 0x0101, 0x1a48: 0x0321, 0x1a49: 0x0329, 0x1a4a: 0x0051, 0x1a4b: 0x0339, + 0x1a4c: 0x0751, 0x1a4d: 0x00b9, 0x1a4e: 0x0089, 0x1a4f: 0x0341, 0x1a50: 0x0349, 0x1a51: 0x0391, + 0x1a52: 0x00c1, 0x1a53: 0x0109, 0x1a54: 0x00c9, 0x1a55: 0x04b1, 0x1a56: 0x0019, 0x1a57: 0x02e9, + 0x1a58: 0x03d9, 0x1a59: 0x02f1, 0x1a5a: 0x02f9, 0x1a5b: 0x03f1, 0x1a5c: 0x0309, 0x1a5d: 0x00a9, + 0x1a5e: 0x0311, 0x1a5f: 0x00b1, 0x1a60: 0x0319, 0x1a61: 0x0101, 0x1a62: 0x0321, 0x1a63: 0x0329, + 0x1a64: 0x0051, 0x1a65: 0x0339, 0x1a66: 0x0751, 0x1a67: 0x00b9, 0x1a68: 0x0089, 0x1a69: 0x0341, + 0x1a6a: 0x0349, 0x1a6b: 0x0391, 0x1a6c: 0x00c1, 0x1a6d: 0x0109, 0x1a6e: 0x00c9, 0x1a6f: 0x04b1, + 0x1a70: 0x0019, 0x1a71: 0x02e9, 0x1a72: 0x03d9, 0x1a73: 0x02f1, 0x1a74: 0x02f9, 0x1a75: 0x03f1, + 0x1a76: 0x0309, 0x1a77: 0x00a9, 0x1a78: 0x0311, 0x1a79: 0x00b1, 0x1a7a: 0x0319, 0x1a7b: 0x0101, + 0x1a7c: 0x0321, 0x1a7d: 0x0329, 0x1a7e: 0x0051, 0x1a7f: 0x0339, // Block 0x6a, offset 0x1a80 - 0x1a80: 0x01d9, 0x1a81: 0x0fa9, 0x1a82: 0x0fb9, 0x1a83: 0x1089, 0x1a84: 0x0279, 0x1a85: 0x0369, - 0x1a86: 0x0289, 0x1a87: 0x13d1, 0x1a88: 0x0039, 0x1a89: 0x0ee9, 0x1a8a: 0x1159, 0x1a8b: 0x0ef9, - 0x1a8c: 0x0f09, 0x1a8d: 0x1199, 0x1a8e: 0x0f31, 0x1a8f: 0x0249, 0x1a90: 0x0f41, 0x1a91: 0x0259, - 0x1a92: 0x0f51, 0x1a93: 0x0359, 0x1a94: 0x0f61, 0x1a95: 0x0f71, 0x1a96: 0x00d9, 0x1a97: 0x0f99, - 0x1a98: 0x2039, 0x1a99: 0x0269, 0x1a9a: 0x01d9, 0x1a9b: 0x0fa9, 0x1a9c: 0x0fb9, 0x1a9d: 0x1089, - 0x1a9e: 0x0279, 0x1a9f: 0x0369, 0x1aa0: 0x0289, 0x1aa1: 0x13d1, 0x1aa2: 0x0039, 0x1aa3: 0x0ee9, - 0x1aa4: 0x1159, 0x1aa5: 0x0ef9, 0x1aa6: 0x0f09, 0x1aa7: 0x1199, 0x1aa8: 0x0f31, 0x1aa9: 0x0249, - 0x1aaa: 0x0f41, 0x1aab: 0x0259, 0x1aac: 0x0f51, 0x1aad: 0x0359, 0x1aae: 0x0f61, 0x1aaf: 0x0f71, - 0x1ab0: 0x00d9, 0x1ab1: 0x0f99, 0x1ab2: 0x2039, 0x1ab3: 0x0269, 0x1ab4: 0x01d9, 0x1ab5: 0x0fa9, - 0x1ab6: 0x0fb9, 0x1ab7: 0x1089, 0x1ab8: 0x0279, 0x1ab9: 0x0369, 0x1aba: 0x0289, 0x1abb: 0x13d1, - 0x1abc: 0x0039, 0x1abd: 0x0ee9, 0x1abe: 0x1159, 0x1abf: 0x0ef9, + 0x1a80: 0x0751, 0x1a81: 0x00b9, 0x1a82: 0x0089, 0x1a83: 0x0341, 0x1a84: 0x0349, 0x1a85: 0x0391, + 0x1a86: 0x00c1, 0x1a87: 0x0109, 0x1a88: 0x00c9, 0x1a89: 0x04b1, 0x1a8a: 0x0019, 0x1a8b: 0x02e9, + 0x1a8c: 0x03d9, 0x1a8d: 0x02f1, 0x1a8e: 0x02f9, 0x1a8f: 0x03f1, 0x1a90: 0x0309, 0x1a91: 0x00a9, + 0x1a92: 0x0311, 0x1a93: 0x00b1, 0x1a94: 0x0319, 0x1a95: 0x0101, 0x1a96: 0x0321, 0x1a97: 0x0329, + 0x1a98: 0x0051, 0x1a99: 0x0339, 0x1a9a: 0x0751, 0x1a9b: 0x00b9, 0x1a9c: 0x0089, 0x1a9d: 0x0341, + 0x1a9e: 0x0349, 0x1a9f: 0x0391, 0x1aa0: 0x00c1, 0x1aa1: 0x0109, 0x1aa2: 0x00c9, 0x1aa3: 0x04b1, + 0x1aa4: 0x2279, 0x1aa5: 0x2281, 0x1aa6: 0x0040, 0x1aa7: 0x0040, 0x1aa8: 0x2289, 0x1aa9: 0x0399, + 0x1aaa: 0x03a1, 0x1aab: 0x03a9, 0x1aac: 0x2291, 0x1aad: 0x2299, 0x1aae: 0x22a1, 0x1aaf: 0x04d1, + 0x1ab0: 0x05f9, 0x1ab1: 0x22a9, 0x1ab2: 0x22b1, 0x1ab3: 0x22b9, 0x1ab4: 0x22c1, 0x1ab5: 0x22c9, + 0x1ab6: 0x22d1, 0x1ab7: 0x0799, 0x1ab8: 0x03c1, 0x1ab9: 0x04d1, 0x1aba: 0x22d9, 0x1abb: 0x22e1, + 0x1abc: 0x22e9, 0x1abd: 0x03b1, 0x1abe: 0x03b9, 0x1abf: 0x22f1, // Block 0x6b, offset 0x1ac0 - 0x1ac0: 0x0f09, 0x1ac1: 0x1199, 0x1ac2: 0x0f31, 0x1ac3: 0x0249, 0x1ac4: 0x0f41, 0x1ac5: 0x0259, - 0x1ac6: 0x0f51, 0x1ac7: 0x0359, 0x1ac8: 0x0f61, 0x1ac9: 0x0f71, 0x1aca: 0x00d9, 0x1acb: 0x0f99, - 0x1acc: 0x2039, 0x1acd: 0x0269, 0x1ace: 0x01d9, 0x1acf: 0x0fa9, 0x1ad0: 0x0fb9, 0x1ad1: 0x1089, - 0x1ad2: 0x0279, 0x1ad3: 0x0369, 0x1ad4: 0x0289, 0x1ad5: 0x13d1, 0x1ad6: 0x0039, 0x1ad7: 0x0ee9, - 0x1ad8: 0x1159, 0x1ad9: 0x0ef9, 0x1ada: 0x0f09, 0x1adb: 0x1199, 0x1adc: 0x0f31, 0x1add: 0x0249, - 0x1ade: 0x0f41, 0x1adf: 0x0259, 0x1ae0: 0x0f51, 0x1ae1: 0x0359, 0x1ae2: 0x0f61, 0x1ae3: 0x0f71, - 0x1ae4: 0x00d9, 0x1ae5: 0x0f99, 0x1ae6: 0x2039, 0x1ae7: 0x0269, 0x1ae8: 0x01d9, 0x1ae9: 0x0fa9, - 0x1aea: 0x0fb9, 0x1aeb: 0x1089, 0x1aec: 0x0279, 0x1aed: 0x0369, 0x1aee: 0x0289, 0x1aef: 0x13d1, - 0x1af0: 0x0039, 0x1af1: 0x0ee9, 0x1af2: 0x1159, 0x1af3: 0x0ef9, 0x1af4: 0x0f09, 0x1af5: 0x1199, - 0x1af6: 0x0f31, 0x1af7: 0x0249, 0x1af8: 0x0f41, 0x1af9: 0x0259, 0x1afa: 0x0f51, 0x1afb: 0x0359, - 0x1afc: 0x0f61, 0x1afd: 0x0f71, 0x1afe: 0x00d9, 0x1aff: 0x0f99, + 0x1ac0: 0x0769, 0x1ac1: 0x22f9, 0x1ac2: 0x2289, 0x1ac3: 0x0399, 0x1ac4: 0x03a1, 0x1ac5: 0x03a9, + 0x1ac6: 0x2291, 0x1ac7: 0x2299, 0x1ac8: 0x22a1, 0x1ac9: 0x04d1, 0x1aca: 0x05f9, 0x1acb: 0x22a9, + 0x1acc: 0x22b1, 0x1acd: 0x22b9, 0x1ace: 0x22c1, 0x1acf: 0x22c9, 0x1ad0: 0x22d1, 0x1ad1: 0x0799, + 0x1ad2: 0x03c1, 0x1ad3: 0x22d9, 0x1ad4: 0x22d9, 0x1ad5: 0x22e1, 0x1ad6: 0x22e9, 0x1ad7: 0x03b1, + 0x1ad8: 0x03b9, 0x1ad9: 0x22f1, 0x1ada: 0x0769, 0x1adb: 0x2301, 0x1adc: 0x2291, 0x1add: 0x04d1, + 0x1ade: 0x22a9, 0x1adf: 0x03b1, 0x1ae0: 0x03c1, 0x1ae1: 0x0799, 0x1ae2: 0x2289, 0x1ae3: 0x0399, + 0x1ae4: 0x03a1, 0x1ae5: 0x03a9, 0x1ae6: 0x2291, 0x1ae7: 0x2299, 0x1ae8: 0x22a1, 0x1ae9: 0x04d1, + 0x1aea: 0x05f9, 0x1aeb: 0x22a9, 0x1aec: 0x22b1, 0x1aed: 0x22b9, 0x1aee: 0x22c1, 0x1aef: 0x22c9, + 0x1af0: 0x22d1, 0x1af1: 0x0799, 0x1af2: 0x03c1, 0x1af3: 0x04d1, 0x1af4: 0x22d9, 0x1af5: 0x22e1, + 0x1af6: 0x22e9, 0x1af7: 0x03b1, 0x1af8: 0x03b9, 0x1af9: 0x22f1, 0x1afa: 0x0769, 0x1afb: 0x22f9, + 0x1afc: 0x2289, 0x1afd: 0x0399, 0x1afe: 0x03a1, 0x1aff: 0x03a9, // Block 0x6c, offset 0x1b00 - 0x1b00: 0x2039, 0x1b01: 0x0269, 0x1b02: 0x01d9, 0x1b03: 0x0fa9, 0x1b04: 0x0fb9, 0x1b05: 0x1089, - 0x1b06: 0x0279, 0x1b07: 0x0369, 0x1b08: 0x0289, 0x1b09: 0x13d1, 0x1b0a: 0x0039, 0x1b0b: 0x0ee9, - 0x1b0c: 0x1159, 0x1b0d: 0x0ef9, 0x1b0e: 0x0f09, 0x1b0f: 0x1199, 0x1b10: 0x0f31, 0x1b11: 0x0249, - 0x1b12: 0x0f41, 0x1b13: 0x0259, 0x1b14: 0x0f51, 0x1b15: 0x0359, 0x1b16: 0x0f61, 0x1b17: 0x0f71, - 0x1b18: 0x00d9, 0x1b19: 0x0f99, 0x1b1a: 0x2039, 0x1b1b: 0x0269, 0x1b1c: 0x01d9, 0x1b1d: 0x0fa9, - 0x1b1e: 0x0fb9, 0x1b1f: 0x1089, 0x1b20: 0x0279, 0x1b21: 0x0369, 0x1b22: 0x0289, 0x1b23: 0x13d1, - 0x1b24: 0xbad1, 0x1b25: 0xbae9, 0x1b26: 0x0040, 0x1b27: 0x0040, 0x1b28: 0xbb01, 0x1b29: 0x1099, - 0x1b2a: 0x10b1, 0x1b2b: 0x10c9, 0x1b2c: 0xbb19, 0x1b2d: 0xbb31, 0x1b2e: 0xbb49, 0x1b2f: 0x1429, - 0x1b30: 0x1a31, 0x1b31: 0xbb61, 0x1b32: 0xbb79, 0x1b33: 0xbb91, 0x1b34: 0xbba9, 0x1b35: 0xbbc1, - 0x1b36: 0xbbd9, 0x1b37: 0x2109, 0x1b38: 0x1111, 0x1b39: 0x1429, 0x1b3a: 0xbbf1, 0x1b3b: 0xbc09, - 0x1b3c: 0xbc21, 0x1b3d: 0x10e1, 0x1b3e: 0x10f9, 0x1b3f: 0xbc39, + 0x1b00: 0x2291, 0x1b01: 0x2299, 0x1b02: 0x22a1, 0x1b03: 0x04d1, 0x1b04: 0x05f9, 0x1b05: 0x22a9, + 0x1b06: 0x22b1, 0x1b07: 0x22b9, 0x1b08: 0x22c1, 0x1b09: 0x22c9, 0x1b0a: 0x22d1, 0x1b0b: 0x0799, + 0x1b0c: 0x03c1, 0x1b0d: 0x22d9, 0x1b0e: 0x22d9, 0x1b0f: 0x22e1, 0x1b10: 0x22e9, 0x1b11: 0x03b1, + 0x1b12: 0x03b9, 0x1b13: 0x22f1, 0x1b14: 0x0769, 0x1b15: 0x2301, 0x1b16: 0x2291, 0x1b17: 0x04d1, + 0x1b18: 0x22a9, 0x1b19: 0x03b1, 0x1b1a: 0x03c1, 0x1b1b: 0x0799, 0x1b1c: 0x2289, 0x1b1d: 0x0399, + 0x1b1e: 0x03a1, 0x1b1f: 0x03a9, 0x1b20: 0x2291, 0x1b21: 0x2299, 0x1b22: 0x22a1, 0x1b23: 0x04d1, + 0x1b24: 0x05f9, 0x1b25: 0x22a9, 0x1b26: 0x22b1, 0x1b27: 0x22b9, 0x1b28: 0x22c1, 0x1b29: 0x22c9, + 0x1b2a: 0x22d1, 0x1b2b: 0x0799, 0x1b2c: 0x03c1, 0x1b2d: 0x04d1, 0x1b2e: 0x22d9, 0x1b2f: 0x22e1, + 0x1b30: 0x22e9, 0x1b31: 0x03b1, 0x1b32: 0x03b9, 0x1b33: 0x22f1, 0x1b34: 0x0769, 0x1b35: 0x22f9, + 0x1b36: 0x2289, 0x1b37: 0x0399, 0x1b38: 0x03a1, 0x1b39: 0x03a9, 0x1b3a: 0x2291, 0x1b3b: 0x2299, + 0x1b3c: 0x22a1, 0x1b3d: 0x04d1, 0x1b3e: 0x05f9, 0x1b3f: 0x22a9, // Block 0x6d, offset 0x1b40 - 0x1b40: 0x2079, 0x1b41: 0xbc51, 0x1b42: 0xbb01, 0x1b43: 0x1099, 0x1b44: 0x10b1, 0x1b45: 0x10c9, - 0x1b46: 0xbb19, 0x1b47: 0xbb31, 0x1b48: 0xbb49, 0x1b49: 0x1429, 0x1b4a: 0x1a31, 0x1b4b: 0xbb61, - 0x1b4c: 0xbb79, 0x1b4d: 0xbb91, 0x1b4e: 0xbba9, 0x1b4f: 0xbbc1, 0x1b50: 0xbbd9, 0x1b51: 0x2109, - 0x1b52: 0x1111, 0x1b53: 0xbbf1, 0x1b54: 0xbbf1, 0x1b55: 0xbc09, 0x1b56: 0xbc21, 0x1b57: 0x10e1, - 0x1b58: 0x10f9, 0x1b59: 0xbc39, 0x1b5a: 0x2079, 0x1b5b: 0xbc71, 0x1b5c: 0xbb19, 0x1b5d: 0x1429, - 0x1b5e: 0xbb61, 0x1b5f: 0x10e1, 0x1b60: 0x1111, 0x1b61: 0x2109, 0x1b62: 0xbb01, 0x1b63: 0x1099, - 0x1b64: 0x10b1, 0x1b65: 0x10c9, 0x1b66: 0xbb19, 0x1b67: 0xbb31, 0x1b68: 0xbb49, 0x1b69: 0x1429, - 0x1b6a: 0x1a31, 0x1b6b: 0xbb61, 0x1b6c: 0xbb79, 0x1b6d: 0xbb91, 0x1b6e: 0xbba9, 0x1b6f: 0xbbc1, - 0x1b70: 0xbbd9, 0x1b71: 0x2109, 0x1b72: 0x1111, 0x1b73: 0x1429, 0x1b74: 0xbbf1, 0x1b75: 0xbc09, - 0x1b76: 0xbc21, 0x1b77: 0x10e1, 0x1b78: 0x10f9, 0x1b79: 0xbc39, 0x1b7a: 0x2079, 0x1b7b: 0xbc51, - 0x1b7c: 0xbb01, 0x1b7d: 0x1099, 0x1b7e: 0x10b1, 0x1b7f: 0x10c9, + 0x1b40: 0x22b1, 0x1b41: 0x22b9, 0x1b42: 0x22c1, 0x1b43: 0x22c9, 0x1b44: 0x22d1, 0x1b45: 0x0799, + 0x1b46: 0x03c1, 0x1b47: 0x22d9, 0x1b48: 0x22d9, 0x1b49: 0x22e1, 0x1b4a: 0x22e9, 0x1b4b: 0x03b1, + 0x1b4c: 0x03b9, 0x1b4d: 0x22f1, 0x1b4e: 0x0769, 0x1b4f: 0x2301, 0x1b50: 0x2291, 0x1b51: 0x04d1, + 0x1b52: 0x22a9, 0x1b53: 0x03b1, 0x1b54: 0x03c1, 0x1b55: 0x0799, 0x1b56: 0x2289, 0x1b57: 0x0399, + 0x1b58: 0x03a1, 0x1b59: 0x03a9, 0x1b5a: 0x2291, 0x1b5b: 0x2299, 0x1b5c: 0x22a1, 0x1b5d: 0x04d1, + 0x1b5e: 0x05f9, 0x1b5f: 0x22a9, 0x1b60: 0x22b1, 0x1b61: 0x22b9, 0x1b62: 0x22c1, 0x1b63: 0x22c9, + 0x1b64: 0x22d1, 0x1b65: 0x0799, 0x1b66: 0x03c1, 0x1b67: 0x04d1, 0x1b68: 0x22d9, 0x1b69: 0x22e1, + 0x1b6a: 0x22e9, 0x1b6b: 0x03b1, 0x1b6c: 0x03b9, 0x1b6d: 0x22f1, 0x1b6e: 0x0769, 0x1b6f: 0x22f9, + 0x1b70: 0x2289, 0x1b71: 0x0399, 0x1b72: 0x03a1, 0x1b73: 0x03a9, 0x1b74: 0x2291, 0x1b75: 0x2299, + 0x1b76: 0x22a1, 0x1b77: 0x04d1, 0x1b78: 0x05f9, 0x1b79: 0x22a9, 0x1b7a: 0x22b1, 0x1b7b: 0x22b9, + 0x1b7c: 0x22c1, 0x1b7d: 0x22c9, 0x1b7e: 0x22d1, 0x1b7f: 0x0799, // Block 0x6e, offset 0x1b80 - 0x1b80: 0xbb19, 0x1b81: 0xbb31, 0x1b82: 0xbb49, 0x1b83: 0x1429, 0x1b84: 0x1a31, 0x1b85: 0xbb61, - 0x1b86: 0xbb79, 0x1b87: 0xbb91, 0x1b88: 0xbba9, 0x1b89: 0xbbc1, 0x1b8a: 0xbbd9, 0x1b8b: 0x2109, - 0x1b8c: 0x1111, 0x1b8d: 0xbbf1, 0x1b8e: 0xbbf1, 0x1b8f: 0xbc09, 0x1b90: 0xbc21, 0x1b91: 0x10e1, - 0x1b92: 0x10f9, 0x1b93: 0xbc39, 0x1b94: 0x2079, 0x1b95: 0xbc71, 0x1b96: 0xbb19, 0x1b97: 0x1429, - 0x1b98: 0xbb61, 0x1b99: 0x10e1, 0x1b9a: 0x1111, 0x1b9b: 0x2109, 0x1b9c: 0xbb01, 0x1b9d: 0x1099, - 0x1b9e: 0x10b1, 0x1b9f: 0x10c9, 0x1ba0: 0xbb19, 0x1ba1: 0xbb31, 0x1ba2: 0xbb49, 0x1ba3: 0x1429, - 0x1ba4: 0x1a31, 0x1ba5: 0xbb61, 0x1ba6: 0xbb79, 0x1ba7: 0xbb91, 0x1ba8: 0xbba9, 0x1ba9: 0xbbc1, - 0x1baa: 0xbbd9, 0x1bab: 0x2109, 0x1bac: 0x1111, 0x1bad: 0x1429, 0x1bae: 0xbbf1, 0x1baf: 0xbc09, - 0x1bb0: 0xbc21, 0x1bb1: 0x10e1, 0x1bb2: 0x10f9, 0x1bb3: 0xbc39, 0x1bb4: 0x2079, 0x1bb5: 0xbc51, - 0x1bb6: 0xbb01, 0x1bb7: 0x1099, 0x1bb8: 0x10b1, 0x1bb9: 0x10c9, 0x1bba: 0xbb19, 0x1bbb: 0xbb31, - 0x1bbc: 0xbb49, 0x1bbd: 0x1429, 0x1bbe: 0x1a31, 0x1bbf: 0xbb61, + 0x1b80: 0x03c1, 0x1b81: 0x22d9, 0x1b82: 0x22d9, 0x1b83: 0x22e1, 0x1b84: 0x22e9, 0x1b85: 0x03b1, + 0x1b86: 0x03b9, 0x1b87: 0x22f1, 0x1b88: 0x0769, 0x1b89: 0x2301, 0x1b8a: 0x2291, 0x1b8b: 0x04d1, + 0x1b8c: 0x22a9, 0x1b8d: 0x03b1, 0x1b8e: 0x03c1, 0x1b8f: 0x0799, 0x1b90: 0x2289, 0x1b91: 0x0399, + 0x1b92: 0x03a1, 0x1b93: 0x03a9, 0x1b94: 0x2291, 0x1b95: 0x2299, 0x1b96: 0x22a1, 0x1b97: 0x04d1, + 0x1b98: 0x05f9, 0x1b99: 0x22a9, 0x1b9a: 0x22b1, 0x1b9b: 0x22b9, 0x1b9c: 0x22c1, 0x1b9d: 0x22c9, + 0x1b9e: 0x22d1, 0x1b9f: 0x0799, 0x1ba0: 0x03c1, 0x1ba1: 0x04d1, 0x1ba2: 0x22d9, 0x1ba3: 0x22e1, + 0x1ba4: 0x22e9, 0x1ba5: 0x03b1, 0x1ba6: 0x03b9, 0x1ba7: 0x22f1, 0x1ba8: 0x0769, 0x1ba9: 0x22f9, + 0x1baa: 0x2289, 0x1bab: 0x0399, 0x1bac: 0x03a1, 0x1bad: 0x03a9, 0x1bae: 0x2291, 0x1baf: 0x2299, + 0x1bb0: 0x22a1, 0x1bb1: 0x04d1, 0x1bb2: 0x05f9, 0x1bb3: 0x22a9, 0x1bb4: 0x22b1, 0x1bb5: 0x22b9, + 0x1bb6: 0x22c1, 0x1bb7: 0x22c9, 0x1bb8: 0x22d1, 0x1bb9: 0x0799, 0x1bba: 0x03c1, 0x1bbb: 0x22d9, + 0x1bbc: 0x22d9, 0x1bbd: 0x22e1, 0x1bbe: 0x22e9, 0x1bbf: 0x03b1, // Block 0x6f, offset 0x1bc0 - 0x1bc0: 0xbb79, 0x1bc1: 0xbb91, 0x1bc2: 0xbba9, 0x1bc3: 0xbbc1, 0x1bc4: 0xbbd9, 0x1bc5: 0x2109, - 0x1bc6: 0x1111, 0x1bc7: 0xbbf1, 0x1bc8: 0xbbf1, 0x1bc9: 0xbc09, 0x1bca: 0xbc21, 0x1bcb: 0x10e1, - 0x1bcc: 0x10f9, 0x1bcd: 0xbc39, 0x1bce: 0x2079, 0x1bcf: 0xbc71, 0x1bd0: 0xbb19, 0x1bd1: 0x1429, - 0x1bd2: 0xbb61, 0x1bd3: 0x10e1, 0x1bd4: 0x1111, 0x1bd5: 0x2109, 0x1bd6: 0xbb01, 0x1bd7: 0x1099, - 0x1bd8: 0x10b1, 0x1bd9: 0x10c9, 0x1bda: 0xbb19, 0x1bdb: 0xbb31, 0x1bdc: 0xbb49, 0x1bdd: 0x1429, - 0x1bde: 0x1a31, 0x1bdf: 0xbb61, 0x1be0: 0xbb79, 0x1be1: 0xbb91, 0x1be2: 0xbba9, 0x1be3: 0xbbc1, - 0x1be4: 0xbbd9, 0x1be5: 0x2109, 0x1be6: 0x1111, 0x1be7: 0x1429, 0x1be8: 0xbbf1, 0x1be9: 0xbc09, - 0x1bea: 0xbc21, 0x1beb: 0x10e1, 0x1bec: 0x10f9, 0x1bed: 0xbc39, 0x1bee: 0x2079, 0x1bef: 0xbc51, - 0x1bf0: 0xbb01, 0x1bf1: 0x1099, 0x1bf2: 0x10b1, 0x1bf3: 0x10c9, 0x1bf4: 0xbb19, 0x1bf5: 0xbb31, - 0x1bf6: 0xbb49, 0x1bf7: 0x1429, 0x1bf8: 0x1a31, 0x1bf9: 0xbb61, 0x1bfa: 0xbb79, 0x1bfb: 0xbb91, - 0x1bfc: 0xbba9, 0x1bfd: 0xbbc1, 0x1bfe: 0xbbd9, 0x1bff: 0x2109, + 0x1bc0: 0x03b9, 0x1bc1: 0x22f1, 0x1bc2: 0x0769, 0x1bc3: 0x2301, 0x1bc4: 0x2291, 0x1bc5: 0x04d1, + 0x1bc6: 0x22a9, 0x1bc7: 0x03b1, 0x1bc8: 0x03c1, 0x1bc9: 0x0799, 0x1bca: 0x2309, 0x1bcb: 0x2309, + 0x1bcc: 0x0040, 0x1bcd: 0x0040, 0x1bce: 0x06e1, 0x1bcf: 0x0049, 0x1bd0: 0x0029, 0x1bd1: 0x0031, + 0x1bd2: 0x06e9, 0x1bd3: 0x06f1, 0x1bd4: 0x06f9, 0x1bd5: 0x0701, 0x1bd6: 0x0709, 0x1bd7: 0x0711, + 0x1bd8: 0x06e1, 0x1bd9: 0x0049, 0x1bda: 0x0029, 0x1bdb: 0x0031, 0x1bdc: 0x06e9, 0x1bdd: 0x06f1, + 0x1bde: 0x06f9, 0x1bdf: 0x0701, 0x1be0: 0x0709, 0x1be1: 0x0711, 0x1be2: 0x06e1, 0x1be3: 0x0049, + 0x1be4: 0x0029, 0x1be5: 0x0031, 0x1be6: 0x06e9, 0x1be7: 0x06f1, 0x1be8: 0x06f9, 0x1be9: 0x0701, + 0x1bea: 0x0709, 0x1beb: 0x0711, 0x1bec: 0x06e1, 0x1bed: 0x0049, 0x1bee: 0x0029, 0x1bef: 0x0031, + 0x1bf0: 0x06e9, 0x1bf1: 0x06f1, 0x1bf2: 0x06f9, 0x1bf3: 0x0701, 0x1bf4: 0x0709, 0x1bf5: 0x0711, + 0x1bf6: 0x06e1, 0x1bf7: 0x0049, 0x1bf8: 0x0029, 0x1bf9: 0x0031, 0x1bfa: 0x06e9, 0x1bfb: 0x06f1, + 0x1bfc: 0x06f9, 0x1bfd: 0x0701, 0x1bfe: 0x0709, 0x1bff: 0x0711, // Block 0x70, offset 0x1c00 - 0x1c00: 0x1111, 0x1c01: 0xbbf1, 0x1c02: 0xbbf1, 0x1c03: 0xbc09, 0x1c04: 0xbc21, 0x1c05: 0x10e1, - 0x1c06: 0x10f9, 0x1c07: 0xbc39, 0x1c08: 0x2079, 0x1c09: 0xbc71, 0x1c0a: 0xbb19, 0x1c0b: 0x1429, - 0x1c0c: 0xbb61, 0x1c0d: 0x10e1, 0x1c0e: 0x1111, 0x1c0f: 0x2109, 0x1c10: 0xbb01, 0x1c11: 0x1099, - 0x1c12: 0x10b1, 0x1c13: 0x10c9, 0x1c14: 0xbb19, 0x1c15: 0xbb31, 0x1c16: 0xbb49, 0x1c17: 0x1429, - 0x1c18: 0x1a31, 0x1c19: 0xbb61, 0x1c1a: 0xbb79, 0x1c1b: 0xbb91, 0x1c1c: 0xbba9, 0x1c1d: 0xbbc1, - 0x1c1e: 0xbbd9, 0x1c1f: 0x2109, 0x1c20: 0x1111, 0x1c21: 0x1429, 0x1c22: 0xbbf1, 0x1c23: 0xbc09, - 0x1c24: 0xbc21, 0x1c25: 0x10e1, 0x1c26: 0x10f9, 0x1c27: 0xbc39, 0x1c28: 0x2079, 0x1c29: 0xbc51, - 0x1c2a: 0xbb01, 0x1c2b: 0x1099, 0x1c2c: 0x10b1, 0x1c2d: 0x10c9, 0x1c2e: 0xbb19, 0x1c2f: 0xbb31, - 0x1c30: 0xbb49, 0x1c31: 0x1429, 0x1c32: 0x1a31, 0x1c33: 0xbb61, 0x1c34: 0xbb79, 0x1c35: 0xbb91, - 0x1c36: 0xbba9, 0x1c37: 0xbbc1, 0x1c38: 0xbbd9, 0x1c39: 0x2109, 0x1c3a: 0x1111, 0x1c3b: 0xbbf1, - 0x1c3c: 0xbbf1, 0x1c3d: 0xbc09, 0x1c3e: 0xbc21, 0x1c3f: 0x10e1, + 0x1c00: 0xe115, 0x1c01: 0xe115, 0x1c02: 0xe135, 0x1c03: 0xe135, 0x1c04: 0xe115, 0x1c05: 0xe115, + 0x1c06: 0xe175, 0x1c07: 0xe175, 0x1c08: 0xe115, 0x1c09: 0xe115, 0x1c0a: 0xe135, 0x1c0b: 0xe135, + 0x1c0c: 0xe115, 0x1c0d: 0xe115, 0x1c0e: 0xe1f5, 0x1c0f: 0xe1f5, 0x1c10: 0xe115, 0x1c11: 0xe115, + 0x1c12: 0xe135, 0x1c13: 0xe135, 0x1c14: 0xe115, 0x1c15: 0xe115, 0x1c16: 0xe175, 0x1c17: 0xe175, + 0x1c18: 0xe115, 0x1c19: 0xe115, 0x1c1a: 0xe135, 0x1c1b: 0xe135, 0x1c1c: 0xe115, 0x1c1d: 0xe115, + 0x1c1e: 0x8b3d, 0x1c1f: 0x8b3d, 0x1c20: 0x04b5, 0x1c21: 0x04b5, 0x1c22: 0x0a08, 0x1c23: 0x0a08, + 0x1c24: 0x0a08, 0x1c25: 0x0a08, 0x1c26: 0x0a08, 0x1c27: 0x0a08, 0x1c28: 0x0a08, 0x1c29: 0x0a08, + 0x1c2a: 0x0a08, 0x1c2b: 0x0a08, 0x1c2c: 0x0a08, 0x1c2d: 0x0a08, 0x1c2e: 0x0a08, 0x1c2f: 0x0a08, + 0x1c30: 0x0a08, 0x1c31: 0x0a08, 0x1c32: 0x0a08, 0x1c33: 0x0a08, 0x1c34: 0x0a08, 0x1c35: 0x0a08, + 0x1c36: 0x0a08, 0x1c37: 0x0a08, 0x1c38: 0x0a08, 0x1c39: 0x0a08, 0x1c3a: 0x0a08, 0x1c3b: 0x0a08, + 0x1c3c: 0x0a08, 0x1c3d: 0x0a08, 0x1c3e: 0x0a08, 0x1c3f: 0x0a08, // Block 0x71, offset 0x1c40 - 0x1c40: 0x10f9, 0x1c41: 0xbc39, 0x1c42: 0x2079, 0x1c43: 0xbc71, 0x1c44: 0xbb19, 0x1c45: 0x1429, - 0x1c46: 0xbb61, 0x1c47: 0x10e1, 0x1c48: 0x1111, 0x1c49: 0x2109, 0x1c4a: 0xbc91, 0x1c4b: 0xbc91, - 0x1c4c: 0x0040, 0x1c4d: 0x0040, 0x1c4e: 0x1f41, 0x1c4f: 0x00c9, 0x1c50: 0x0069, 0x1c51: 0x0079, - 0x1c52: 0x1f51, 0x1c53: 0x1f61, 0x1c54: 0x1f71, 0x1c55: 0x1f81, 0x1c56: 0x1f91, 0x1c57: 0x1fa1, - 0x1c58: 0x1f41, 0x1c59: 0x00c9, 0x1c5a: 0x0069, 0x1c5b: 0x0079, 0x1c5c: 0x1f51, 0x1c5d: 0x1f61, - 0x1c5e: 0x1f71, 0x1c5f: 0x1f81, 0x1c60: 0x1f91, 0x1c61: 0x1fa1, 0x1c62: 0x1f41, 0x1c63: 0x00c9, - 0x1c64: 0x0069, 0x1c65: 0x0079, 0x1c66: 0x1f51, 0x1c67: 0x1f61, 0x1c68: 0x1f71, 0x1c69: 0x1f81, - 0x1c6a: 0x1f91, 0x1c6b: 0x1fa1, 0x1c6c: 0x1f41, 0x1c6d: 0x00c9, 0x1c6e: 0x0069, 0x1c6f: 0x0079, - 0x1c70: 0x1f51, 0x1c71: 0x1f61, 0x1c72: 0x1f71, 0x1c73: 0x1f81, 0x1c74: 0x1f91, 0x1c75: 0x1fa1, - 0x1c76: 0x1f41, 0x1c77: 0x00c9, 0x1c78: 0x0069, 0x1c79: 0x0079, 0x1c7a: 0x1f51, 0x1c7b: 0x1f61, - 0x1c7c: 0x1f71, 0x1c7d: 0x1f81, 0x1c7e: 0x1f91, 0x1c7f: 0x1fa1, + 0x1c40: 0x20b1, 0x1c41: 0x20b9, 0x1c42: 0x20d9, 0x1c43: 0x20f1, 0x1c44: 0x0040, 0x1c45: 0x2189, + 0x1c46: 0x2109, 0x1c47: 0x20e1, 0x1c48: 0x2131, 0x1c49: 0x2191, 0x1c4a: 0x2161, 0x1c4b: 0x2169, + 0x1c4c: 0x2171, 0x1c4d: 0x2179, 0x1c4e: 0x2111, 0x1c4f: 0x2141, 0x1c50: 0x2151, 0x1c51: 0x2121, + 0x1c52: 0x2159, 0x1c53: 0x2101, 0x1c54: 0x2119, 0x1c55: 0x20c9, 0x1c56: 0x20d1, 0x1c57: 0x20e9, + 0x1c58: 0x20f9, 0x1c59: 0x2129, 0x1c5a: 0x2139, 0x1c5b: 0x2149, 0x1c5c: 0x2311, 0x1c5d: 0x1689, + 0x1c5e: 0x2319, 0x1c5f: 0x2321, 0x1c60: 0x0040, 0x1c61: 0x20b9, 0x1c62: 0x20d9, 0x1c63: 0x0040, + 0x1c64: 0x2181, 0x1c65: 0x0040, 0x1c66: 0x0040, 0x1c67: 0x20e1, 0x1c68: 0x0040, 0x1c69: 0x2191, + 0x1c6a: 0x2161, 0x1c6b: 0x2169, 0x1c6c: 0x2171, 0x1c6d: 0x2179, 0x1c6e: 0x2111, 0x1c6f: 0x2141, + 0x1c70: 0x2151, 0x1c71: 0x2121, 0x1c72: 0x2159, 0x1c73: 0x0040, 0x1c74: 0x2119, 0x1c75: 0x20c9, + 0x1c76: 0x20d1, 0x1c77: 0x20e9, 0x1c78: 0x0040, 0x1c79: 0x2129, 0x1c7a: 0x0040, 0x1c7b: 0x2149, + 0x1c7c: 0x0040, 0x1c7d: 0x0040, 0x1c7e: 0x0040, 0x1c7f: 0x0040, // Block 0x72, offset 0x1c80 - 0x1c80: 0xe115, 0x1c81: 0xe115, 0x1c82: 0xe135, 0x1c83: 0xe135, 0x1c84: 0xe115, 0x1c85: 0xe115, - 0x1c86: 0xe175, 0x1c87: 0xe175, 0x1c88: 0xe115, 0x1c89: 0xe115, 0x1c8a: 0xe135, 0x1c8b: 0xe135, - 0x1c8c: 0xe115, 0x1c8d: 0xe115, 0x1c8e: 0xe1f5, 0x1c8f: 0xe1f5, 0x1c90: 0xe115, 0x1c91: 0xe115, - 0x1c92: 0xe135, 0x1c93: 0xe135, 0x1c94: 0xe115, 0x1c95: 0xe115, 0x1c96: 0xe175, 0x1c97: 0xe175, - 0x1c98: 0xe115, 0x1c99: 0xe115, 0x1c9a: 0xe135, 0x1c9b: 0xe135, 0x1c9c: 0xe115, 0x1c9d: 0xe115, - 0x1c9e: 0x8b3d, 0x1c9f: 0x8b3d, 0x1ca0: 0x04b5, 0x1ca1: 0x04b5, 0x1ca2: 0x0a08, 0x1ca3: 0x0a08, - 0x1ca4: 0x0a08, 0x1ca5: 0x0a08, 0x1ca6: 0x0a08, 0x1ca7: 0x0a08, 0x1ca8: 0x0a08, 0x1ca9: 0x0a08, - 0x1caa: 0x0a08, 0x1cab: 0x0a08, 0x1cac: 0x0a08, 0x1cad: 0x0a08, 0x1cae: 0x0a08, 0x1caf: 0x0a08, - 0x1cb0: 0x0a08, 0x1cb1: 0x0a08, 0x1cb2: 0x0a08, 0x1cb3: 0x0a08, 0x1cb4: 0x0a08, 0x1cb5: 0x0a08, - 0x1cb6: 0x0a08, 0x1cb7: 0x0a08, 0x1cb8: 0x0a08, 0x1cb9: 0x0a08, 0x1cba: 0x0a08, 0x1cbb: 0x0a08, - 0x1cbc: 0x0a08, 0x1cbd: 0x0a08, 0x1cbe: 0x0a08, 0x1cbf: 0x0a08, + 0x1c80: 0x0040, 0x1c81: 0x0040, 0x1c82: 0x20d9, 0x1c83: 0x0040, 0x1c84: 0x0040, 0x1c85: 0x0040, + 0x1c86: 0x0040, 0x1c87: 0x20e1, 0x1c88: 0x0040, 0x1c89: 0x2191, 0x1c8a: 0x0040, 0x1c8b: 0x2169, + 0x1c8c: 0x0040, 0x1c8d: 0x2179, 0x1c8e: 0x2111, 0x1c8f: 0x2141, 0x1c90: 0x0040, 0x1c91: 0x2121, + 0x1c92: 0x2159, 0x1c93: 0x0040, 0x1c94: 0x2119, 0x1c95: 0x0040, 0x1c96: 0x0040, 0x1c97: 0x20e9, + 0x1c98: 0x0040, 0x1c99: 0x2129, 0x1c9a: 0x0040, 0x1c9b: 0x2149, 0x1c9c: 0x0040, 0x1c9d: 0x1689, + 0x1c9e: 0x0040, 0x1c9f: 0x2321, 0x1ca0: 0x0040, 0x1ca1: 0x20b9, 0x1ca2: 0x20d9, 0x1ca3: 0x0040, + 0x1ca4: 0x2181, 0x1ca5: 0x0040, 0x1ca6: 0x0040, 0x1ca7: 0x20e1, 0x1ca8: 0x2131, 0x1ca9: 0x2191, + 0x1caa: 0x2161, 0x1cab: 0x0040, 0x1cac: 0x2171, 0x1cad: 0x2179, 0x1cae: 0x2111, 0x1caf: 0x2141, + 0x1cb0: 0x2151, 0x1cb1: 0x2121, 0x1cb2: 0x2159, 0x1cb3: 0x0040, 0x1cb4: 0x2119, 0x1cb5: 0x20c9, + 0x1cb6: 0x20d1, 0x1cb7: 0x20e9, 0x1cb8: 0x0040, 0x1cb9: 0x2129, 0x1cba: 0x2139, 0x1cbb: 0x2149, + 0x1cbc: 0x2311, 0x1cbd: 0x0040, 0x1cbe: 0x2319, 0x1cbf: 0x0040, // Block 0x73, offset 0x1cc0 - 0x1cc0: 0xb1d9, 0x1cc1: 0xb1f1, 0x1cc2: 0xb251, 0x1cc3: 0xb299, 0x1cc4: 0x0040, 0x1cc5: 0xb461, - 0x1cc6: 0xb2e1, 0x1cc7: 0xb269, 0x1cc8: 0xb359, 0x1cc9: 0xb479, 0x1cca: 0xb3e9, 0x1ccb: 0xb401, - 0x1ccc: 0xb419, 0x1ccd: 0xb431, 0x1cce: 0xb2f9, 0x1ccf: 0xb389, 0x1cd0: 0xb3b9, 0x1cd1: 0xb329, - 0x1cd2: 0xb3d1, 0x1cd3: 0xb2c9, 0x1cd4: 0xb311, 0x1cd5: 0xb221, 0x1cd6: 0xb239, 0x1cd7: 0xb281, - 0x1cd8: 0xb2b1, 0x1cd9: 0xb341, 0x1cda: 0xb371, 0x1cdb: 0xb3a1, 0x1cdc: 0xbca9, 0x1cdd: 0x7999, - 0x1cde: 0xbcc1, 0x1cdf: 0xbcd9, 0x1ce0: 0x0040, 0x1ce1: 0xb1f1, 0x1ce2: 0xb251, 0x1ce3: 0x0040, - 0x1ce4: 0xb449, 0x1ce5: 0x0040, 0x1ce6: 0x0040, 0x1ce7: 0xb269, 0x1ce8: 0x0040, 0x1ce9: 0xb479, - 0x1cea: 0xb3e9, 0x1ceb: 0xb401, 0x1cec: 0xb419, 0x1ced: 0xb431, 0x1cee: 0xb2f9, 0x1cef: 0xb389, - 0x1cf0: 0xb3b9, 0x1cf1: 0xb329, 0x1cf2: 0xb3d1, 0x1cf3: 0x0040, 0x1cf4: 0xb311, 0x1cf5: 0xb221, - 0x1cf6: 0xb239, 0x1cf7: 0xb281, 0x1cf8: 0x0040, 0x1cf9: 0xb341, 0x1cfa: 0x0040, 0x1cfb: 0xb3a1, + 0x1cc0: 0x20b1, 0x1cc1: 0x20b9, 0x1cc2: 0x20d9, 0x1cc3: 0x20f1, 0x1cc4: 0x2181, 0x1cc5: 0x2189, + 0x1cc6: 0x2109, 0x1cc7: 0x20e1, 0x1cc8: 0x2131, 0x1cc9: 0x2191, 0x1cca: 0x0040, 0x1ccb: 0x2169, + 0x1ccc: 0x2171, 0x1ccd: 0x2179, 0x1cce: 0x2111, 0x1ccf: 0x2141, 0x1cd0: 0x2151, 0x1cd1: 0x2121, + 0x1cd2: 0x2159, 0x1cd3: 0x2101, 0x1cd4: 0x2119, 0x1cd5: 0x20c9, 0x1cd6: 0x20d1, 0x1cd7: 0x20e9, + 0x1cd8: 0x20f9, 0x1cd9: 0x2129, 0x1cda: 0x2139, 0x1cdb: 0x2149, 0x1cdc: 0x0040, 0x1cdd: 0x0040, + 0x1cde: 0x0040, 0x1cdf: 0x0040, 0x1ce0: 0x0040, 0x1ce1: 0x20b9, 0x1ce2: 0x20d9, 0x1ce3: 0x20f1, + 0x1ce4: 0x0040, 0x1ce5: 0x2189, 0x1ce6: 0x2109, 0x1ce7: 0x20e1, 0x1ce8: 0x2131, 0x1ce9: 0x2191, + 0x1cea: 0x0040, 0x1ceb: 0x2169, 0x1cec: 0x2171, 0x1ced: 0x2179, 0x1cee: 0x2111, 0x1cef: 0x2141, + 0x1cf0: 0x2151, 0x1cf1: 0x2121, 0x1cf2: 0x2159, 0x1cf3: 0x2101, 0x1cf4: 0x2119, 0x1cf5: 0x20c9, + 0x1cf6: 0x20d1, 0x1cf7: 0x20e9, 0x1cf8: 0x20f9, 0x1cf9: 0x2129, 0x1cfa: 0x2139, 0x1cfb: 0x2149, 0x1cfc: 0x0040, 0x1cfd: 0x0040, 0x1cfe: 0x0040, 0x1cff: 0x0040, // Block 0x74, offset 0x1d00 - 0x1d00: 0x0040, 0x1d01: 0x0040, 0x1d02: 0xb251, 0x1d03: 0x0040, 0x1d04: 0x0040, 0x1d05: 0x0040, - 0x1d06: 0x0040, 0x1d07: 0xb269, 0x1d08: 0x0040, 0x1d09: 0xb479, 0x1d0a: 0x0040, 0x1d0b: 0xb401, - 0x1d0c: 0x0040, 0x1d0d: 0xb431, 0x1d0e: 0xb2f9, 0x1d0f: 0xb389, 0x1d10: 0x0040, 0x1d11: 0xb329, - 0x1d12: 0xb3d1, 0x1d13: 0x0040, 0x1d14: 0xb311, 0x1d15: 0x0040, 0x1d16: 0x0040, 0x1d17: 0xb281, - 0x1d18: 0x0040, 0x1d19: 0xb341, 0x1d1a: 0x0040, 0x1d1b: 0xb3a1, 0x1d1c: 0x0040, 0x1d1d: 0x7999, - 0x1d1e: 0x0040, 0x1d1f: 0xbcd9, 0x1d20: 0x0040, 0x1d21: 0xb1f1, 0x1d22: 0xb251, 0x1d23: 0x0040, - 0x1d24: 0xb449, 0x1d25: 0x0040, 0x1d26: 0x0040, 0x1d27: 0xb269, 0x1d28: 0xb359, 0x1d29: 0xb479, - 0x1d2a: 0xb3e9, 0x1d2b: 0x0040, 0x1d2c: 0xb419, 0x1d2d: 0xb431, 0x1d2e: 0xb2f9, 0x1d2f: 0xb389, - 0x1d30: 0xb3b9, 0x1d31: 0xb329, 0x1d32: 0xb3d1, 0x1d33: 0x0040, 0x1d34: 0xb311, 0x1d35: 0xb221, - 0x1d36: 0xb239, 0x1d37: 0xb281, 0x1d38: 0x0040, 0x1d39: 0xb341, 0x1d3a: 0xb371, 0x1d3b: 0xb3a1, - 0x1d3c: 0xbca9, 0x1d3d: 0x0040, 0x1d3e: 0xbcc1, 0x1d3f: 0x0040, + 0x1d00: 0x0040, 0x1d01: 0x232a, 0x1d02: 0x2332, 0x1d03: 0x233a, 0x1d04: 0x2342, 0x1d05: 0x234a, + 0x1d06: 0x2352, 0x1d07: 0x235a, 0x1d08: 0x2362, 0x1d09: 0x236a, 0x1d0a: 0x2372, 0x1d0b: 0x0018, + 0x1d0c: 0x0018, 0x1d0d: 0x0018, 0x1d0e: 0x0018, 0x1d0f: 0x0018, 0x1d10: 0x237a, 0x1d11: 0x2382, + 0x1d12: 0x238a, 0x1d13: 0x2392, 0x1d14: 0x239a, 0x1d15: 0x23a2, 0x1d16: 0x23aa, 0x1d17: 0x23b2, + 0x1d18: 0x23ba, 0x1d19: 0x23c2, 0x1d1a: 0x23ca, 0x1d1b: 0x23d2, 0x1d1c: 0x23da, 0x1d1d: 0x23e2, + 0x1d1e: 0x23ea, 0x1d1f: 0x23f2, 0x1d20: 0x23fa, 0x1d21: 0x2402, 0x1d22: 0x240a, 0x1d23: 0x2412, + 0x1d24: 0x241a, 0x1d25: 0x2422, 0x1d26: 0x242a, 0x1d27: 0x2432, 0x1d28: 0x243a, 0x1d29: 0x2442, + 0x1d2a: 0x2449, 0x1d2b: 0x03d9, 0x1d2c: 0x00b9, 0x1d2d: 0x1239, 0x1d2e: 0x2451, 0x1d2f: 0x0018, + 0x1d30: 0x0019, 0x1d31: 0x02e9, 0x1d32: 0x03d9, 0x1d33: 0x02f1, 0x1d34: 0x02f9, 0x1d35: 0x03f1, + 0x1d36: 0x0309, 0x1d37: 0x00a9, 0x1d38: 0x0311, 0x1d39: 0x00b1, 0x1d3a: 0x0319, 0x1d3b: 0x0101, + 0x1d3c: 0x0321, 0x1d3d: 0x0329, 0x1d3e: 0x0051, 0x1d3f: 0x0339, // Block 0x75, offset 0x1d40 - 0x1d40: 0xb1d9, 0x1d41: 0xb1f1, 0x1d42: 0xb251, 0x1d43: 0xb299, 0x1d44: 0xb449, 0x1d45: 0xb461, - 0x1d46: 0xb2e1, 0x1d47: 0xb269, 0x1d48: 0xb359, 0x1d49: 0xb479, 0x1d4a: 0x0040, 0x1d4b: 0xb401, - 0x1d4c: 0xb419, 0x1d4d: 0xb431, 0x1d4e: 0xb2f9, 0x1d4f: 0xb389, 0x1d50: 0xb3b9, 0x1d51: 0xb329, - 0x1d52: 0xb3d1, 0x1d53: 0xb2c9, 0x1d54: 0xb311, 0x1d55: 0xb221, 0x1d56: 0xb239, 0x1d57: 0xb281, - 0x1d58: 0xb2b1, 0x1d59: 0xb341, 0x1d5a: 0xb371, 0x1d5b: 0xb3a1, 0x1d5c: 0x0040, 0x1d5d: 0x0040, - 0x1d5e: 0x0040, 0x1d5f: 0x0040, 0x1d60: 0x0040, 0x1d61: 0xb1f1, 0x1d62: 0xb251, 0x1d63: 0xb299, - 0x1d64: 0x0040, 0x1d65: 0xb461, 0x1d66: 0xb2e1, 0x1d67: 0xb269, 0x1d68: 0xb359, 0x1d69: 0xb479, - 0x1d6a: 0x0040, 0x1d6b: 0xb401, 0x1d6c: 0xb419, 0x1d6d: 0xb431, 0x1d6e: 0xb2f9, 0x1d6f: 0xb389, - 0x1d70: 0xb3b9, 0x1d71: 0xb329, 0x1d72: 0xb3d1, 0x1d73: 0xb2c9, 0x1d74: 0xb311, 0x1d75: 0xb221, - 0x1d76: 0xb239, 0x1d77: 0xb281, 0x1d78: 0xb2b1, 0x1d79: 0xb341, 0x1d7a: 0xb371, 0x1d7b: 0xb3a1, - 0x1d7c: 0x0040, 0x1d7d: 0x0040, 0x1d7e: 0x0040, 0x1d7f: 0x0040, + 0x1d40: 0x0751, 0x1d41: 0x00b9, 0x1d42: 0x0089, 0x1d43: 0x0341, 0x1d44: 0x0349, 0x1d45: 0x0391, + 0x1d46: 0x00c1, 0x1d47: 0x0109, 0x1d48: 0x00c9, 0x1d49: 0x04b1, 0x1d4a: 0x2459, 0x1d4b: 0x11f9, + 0x1d4c: 0x2461, 0x1d4d: 0x04d9, 0x1d4e: 0x2469, 0x1d4f: 0x2471, 0x1d50: 0x0018, 0x1d51: 0x0018, + 0x1d52: 0x0018, 0x1d53: 0x0018, 0x1d54: 0x0018, 0x1d55: 0x0018, 0x1d56: 0x0018, 0x1d57: 0x0018, + 0x1d58: 0x0018, 0x1d59: 0x0018, 0x1d5a: 0x0018, 0x1d5b: 0x0018, 0x1d5c: 0x0018, 0x1d5d: 0x0018, + 0x1d5e: 0x0018, 0x1d5f: 0x0018, 0x1d60: 0x0018, 0x1d61: 0x0018, 0x1d62: 0x0018, 0x1d63: 0x0018, + 0x1d64: 0x0018, 0x1d65: 0x0018, 0x1d66: 0x0018, 0x1d67: 0x0018, 0x1d68: 0x0018, 0x1d69: 0x0018, + 0x1d6a: 0x2479, 0x1d6b: 0x2481, 0x1d6c: 0x2489, 0x1d6d: 0x0018, 0x1d6e: 0x0018, 0x1d6f: 0x0018, + 0x1d70: 0x0018, 0x1d71: 0x0018, 0x1d72: 0x0018, 0x1d73: 0x0018, 0x1d74: 0x0018, 0x1d75: 0x0018, + 0x1d76: 0x0018, 0x1d77: 0x0018, 0x1d78: 0x0018, 0x1d79: 0x0018, 0x1d7a: 0x0018, 0x1d7b: 0x0018, + 0x1d7c: 0x0018, 0x1d7d: 0x0018, 0x1d7e: 0x0018, 0x1d7f: 0x0018, // Block 0x76, offset 0x1d80 - 0x1d80: 0x0040, 0x1d81: 0xbcf2, 0x1d82: 0xbd0a, 0x1d83: 0xbd22, 0x1d84: 0xbd3a, 0x1d85: 0xbd52, - 0x1d86: 0xbd6a, 0x1d87: 0xbd82, 0x1d88: 0xbd9a, 0x1d89: 0xbdb2, 0x1d8a: 0xbdca, 0x1d8b: 0x0018, - 0x1d8c: 0x0018, 0x1d8d: 0x0018, 0x1d8e: 0x0018, 0x1d8f: 0x0018, 0x1d90: 0xbde2, 0x1d91: 0xbe02, - 0x1d92: 0xbe22, 0x1d93: 0xbe42, 0x1d94: 0xbe62, 0x1d95: 0xbe82, 0x1d96: 0xbea2, 0x1d97: 0xbec2, - 0x1d98: 0xbee2, 0x1d99: 0xbf02, 0x1d9a: 0xbf22, 0x1d9b: 0xbf42, 0x1d9c: 0xbf62, 0x1d9d: 0xbf82, - 0x1d9e: 0xbfa2, 0x1d9f: 0xbfc2, 0x1da0: 0xbfe2, 0x1da1: 0xc002, 0x1da2: 0xc022, 0x1da3: 0xc042, - 0x1da4: 0xc062, 0x1da5: 0xc082, 0x1da6: 0xc0a2, 0x1da7: 0xc0c2, 0x1da8: 0xc0e2, 0x1da9: 0xc102, - 0x1daa: 0xc121, 0x1dab: 0x1159, 0x1dac: 0x0269, 0x1dad: 0x66a9, 0x1dae: 0xc161, 0x1daf: 0x0018, - 0x1db0: 0x0039, 0x1db1: 0x0ee9, 0x1db2: 0x1159, 0x1db3: 0x0ef9, 0x1db4: 0x0f09, 0x1db5: 0x1199, - 0x1db6: 0x0f31, 0x1db7: 0x0249, 0x1db8: 0x0f41, 0x1db9: 0x0259, 0x1dba: 0x0f51, 0x1dbb: 0x0359, - 0x1dbc: 0x0f61, 0x1dbd: 0x0f71, 0x1dbe: 0x00d9, 0x1dbf: 0x0f99, + 0x1d80: 0x2499, 0x1d81: 0x24a1, 0x1d82: 0x24a9, 0x1d83: 0x0040, 0x1d84: 0x0040, 0x1d85: 0x0040, + 0x1d86: 0x0040, 0x1d87: 0x0040, 0x1d88: 0x0040, 0x1d89: 0x0040, 0x1d8a: 0x0040, 0x1d8b: 0x0040, + 0x1d8c: 0x0040, 0x1d8d: 0x0040, 0x1d8e: 0x0040, 0x1d8f: 0x0040, 0x1d90: 0x24b1, 0x1d91: 0x24b9, + 0x1d92: 0x24c1, 0x1d93: 0x24c9, 0x1d94: 0x24d1, 0x1d95: 0x24d9, 0x1d96: 0x24e1, 0x1d97: 0x24e9, + 0x1d98: 0x24f1, 0x1d99: 0x24f9, 0x1d9a: 0x2501, 0x1d9b: 0x2509, 0x1d9c: 0x2511, 0x1d9d: 0x2519, + 0x1d9e: 0x2521, 0x1d9f: 0x2529, 0x1da0: 0x2531, 0x1da1: 0x2539, 0x1da2: 0x2541, 0x1da3: 0x2549, + 0x1da4: 0x2551, 0x1da5: 0x2559, 0x1da6: 0x2561, 0x1da7: 0x2569, 0x1da8: 0x2571, 0x1da9: 0x2579, + 0x1daa: 0x2581, 0x1dab: 0x2589, 0x1dac: 0x2591, 0x1dad: 0x2599, 0x1dae: 0x25a1, 0x1daf: 0x25a9, + 0x1db0: 0x25b1, 0x1db1: 0x25b9, 0x1db2: 0x25c1, 0x1db3: 0x25c9, 0x1db4: 0x25d1, 0x1db5: 0x25d9, + 0x1db6: 0x25e1, 0x1db7: 0x25e9, 0x1db8: 0x25f1, 0x1db9: 0x25f9, 0x1dba: 0x2601, 0x1dbb: 0x2609, + 0x1dbc: 0x0040, 0x1dbd: 0x0040, 0x1dbe: 0x0040, 0x1dbf: 0x0040, // Block 0x77, offset 0x1dc0 - 0x1dc0: 0x2039, 0x1dc1: 0x0269, 0x1dc2: 0x01d9, 0x1dc3: 0x0fa9, 0x1dc4: 0x0fb9, 0x1dc5: 0x1089, - 0x1dc6: 0x0279, 0x1dc7: 0x0369, 0x1dc8: 0x0289, 0x1dc9: 0x13d1, 0x1dca: 0xc179, 0x1dcb: 0x65e9, - 0x1dcc: 0xc191, 0x1dcd: 0x1441, 0x1dce: 0xc1a9, 0x1dcf: 0xc1c9, 0x1dd0: 0x0018, 0x1dd1: 0x0018, - 0x1dd2: 0x0018, 0x1dd3: 0x0018, 0x1dd4: 0x0018, 0x1dd5: 0x0018, 0x1dd6: 0x0018, 0x1dd7: 0x0018, - 0x1dd8: 0x0018, 0x1dd9: 0x0018, 0x1dda: 0x0018, 0x1ddb: 0x0018, 0x1ddc: 0x0018, 0x1ddd: 0x0018, - 0x1dde: 0x0018, 0x1ddf: 0x0018, 0x1de0: 0x0018, 0x1de1: 0x0018, 0x1de2: 0x0018, 0x1de3: 0x0018, - 0x1de4: 0x0018, 0x1de5: 0x0018, 0x1de6: 0x0018, 0x1de7: 0x0018, 0x1de8: 0x0018, 0x1de9: 0x0018, - 0x1dea: 0xc1e1, 0x1deb: 0xc1f9, 0x1dec: 0xc211, 0x1ded: 0x0018, 0x1dee: 0x0018, 0x1def: 0x0018, - 0x1df0: 0x0018, 0x1df1: 0x0018, 0x1df2: 0x0018, 0x1df3: 0x0018, 0x1df4: 0x0018, 0x1df5: 0x0018, - 0x1df6: 0x0018, 0x1df7: 0x0018, 0x1df8: 0x0018, 0x1df9: 0x0018, 0x1dfa: 0x0018, 0x1dfb: 0x0018, - 0x1dfc: 0x0018, 0x1dfd: 0x0018, 0x1dfe: 0x0018, 0x1dff: 0x0018, + 0x1dc0: 0x2669, 0x1dc1: 0x2671, 0x1dc2: 0x2679, 0x1dc3: 0x8b55, 0x1dc4: 0x2681, 0x1dc5: 0x2689, + 0x1dc6: 0x2691, 0x1dc7: 0x2699, 0x1dc8: 0x26a1, 0x1dc9: 0x26a9, 0x1dca: 0x26b1, 0x1dcb: 0x26b9, + 0x1dcc: 0x26c1, 0x1dcd: 0x8b75, 0x1dce: 0x26c9, 0x1dcf: 0x26d1, 0x1dd0: 0x26d9, 0x1dd1: 0x26e1, + 0x1dd2: 0x8b95, 0x1dd3: 0x26e9, 0x1dd4: 0x26f1, 0x1dd5: 0x2521, 0x1dd6: 0x8bb5, 0x1dd7: 0x26f9, + 0x1dd8: 0x2701, 0x1dd9: 0x2709, 0x1dda: 0x2711, 0x1ddb: 0x2719, 0x1ddc: 0x8bd5, 0x1ddd: 0x2721, + 0x1dde: 0x2729, 0x1ddf: 0x2731, 0x1de0: 0x2739, 0x1de1: 0x2741, 0x1de2: 0x25f9, 0x1de3: 0x2749, + 0x1de4: 0x2751, 0x1de5: 0x2759, 0x1de6: 0x2761, 0x1de7: 0x2769, 0x1de8: 0x2771, 0x1de9: 0x2779, + 0x1dea: 0x2781, 0x1deb: 0x2789, 0x1dec: 0x2791, 0x1ded: 0x2799, 0x1dee: 0x27a1, 0x1def: 0x27a9, + 0x1df0: 0x27b1, 0x1df1: 0x27b9, 0x1df2: 0x27b9, 0x1df3: 0x27b9, 0x1df4: 0x8bf5, 0x1df5: 0x27c1, + 0x1df6: 0x27c9, 0x1df7: 0x27d1, 0x1df8: 0x8c15, 0x1df9: 0x27d9, 0x1dfa: 0x27e1, 0x1dfb: 0x27e9, + 0x1dfc: 0x27f1, 0x1dfd: 0x27f9, 0x1dfe: 0x2801, 0x1dff: 0x2809, // Block 0x78, offset 0x1e00 - 0x1e00: 0xc241, 0x1e01: 0xc279, 0x1e02: 0xc2b1, 0x1e03: 0x0040, 0x1e04: 0x0040, 0x1e05: 0x0040, - 0x1e06: 0x0040, 0x1e07: 0x0040, 0x1e08: 0x0040, 0x1e09: 0x0040, 0x1e0a: 0x0040, 0x1e0b: 0x0040, - 0x1e0c: 0x0040, 0x1e0d: 0x0040, 0x1e0e: 0x0040, 0x1e0f: 0x0040, 0x1e10: 0xc2d1, 0x1e11: 0xc2f1, - 0x1e12: 0xc311, 0x1e13: 0xc331, 0x1e14: 0xc351, 0x1e15: 0xc371, 0x1e16: 0xc391, 0x1e17: 0xc3b1, - 0x1e18: 0xc3d1, 0x1e19: 0xc3f1, 0x1e1a: 0xc411, 0x1e1b: 0xc431, 0x1e1c: 0xc451, 0x1e1d: 0xc471, - 0x1e1e: 0xc491, 0x1e1f: 0xc4b1, 0x1e20: 0xc4d1, 0x1e21: 0xc4f1, 0x1e22: 0xc511, 0x1e23: 0xc531, - 0x1e24: 0xc551, 0x1e25: 0xc571, 0x1e26: 0xc591, 0x1e27: 0xc5b1, 0x1e28: 0xc5d1, 0x1e29: 0xc5f1, - 0x1e2a: 0xc611, 0x1e2b: 0xc631, 0x1e2c: 0xc651, 0x1e2d: 0xc671, 0x1e2e: 0xc691, 0x1e2f: 0xc6b1, - 0x1e30: 0xc6d1, 0x1e31: 0xc6f1, 0x1e32: 0xc711, 0x1e33: 0xc731, 0x1e34: 0xc751, 0x1e35: 0xc771, - 0x1e36: 0xc791, 0x1e37: 0xc7b1, 0x1e38: 0xc7d1, 0x1e39: 0xc7f1, 0x1e3a: 0xc811, 0x1e3b: 0xc831, - 0x1e3c: 0x0040, 0x1e3d: 0x0040, 0x1e3e: 0x0040, 0x1e3f: 0x0040, + 0x1e00: 0x2811, 0x1e01: 0x2819, 0x1e02: 0x2821, 0x1e03: 0x2829, 0x1e04: 0x2831, 0x1e05: 0x2839, + 0x1e06: 0x2839, 0x1e07: 0x2841, 0x1e08: 0x2849, 0x1e09: 0x2851, 0x1e0a: 0x2859, 0x1e0b: 0x2861, + 0x1e0c: 0x2869, 0x1e0d: 0x2871, 0x1e0e: 0x2879, 0x1e0f: 0x2881, 0x1e10: 0x2889, 0x1e11: 0x2891, + 0x1e12: 0x2899, 0x1e13: 0x28a1, 0x1e14: 0x28a9, 0x1e15: 0x28b1, 0x1e16: 0x28b9, 0x1e17: 0x28c1, + 0x1e18: 0x28c9, 0x1e19: 0x8c35, 0x1e1a: 0x28d1, 0x1e1b: 0x28d9, 0x1e1c: 0x28e1, 0x1e1d: 0x24d9, + 0x1e1e: 0x28e9, 0x1e1f: 0x28f1, 0x1e20: 0x8c55, 0x1e21: 0x8c75, 0x1e22: 0x28f9, 0x1e23: 0x2901, + 0x1e24: 0x2909, 0x1e25: 0x2911, 0x1e26: 0x2919, 0x1e27: 0x2921, 0x1e28: 0x2040, 0x1e29: 0x2929, + 0x1e2a: 0x2931, 0x1e2b: 0x2931, 0x1e2c: 0x8c95, 0x1e2d: 0x2939, 0x1e2e: 0x2941, 0x1e2f: 0x2949, + 0x1e30: 0x2951, 0x1e31: 0x8cb5, 0x1e32: 0x2959, 0x1e33: 0x2961, 0x1e34: 0x2040, 0x1e35: 0x2969, + 0x1e36: 0x2971, 0x1e37: 0x2979, 0x1e38: 0x2981, 0x1e39: 0x2989, 0x1e3a: 0x2991, 0x1e3b: 0x8cd5, + 0x1e3c: 0x2999, 0x1e3d: 0x8cf5, 0x1e3e: 0x29a1, 0x1e3f: 0x29a9, // Block 0x79, offset 0x1e40 - 0x1e40: 0xcb61, 0x1e41: 0xcb81, 0x1e42: 0xcba1, 0x1e43: 0x8b55, 0x1e44: 0xcbc1, 0x1e45: 0xcbe1, - 0x1e46: 0xcc01, 0x1e47: 0xcc21, 0x1e48: 0xcc41, 0x1e49: 0xcc61, 0x1e4a: 0xcc81, 0x1e4b: 0xcca1, - 0x1e4c: 0xccc1, 0x1e4d: 0x8b75, 0x1e4e: 0xcce1, 0x1e4f: 0xcd01, 0x1e50: 0xcd21, 0x1e51: 0xcd41, - 0x1e52: 0x8b95, 0x1e53: 0xcd61, 0x1e54: 0xcd81, 0x1e55: 0xc491, 0x1e56: 0x8bb5, 0x1e57: 0xcda1, - 0x1e58: 0xcdc1, 0x1e59: 0xcde1, 0x1e5a: 0xce01, 0x1e5b: 0xce21, 0x1e5c: 0x8bd5, 0x1e5d: 0xce41, - 0x1e5e: 0xce61, 0x1e5f: 0xce81, 0x1e60: 0xcea1, 0x1e61: 0xcec1, 0x1e62: 0xc7f1, 0x1e63: 0xcee1, - 0x1e64: 0xcf01, 0x1e65: 0xcf21, 0x1e66: 0xcf41, 0x1e67: 0xcf61, 0x1e68: 0xcf81, 0x1e69: 0xcfa1, - 0x1e6a: 0xcfc1, 0x1e6b: 0xcfe1, 0x1e6c: 0xd001, 0x1e6d: 0xd021, 0x1e6e: 0xd041, 0x1e6f: 0xd061, - 0x1e70: 0xd081, 0x1e71: 0xd0a1, 0x1e72: 0xd0a1, 0x1e73: 0xd0a1, 0x1e74: 0x8bf5, 0x1e75: 0xd0c1, - 0x1e76: 0xd0e1, 0x1e77: 0xd101, 0x1e78: 0x8c15, 0x1e79: 0xd121, 0x1e7a: 0xd141, 0x1e7b: 0xd161, - 0x1e7c: 0xd181, 0x1e7d: 0xd1a1, 0x1e7e: 0xd1c1, 0x1e7f: 0xd1e1, + 0x1e40: 0x29b1, 0x1e41: 0x29b9, 0x1e42: 0x29c1, 0x1e43: 0x29c9, 0x1e44: 0x29d1, 0x1e45: 0x29d9, + 0x1e46: 0x29e1, 0x1e47: 0x29e9, 0x1e48: 0x29f1, 0x1e49: 0x8d15, 0x1e4a: 0x29f9, 0x1e4b: 0x2a01, + 0x1e4c: 0x2a09, 0x1e4d: 0x2a11, 0x1e4e: 0x2a19, 0x1e4f: 0x8d35, 0x1e50: 0x2a21, 0x1e51: 0x8d55, + 0x1e52: 0x8d75, 0x1e53: 0x2a29, 0x1e54: 0x2a31, 0x1e55: 0x2a31, 0x1e56: 0x2a39, 0x1e57: 0x8d95, + 0x1e58: 0x8db5, 0x1e59: 0x2a41, 0x1e5a: 0x2a49, 0x1e5b: 0x2a51, 0x1e5c: 0x2a59, 0x1e5d: 0x2a61, + 0x1e5e: 0x2a69, 0x1e5f: 0x2a71, 0x1e60: 0x2a79, 0x1e61: 0x2a81, 0x1e62: 0x2a89, 0x1e63: 0x2a91, + 0x1e64: 0x8dd5, 0x1e65: 0x2a99, 0x1e66: 0x2aa1, 0x1e67: 0x2aa9, 0x1e68: 0x2ab1, 0x1e69: 0x2aa9, + 0x1e6a: 0x2ab9, 0x1e6b: 0x2ac1, 0x1e6c: 0x2ac9, 0x1e6d: 0x2ad1, 0x1e6e: 0x2ad9, 0x1e6f: 0x2ae1, + 0x1e70: 0x2ae9, 0x1e71: 0x2af1, 0x1e72: 0x2af9, 0x1e73: 0x2b01, 0x1e74: 0x2b09, 0x1e75: 0x2b11, + 0x1e76: 0x2b19, 0x1e77: 0x2b21, 0x1e78: 0x8df5, 0x1e79: 0x2b29, 0x1e7a: 0x2b31, 0x1e7b: 0x2b39, + 0x1e7c: 0x2b41, 0x1e7d: 0x2b49, 0x1e7e: 0x8e15, 0x1e7f: 0x2b51, // Block 0x7a, offset 0x1e80 - 0x1e80: 0xd201, 0x1e81: 0xd221, 0x1e82: 0xd241, 0x1e83: 0xd261, 0x1e84: 0xd281, 0x1e85: 0xd2a1, - 0x1e86: 0xd2a1, 0x1e87: 0xd2c1, 0x1e88: 0xd2e1, 0x1e89: 0xd301, 0x1e8a: 0xd321, 0x1e8b: 0xd341, - 0x1e8c: 0xd361, 0x1e8d: 0xd381, 0x1e8e: 0xd3a1, 0x1e8f: 0xd3c1, 0x1e90: 0xd3e1, 0x1e91: 0xd401, - 0x1e92: 0xd421, 0x1e93: 0xd441, 0x1e94: 0xd461, 0x1e95: 0xd481, 0x1e96: 0xd4a1, 0x1e97: 0xd4c1, - 0x1e98: 0xd4e1, 0x1e99: 0x8c35, 0x1e9a: 0xd501, 0x1e9b: 0xd521, 0x1e9c: 0xd541, 0x1e9d: 0xc371, - 0x1e9e: 0xd561, 0x1e9f: 0xd581, 0x1ea0: 0x8c55, 0x1ea1: 0x8c75, 0x1ea2: 0xd5a1, 0x1ea3: 0xd5c1, - 0x1ea4: 0xd5e1, 0x1ea5: 0xd601, 0x1ea6: 0xd621, 0x1ea7: 0xd641, 0x1ea8: 0x2040, 0x1ea9: 0xd661, - 0x1eaa: 0xd681, 0x1eab: 0xd681, 0x1eac: 0x8c95, 0x1ead: 0xd6a1, 0x1eae: 0xd6c1, 0x1eaf: 0xd6e1, - 0x1eb0: 0xd701, 0x1eb1: 0x8cb5, 0x1eb2: 0xd721, 0x1eb3: 0xd741, 0x1eb4: 0x2040, 0x1eb5: 0xd761, - 0x1eb6: 0xd781, 0x1eb7: 0xd7a1, 0x1eb8: 0xd7c1, 0x1eb9: 0xd7e1, 0x1eba: 0xd801, 0x1ebb: 0x8cd5, - 0x1ebc: 0xd821, 0x1ebd: 0x8cf5, 0x1ebe: 0xd841, 0x1ebf: 0xd861, + 0x1e80: 0x2b59, 0x1e81: 0x2b61, 0x1e82: 0x2b69, 0x1e83: 0x2b71, 0x1e84: 0x2b79, 0x1e85: 0x2b81, + 0x1e86: 0x2b89, 0x1e87: 0x2b91, 0x1e88: 0x2b99, 0x1e89: 0x2ba1, 0x1e8a: 0x8e35, 0x1e8b: 0x2ba9, + 0x1e8c: 0x2bb1, 0x1e8d: 0x2bb9, 0x1e8e: 0x2bc1, 0x1e8f: 0x2bc9, 0x1e90: 0x2bd1, 0x1e91: 0x2bd9, + 0x1e92: 0x2be1, 0x1e93: 0x2be9, 0x1e94: 0x2bf1, 0x1e95: 0x2bf9, 0x1e96: 0x2c01, 0x1e97: 0x2c09, + 0x1e98: 0x2c11, 0x1e99: 0x2c19, 0x1e9a: 0x2c21, 0x1e9b: 0x2c29, 0x1e9c: 0x2c31, 0x1e9d: 0x8e55, + 0x1e9e: 0x2c39, 0x1e9f: 0x2c41, 0x1ea0: 0x2c49, 0x1ea1: 0x2c51, 0x1ea2: 0x2c59, 0x1ea3: 0x8e75, + 0x1ea4: 0x2c61, 0x1ea5: 0x2c69, 0x1ea6: 0x2c71, 0x1ea7: 0x2c79, 0x1ea8: 0x2c81, 0x1ea9: 0x2c89, + 0x1eaa: 0x2c91, 0x1eab: 0x2c99, 0x1eac: 0x7f0d, 0x1ead: 0x2ca1, 0x1eae: 0x2ca9, 0x1eaf: 0x2cb1, + 0x1eb0: 0x8e95, 0x1eb1: 0x2cb9, 0x1eb2: 0x2cc1, 0x1eb3: 0x2cc9, 0x1eb4: 0x2cd1, 0x1eb5: 0x2cd9, + 0x1eb6: 0x2ce1, 0x1eb7: 0x8eb5, 0x1eb8: 0x8ed5, 0x1eb9: 0x8ef5, 0x1eba: 0x2ce9, 0x1ebb: 0x8f15, + 0x1ebc: 0x2cf1, 0x1ebd: 0x2cf9, 0x1ebe: 0x2d01, 0x1ebf: 0x2d09, // Block 0x7b, offset 0x1ec0 - 0x1ec0: 0xd881, 0x1ec1: 0xd8a1, 0x1ec2: 0xd8c1, 0x1ec3: 0xd8e1, 0x1ec4: 0xd901, 0x1ec5: 0xd921, - 0x1ec6: 0xd941, 0x1ec7: 0xd961, 0x1ec8: 0xd981, 0x1ec9: 0x8d15, 0x1eca: 0xd9a1, 0x1ecb: 0xd9c1, - 0x1ecc: 0xd9e1, 0x1ecd: 0xda01, 0x1ece: 0xda21, 0x1ecf: 0x8d35, 0x1ed0: 0xda41, 0x1ed1: 0x8d55, - 0x1ed2: 0x8d75, 0x1ed3: 0xda61, 0x1ed4: 0xda81, 0x1ed5: 0xda81, 0x1ed6: 0xdaa1, 0x1ed7: 0x8d95, - 0x1ed8: 0x8db5, 0x1ed9: 0xdac1, 0x1eda: 0xdae1, 0x1edb: 0xdb01, 0x1edc: 0xdb21, 0x1edd: 0xdb41, - 0x1ede: 0xdb61, 0x1edf: 0xdb81, 0x1ee0: 0xdba1, 0x1ee1: 0xdbc1, 0x1ee2: 0xdbe1, 0x1ee3: 0xdc01, - 0x1ee4: 0x8dd5, 0x1ee5: 0xdc21, 0x1ee6: 0xdc41, 0x1ee7: 0xdc61, 0x1ee8: 0xdc81, 0x1ee9: 0xdc61, - 0x1eea: 0xdca1, 0x1eeb: 0xdcc1, 0x1eec: 0xdce1, 0x1eed: 0xdd01, 0x1eee: 0xdd21, 0x1eef: 0xdd41, - 0x1ef0: 0xdd61, 0x1ef1: 0xdd81, 0x1ef2: 0xdda1, 0x1ef3: 0xddc1, 0x1ef4: 0xdde1, 0x1ef5: 0xde01, - 0x1ef6: 0xde21, 0x1ef7: 0xde41, 0x1ef8: 0x8df5, 0x1ef9: 0xde61, 0x1efa: 0xde81, 0x1efb: 0xdea1, - 0x1efc: 0xdec1, 0x1efd: 0xdee1, 0x1efe: 0x8e15, 0x1eff: 0xdf01, + 0x1ec0: 0x2d11, 0x1ec1: 0x2d19, 0x1ec2: 0x2d21, 0x1ec3: 0x2d29, 0x1ec4: 0x2d31, 0x1ec5: 0x2d39, + 0x1ec6: 0x8f35, 0x1ec7: 0x2d41, 0x1ec8: 0x2d49, 0x1ec9: 0x2d51, 0x1eca: 0x2d59, 0x1ecb: 0x2d61, + 0x1ecc: 0x2d69, 0x1ecd: 0x8f55, 0x1ece: 0x2d71, 0x1ecf: 0x2d79, 0x1ed0: 0x8f75, 0x1ed1: 0x8f95, + 0x1ed2: 0x2d81, 0x1ed3: 0x2d89, 0x1ed4: 0x2d91, 0x1ed5: 0x2d99, 0x1ed6: 0x2da1, 0x1ed7: 0x2da9, + 0x1ed8: 0x2db1, 0x1ed9: 0x2db9, 0x1eda: 0x2dc1, 0x1edb: 0x8fb5, 0x1edc: 0x2dc9, 0x1edd: 0x8fd5, + 0x1ede: 0x2dd1, 0x1edf: 0x2040, 0x1ee0: 0x2dd9, 0x1ee1: 0x2de1, 0x1ee2: 0x2de9, 0x1ee3: 0x8ff5, + 0x1ee4: 0x2df1, 0x1ee5: 0x2df9, 0x1ee6: 0x9015, 0x1ee7: 0x9035, 0x1ee8: 0x2e01, 0x1ee9: 0x2e09, + 0x1eea: 0x2e11, 0x1eeb: 0x2e19, 0x1eec: 0x2e21, 0x1eed: 0x2e21, 0x1eee: 0x2e29, 0x1eef: 0x2e31, + 0x1ef0: 0x2e39, 0x1ef1: 0x2e41, 0x1ef2: 0x2e49, 0x1ef3: 0x2e51, 0x1ef4: 0x2e59, 0x1ef5: 0x9055, + 0x1ef6: 0x2e61, 0x1ef7: 0x9075, 0x1ef8: 0x2e69, 0x1ef9: 0x9095, 0x1efa: 0x2e71, 0x1efb: 0x90b5, + 0x1efc: 0x90d5, 0x1efd: 0x90f5, 0x1efe: 0x2e79, 0x1eff: 0x2e81, // Block 0x7c, offset 0x1f00 - 0x1f00: 0xe601, 0x1f01: 0xe621, 0x1f02: 0xe641, 0x1f03: 0xe661, 0x1f04: 0xe681, 0x1f05: 0xe6a1, - 0x1f06: 0x8f35, 0x1f07: 0xe6c1, 0x1f08: 0xe6e1, 0x1f09: 0xe701, 0x1f0a: 0xe721, 0x1f0b: 0xe741, - 0x1f0c: 0xe761, 0x1f0d: 0x8f55, 0x1f0e: 0xe781, 0x1f0f: 0xe7a1, 0x1f10: 0x8f75, 0x1f11: 0x8f95, - 0x1f12: 0xe7c1, 0x1f13: 0xe7e1, 0x1f14: 0xe801, 0x1f15: 0xe821, 0x1f16: 0xe841, 0x1f17: 0xe861, - 0x1f18: 0xe881, 0x1f19: 0xe8a1, 0x1f1a: 0xe8c1, 0x1f1b: 0x8fb5, 0x1f1c: 0xe8e1, 0x1f1d: 0x8fd5, - 0x1f1e: 0xe901, 0x1f1f: 0x2040, 0x1f20: 0xe921, 0x1f21: 0xe941, 0x1f22: 0xe961, 0x1f23: 0x8ff5, - 0x1f24: 0xe981, 0x1f25: 0xe9a1, 0x1f26: 0x9015, 0x1f27: 0x9035, 0x1f28: 0xe9c1, 0x1f29: 0xe9e1, - 0x1f2a: 0xea01, 0x1f2b: 0xea21, 0x1f2c: 0xea41, 0x1f2d: 0xea41, 0x1f2e: 0xea61, 0x1f2f: 0xea81, - 0x1f30: 0xeaa1, 0x1f31: 0xeac1, 0x1f32: 0xeae1, 0x1f33: 0xeb01, 0x1f34: 0xeb21, 0x1f35: 0x9055, - 0x1f36: 0xeb41, 0x1f37: 0x9075, 0x1f38: 0xeb61, 0x1f39: 0x9095, 0x1f3a: 0xeb81, 0x1f3b: 0x90b5, - 0x1f3c: 0x90d5, 0x1f3d: 0x90f5, 0x1f3e: 0xeba1, 0x1f3f: 0xebc1, + 0x1f00: 0x2e89, 0x1f01: 0x9115, 0x1f02: 0x9135, 0x1f03: 0x9155, 0x1f04: 0x9175, 0x1f05: 0x2e91, + 0x1f06: 0x2e99, 0x1f07: 0x2e99, 0x1f08: 0x2ea1, 0x1f09: 0x2ea9, 0x1f0a: 0x2eb1, 0x1f0b: 0x2eb9, + 0x1f0c: 0x2ec1, 0x1f0d: 0x9195, 0x1f0e: 0x2ec9, 0x1f0f: 0x2ed1, 0x1f10: 0x2ed9, 0x1f11: 0x2ee1, + 0x1f12: 0x91b5, 0x1f13: 0x2ee9, 0x1f14: 0x91d5, 0x1f15: 0x91f5, 0x1f16: 0x2ef1, 0x1f17: 0x2ef9, + 0x1f18: 0x2f01, 0x1f19: 0x2f09, 0x1f1a: 0x2f11, 0x1f1b: 0x2f19, 0x1f1c: 0x9215, 0x1f1d: 0x9235, + 0x1f1e: 0x9255, 0x1f1f: 0x2040, 0x1f20: 0x2f21, 0x1f21: 0x9275, 0x1f22: 0x2f29, 0x1f23: 0x2f31, + 0x1f24: 0x2f39, 0x1f25: 0x9295, 0x1f26: 0x2f41, 0x1f27: 0x2f49, 0x1f28: 0x2f51, 0x1f29: 0x2f59, + 0x1f2a: 0x2f61, 0x1f2b: 0x92b5, 0x1f2c: 0x2f69, 0x1f2d: 0x2f71, 0x1f2e: 0x2f79, 0x1f2f: 0x2f81, + 0x1f30: 0x2f89, 0x1f31: 0x2f91, 0x1f32: 0x92d5, 0x1f33: 0x92f5, 0x1f34: 0x2f99, 0x1f35: 0x9315, + 0x1f36: 0x2fa1, 0x1f37: 0x9335, 0x1f38: 0x2fa9, 0x1f39: 0x2fb1, 0x1f3a: 0x2fb9, 0x1f3b: 0x9355, + 0x1f3c: 0x9375, 0x1f3d: 0x2fc1, 0x1f3e: 0x9395, 0x1f3f: 0x2fc9, // Block 0x7d, offset 0x1f40 - 0x1f40: 0xebe1, 0x1f41: 0x9115, 0x1f42: 0x9135, 0x1f43: 0x9155, 0x1f44: 0x9175, 0x1f45: 0xec01, - 0x1f46: 0xec21, 0x1f47: 0xec21, 0x1f48: 0xec41, 0x1f49: 0xec61, 0x1f4a: 0xec81, 0x1f4b: 0xeca1, - 0x1f4c: 0xecc1, 0x1f4d: 0x9195, 0x1f4e: 0xece1, 0x1f4f: 0xed01, 0x1f50: 0xed21, 0x1f51: 0xed41, - 0x1f52: 0x91b5, 0x1f53: 0xed61, 0x1f54: 0x91d5, 0x1f55: 0x91f5, 0x1f56: 0xed81, 0x1f57: 0xeda1, - 0x1f58: 0xedc1, 0x1f59: 0xede1, 0x1f5a: 0xee01, 0x1f5b: 0xee21, 0x1f5c: 0x9215, 0x1f5d: 0x9235, - 0x1f5e: 0x9255, 0x1f5f: 0x2040, 0x1f60: 0xee41, 0x1f61: 0x9275, 0x1f62: 0xee61, 0x1f63: 0xee81, - 0x1f64: 0xeea1, 0x1f65: 0x9295, 0x1f66: 0xeec1, 0x1f67: 0xeee1, 0x1f68: 0xef01, 0x1f69: 0xef21, - 0x1f6a: 0xef41, 0x1f6b: 0x92b5, 0x1f6c: 0xef61, 0x1f6d: 0xef81, 0x1f6e: 0xefa1, 0x1f6f: 0xefc1, - 0x1f70: 0xefe1, 0x1f71: 0xf001, 0x1f72: 0x92d5, 0x1f73: 0x92f5, 0x1f74: 0xf021, 0x1f75: 0x9315, - 0x1f76: 0xf041, 0x1f77: 0x9335, 0x1f78: 0xf061, 0x1f79: 0xf081, 0x1f7a: 0xf0a1, 0x1f7b: 0x9355, - 0x1f7c: 0x9375, 0x1f7d: 0xf0c1, 0x1f7e: 0x9395, 0x1f7f: 0xf0e1, + 0x1f40: 0x93b5, 0x1f41: 0x2fd1, 0x1f42: 0x2fd9, 0x1f43: 0x2fe1, 0x1f44: 0x2fe9, 0x1f45: 0x2ff1, + 0x1f46: 0x2ff9, 0x1f47: 0x93d5, 0x1f48: 0x93f5, 0x1f49: 0x9415, 0x1f4a: 0x9435, 0x1f4b: 0x2a29, + 0x1f4c: 0x3001, 0x1f4d: 0x3009, 0x1f4e: 0x3011, 0x1f4f: 0x3019, 0x1f50: 0x3021, 0x1f51: 0x3029, + 0x1f52: 0x3031, 0x1f53: 0x3039, 0x1f54: 0x3041, 0x1f55: 0x3049, 0x1f56: 0x3051, 0x1f57: 0x9455, + 0x1f58: 0x3059, 0x1f59: 0x3061, 0x1f5a: 0x3069, 0x1f5b: 0x3071, 0x1f5c: 0x3079, 0x1f5d: 0x3081, + 0x1f5e: 0x3089, 0x1f5f: 0x3091, 0x1f60: 0x3099, 0x1f61: 0x30a1, 0x1f62: 0x30a9, 0x1f63: 0x30b1, + 0x1f64: 0x9475, 0x1f65: 0x9495, 0x1f66: 0x94b5, 0x1f67: 0x30b9, 0x1f68: 0x30c1, 0x1f69: 0x30c9, + 0x1f6a: 0x30d1, 0x1f6b: 0x94d5, 0x1f6c: 0x30d9, 0x1f6d: 0x94f5, 0x1f6e: 0x30e1, 0x1f6f: 0x30e9, + 0x1f70: 0x9515, 0x1f71: 0x9535, 0x1f72: 0x30f1, 0x1f73: 0x30f9, 0x1f74: 0x3101, 0x1f75: 0x3109, + 0x1f76: 0x3111, 0x1f77: 0x3119, 0x1f78: 0x3121, 0x1f79: 0x3129, 0x1f7a: 0x3131, 0x1f7b: 0x3139, + 0x1f7c: 0x3141, 0x1f7d: 0x3149, 0x1f7e: 0x3151, 0x1f7f: 0x2040, // Block 0x7e, offset 0x1f80 - 0x1f80: 0xf721, 0x1f81: 0xf741, 0x1f82: 0xf761, 0x1f83: 0xf781, 0x1f84: 0xf7a1, 0x1f85: 0x9555, - 0x1f86: 0xf7c1, 0x1f87: 0xf7e1, 0x1f88: 0xf801, 0x1f89: 0xf821, 0x1f8a: 0xf841, 0x1f8b: 0x9575, - 0x1f8c: 0x9595, 0x1f8d: 0xf861, 0x1f8e: 0xf881, 0x1f8f: 0xf8a1, 0x1f90: 0xf8c1, 0x1f91: 0xf8e1, - 0x1f92: 0xf901, 0x1f93: 0x95b5, 0x1f94: 0xf921, 0x1f95: 0xf941, 0x1f96: 0xf961, 0x1f97: 0xf981, - 0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0xf9a1, 0x1f9b: 0xf9c1, 0x1f9c: 0xf9e1, 0x1f9d: 0x9615, - 0x1f9e: 0xfa01, 0x1f9f: 0xfa21, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0xfa41, 0x1fa3: 0xfa61, - 0x1fa4: 0xfa81, 0x1fa5: 0x9655, 0x1fa6: 0xfaa1, 0x1fa7: 0xfac1, 0x1fa8: 0xfae1, 0x1fa9: 0xfb01, - 0x1faa: 0xfb21, 0x1fab: 0xfb41, 0x1fac: 0xfb61, 0x1fad: 0x9675, 0x1fae: 0xfb81, 0x1faf: 0xfba1, - 0x1fb0: 0xfbc1, 0x1fb1: 0x9695, 0x1fb2: 0xfbe1, 0x1fb3: 0xfc01, 0x1fb4: 0xfc21, 0x1fb5: 0xfc41, - 0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0xfc61, 0x1fb9: 0xfc81, 0x1fba: 0xfca1, 0x1fbb: 0x96d5, - 0x1fbc: 0xfcc1, 0x1fbd: 0x96f5, 0x1fbe: 0xfce1, 0x1fbf: 0xfce1, + 0x1f80: 0x3159, 0x1f81: 0x3161, 0x1f82: 0x3169, 0x1f83: 0x3171, 0x1f84: 0x3179, 0x1f85: 0x9555, + 0x1f86: 0x3181, 0x1f87: 0x3189, 0x1f88: 0x3191, 0x1f89: 0x3199, 0x1f8a: 0x31a1, 0x1f8b: 0x9575, + 0x1f8c: 0x9595, 0x1f8d: 0x31a9, 0x1f8e: 0x31b1, 0x1f8f: 0x31b9, 0x1f90: 0x31c1, 0x1f91: 0x31c9, + 0x1f92: 0x31d1, 0x1f93: 0x95b5, 0x1f94: 0x31d9, 0x1f95: 0x31e1, 0x1f96: 0x31e9, 0x1f97: 0x31f1, + 0x1f98: 0x95d5, 0x1f99: 0x95f5, 0x1f9a: 0x31f9, 0x1f9b: 0x3201, 0x1f9c: 0x3209, 0x1f9d: 0x9615, + 0x1f9e: 0x3211, 0x1f9f: 0x3219, 0x1fa0: 0x684d, 0x1fa1: 0x9635, 0x1fa2: 0x3221, 0x1fa3: 0x3229, + 0x1fa4: 0x3231, 0x1fa5: 0x9655, 0x1fa6: 0x3239, 0x1fa7: 0x3241, 0x1fa8: 0x3249, 0x1fa9: 0x3251, + 0x1faa: 0x3259, 0x1fab: 0x3261, 0x1fac: 0x3269, 0x1fad: 0x9675, 0x1fae: 0x3271, 0x1faf: 0x3279, + 0x1fb0: 0x3281, 0x1fb1: 0x9695, 0x1fb2: 0x3289, 0x1fb3: 0x3291, 0x1fb4: 0x3299, 0x1fb5: 0x32a1, + 0x1fb6: 0x7b6d, 0x1fb7: 0x96b5, 0x1fb8: 0x32a9, 0x1fb9: 0x32b1, 0x1fba: 0x32b9, 0x1fbb: 0x96d5, + 0x1fbc: 0x32c1, 0x1fbd: 0x96f5, 0x1fbe: 0x32c9, 0x1fbf: 0x32c9, // Block 0x7f, offset 0x1fc0 - 0x1fc0: 0xfd01, 0x1fc1: 0x9715, 0x1fc2: 0xfd21, 0x1fc3: 0xfd41, 0x1fc4: 0xfd61, 0x1fc5: 0xfd81, - 0x1fc6: 0xfda1, 0x1fc7: 0xfdc1, 0x1fc8: 0xfde1, 0x1fc9: 0x9735, 0x1fca: 0xfe01, 0x1fcb: 0xfe21, - 0x1fcc: 0xfe41, 0x1fcd: 0xfe61, 0x1fce: 0xfe81, 0x1fcf: 0xfea1, 0x1fd0: 0x9755, 0x1fd1: 0xfec1, - 0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0xfee1, 0x1fd6: 0xff01, 0x1fd7: 0xff21, - 0x1fd8: 0xff41, 0x1fd9: 0xff61, 0x1fda: 0xff81, 0x1fdb: 0xffa1, 0x1fdc: 0xffc1, 0x1fdd: 0x97d5, + 0x1fc0: 0x32d1, 0x1fc1: 0x9715, 0x1fc2: 0x32d9, 0x1fc3: 0x32e1, 0x1fc4: 0x32e9, 0x1fc5: 0x32f1, + 0x1fc6: 0x32f9, 0x1fc7: 0x3301, 0x1fc8: 0x3309, 0x1fc9: 0x9735, 0x1fca: 0x3311, 0x1fcb: 0x3319, + 0x1fcc: 0x3321, 0x1fcd: 0x3329, 0x1fce: 0x3331, 0x1fcf: 0x3339, 0x1fd0: 0x9755, 0x1fd1: 0x3341, + 0x1fd2: 0x9775, 0x1fd3: 0x9795, 0x1fd4: 0x97b5, 0x1fd5: 0x3349, 0x1fd6: 0x3351, 0x1fd7: 0x3359, + 0x1fd8: 0x3361, 0x1fd9: 0x3369, 0x1fda: 0x3371, 0x1fdb: 0x3379, 0x1fdc: 0x3381, 0x1fdd: 0x97d5, 0x1fde: 0x0040, 0x1fdf: 0x0040, 0x1fe0: 0x0040, 0x1fe1: 0x0040, 0x1fe2: 0x0040, 0x1fe3: 0x0040, 0x1fe4: 0x0040, 0x1fe5: 0x0040, 0x1fe6: 0x0040, 0x1fe7: 0x0040, 0x1fe8: 0x0040, 0x1fe9: 0x0040, 0x1fea: 0x0040, 0x1feb: 0x0040, 0x1fec: 0x0040, 0x1fed: 0x0040, 0x1fee: 0x0040, 0x1fef: 0x0040, @@ -2134,7 +2276,7 @@ var idnaIndex = [2368]uint16{ 0x1b8: 0xd6, 0x1b9: 0xd7, 0x1ba: 0xd8, 0x1bb: 0xd9, 0x1bc: 0xda, 0x1bd: 0xdb, 0x1be: 0xdc, 0x1bf: 0x37, // Block 0x7, offset 0x1c0 0x1c0: 0x38, 0x1c1: 0xdd, 0x1c2: 0xde, 0x1c3: 0xdf, 0x1c4: 0xe0, 0x1c5: 0x39, 0x1c6: 0x3a, 0x1c7: 0xe1, - 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0x3e, 0x1cd: 0x3f, 0x1ce: 0x40, 0x1cf: 0x41, + 0x1c8: 0xe2, 0x1c9: 0x3b, 0x1ca: 0x3c, 0x1cb: 0x3d, 0x1cc: 0xe3, 0x1cd: 0xe4, 0x1ce: 0x3e, 0x1cf: 0x3f, 0x1d0: 0xa0, 0x1d1: 0xa0, 0x1d2: 0xa0, 0x1d3: 0xa0, 0x1d4: 0xa0, 0x1d5: 0xa0, 0x1d6: 0xa0, 0x1d7: 0xa0, 0x1d8: 0xa0, 0x1d9: 0xa0, 0x1da: 0xa0, 0x1db: 0xa0, 0x1dc: 0xa0, 0x1dd: 0xa0, 0x1de: 0xa0, 0x1df: 0xa0, 0x1e0: 0xa0, 0x1e1: 0xa0, 0x1e2: 0xa0, 0x1e3: 0xa0, 0x1e4: 0xa0, 0x1e5: 0xa0, 0x1e6: 0xa0, 0x1e7: 0xa0, @@ -2167,143 +2309,143 @@ var idnaIndex = [2368]uint16{ 0x2a0: 0xa0, 0x2a1: 0xa0, 0x2a2: 0xa0, 0x2a3: 0xa0, 0x2a4: 0xa0, 0x2a5: 0xa0, 0x2a6: 0xa0, 0x2a7: 0xa0, 0x2a8: 0xa0, 0x2a9: 0xa0, 0x2aa: 0xa0, 0x2ab: 0xa0, 0x2ac: 0xa0, 0x2ad: 0xa0, 0x2ae: 0xa0, 0x2af: 0xa0, 0x2b0: 0xa0, 0x2b1: 0xa0, 0x2b2: 0xa0, 0x2b3: 0xa0, 0x2b4: 0xa0, 0x2b5: 0xa0, 0x2b6: 0xa0, 0x2b7: 0xa0, - 0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe3, + 0x2b8: 0xa0, 0x2b9: 0xa0, 0x2ba: 0xa0, 0x2bb: 0xa0, 0x2bc: 0xa0, 0x2bd: 0xa0, 0x2be: 0xa0, 0x2bf: 0xe5, // Block 0xb, offset 0x2c0 0x2c0: 0xa0, 0x2c1: 0xa0, 0x2c2: 0xa0, 0x2c3: 0xa0, 0x2c4: 0xa0, 0x2c5: 0xa0, 0x2c6: 0xa0, 0x2c7: 0xa0, 0x2c8: 0xa0, 0x2c9: 0xa0, 0x2ca: 0xa0, 0x2cb: 0xa0, 0x2cc: 0xa0, 0x2cd: 0xa0, 0x2ce: 0xa0, 0x2cf: 0xa0, - 0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe4, 0x2d3: 0xe5, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0, - 0x2d8: 0xe6, 0x2d9: 0x42, 0x2da: 0x43, 0x2db: 0xe7, 0x2dc: 0x44, 0x2dd: 0x45, 0x2de: 0x46, 0x2df: 0xe8, - 0x2e0: 0xe9, 0x2e1: 0xea, 0x2e2: 0xeb, 0x2e3: 0xec, 0x2e4: 0xed, 0x2e5: 0xee, 0x2e6: 0xef, 0x2e7: 0xf0, - 0x2e8: 0xf1, 0x2e9: 0xf2, 0x2ea: 0xf3, 0x2eb: 0xf4, 0x2ec: 0xf5, 0x2ed: 0xf6, 0x2ee: 0xf7, 0x2ef: 0xf8, + 0x2d0: 0xa0, 0x2d1: 0xa0, 0x2d2: 0xe6, 0x2d3: 0xe7, 0x2d4: 0xa0, 0x2d5: 0xa0, 0x2d6: 0xa0, 0x2d7: 0xa0, + 0x2d8: 0xe8, 0x2d9: 0x40, 0x2da: 0x41, 0x2db: 0xe9, 0x2dc: 0x42, 0x2dd: 0x43, 0x2de: 0x44, 0x2df: 0xea, + 0x2e0: 0xeb, 0x2e1: 0xec, 0x2e2: 0xed, 0x2e3: 0xee, 0x2e4: 0xef, 0x2e5: 0xf0, 0x2e6: 0xf1, 0x2e7: 0xf2, + 0x2e8: 0xf3, 0x2e9: 0xf4, 0x2ea: 0xf5, 0x2eb: 0xf6, 0x2ec: 0xf7, 0x2ed: 0xf8, 0x2ee: 0xf9, 0x2ef: 0xfa, 0x2f0: 0xa0, 0x2f1: 0xa0, 0x2f2: 0xa0, 0x2f3: 0xa0, 0x2f4: 0xa0, 0x2f5: 0xa0, 0x2f6: 0xa0, 0x2f7: 0xa0, 0x2f8: 0xa0, 0x2f9: 0xa0, 0x2fa: 0xa0, 0x2fb: 0xa0, 0x2fc: 0xa0, 0x2fd: 0xa0, 0x2fe: 0xa0, 0x2ff: 0xa0, // Block 0xc, offset 0x300 0x300: 0xa0, 0x301: 0xa0, 0x302: 0xa0, 0x303: 0xa0, 0x304: 0xa0, 0x305: 0xa0, 0x306: 0xa0, 0x307: 0xa0, 0x308: 0xa0, 0x309: 0xa0, 0x30a: 0xa0, 0x30b: 0xa0, 0x30c: 0xa0, 0x30d: 0xa0, 0x30e: 0xa0, 0x30f: 0xa0, 0x310: 0xa0, 0x311: 0xa0, 0x312: 0xa0, 0x313: 0xa0, 0x314: 0xa0, 0x315: 0xa0, 0x316: 0xa0, 0x317: 0xa0, - 0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xf9, 0x31f: 0xfa, + 0x318: 0xa0, 0x319: 0xa0, 0x31a: 0xa0, 0x31b: 0xa0, 0x31c: 0xa0, 0x31d: 0xa0, 0x31e: 0xfb, 0x31f: 0xfc, // Block 0xd, offset 0x340 - 0x340: 0xfb, 0x341: 0xfb, 0x342: 0xfb, 0x343: 0xfb, 0x344: 0xfb, 0x345: 0xfb, 0x346: 0xfb, 0x347: 0xfb, - 0x348: 0xfb, 0x349: 0xfb, 0x34a: 0xfb, 0x34b: 0xfb, 0x34c: 0xfb, 0x34d: 0xfb, 0x34e: 0xfb, 0x34f: 0xfb, - 0x350: 0xfb, 0x351: 0xfb, 0x352: 0xfb, 0x353: 0xfb, 0x354: 0xfb, 0x355: 0xfb, 0x356: 0xfb, 0x357: 0xfb, - 0x358: 0xfb, 0x359: 0xfb, 0x35a: 0xfb, 0x35b: 0xfb, 0x35c: 0xfb, 0x35d: 0xfb, 0x35e: 0xfb, 0x35f: 0xfb, - 0x360: 0xfb, 0x361: 0xfb, 0x362: 0xfb, 0x363: 0xfb, 0x364: 0xfb, 0x365: 0xfb, 0x366: 0xfb, 0x367: 0xfb, - 0x368: 0xfb, 0x369: 0xfb, 0x36a: 0xfb, 0x36b: 0xfb, 0x36c: 0xfb, 0x36d: 0xfb, 0x36e: 0xfb, 0x36f: 0xfb, - 0x370: 0xfb, 0x371: 0xfb, 0x372: 0xfb, 0x373: 0xfb, 0x374: 0xfb, 0x375: 0xfb, 0x376: 0xfb, 0x377: 0xfb, - 0x378: 0xfb, 0x379: 0xfb, 0x37a: 0xfb, 0x37b: 0xfb, 0x37c: 0xfb, 0x37d: 0xfb, 0x37e: 0xfb, 0x37f: 0xfb, + 0x340: 0xfd, 0x341: 0xfd, 0x342: 0xfd, 0x343: 0xfd, 0x344: 0xfd, 0x345: 0xfd, 0x346: 0xfd, 0x347: 0xfd, + 0x348: 0xfd, 0x349: 0xfd, 0x34a: 0xfd, 0x34b: 0xfd, 0x34c: 0xfd, 0x34d: 0xfd, 0x34e: 0xfd, 0x34f: 0xfd, + 0x350: 0xfd, 0x351: 0xfd, 0x352: 0xfd, 0x353: 0xfd, 0x354: 0xfd, 0x355: 0xfd, 0x356: 0xfd, 0x357: 0xfd, + 0x358: 0xfd, 0x359: 0xfd, 0x35a: 0xfd, 0x35b: 0xfd, 0x35c: 0xfd, 0x35d: 0xfd, 0x35e: 0xfd, 0x35f: 0xfd, + 0x360: 0xfd, 0x361: 0xfd, 0x362: 0xfd, 0x363: 0xfd, 0x364: 0xfd, 0x365: 0xfd, 0x366: 0xfd, 0x367: 0xfd, + 0x368: 0xfd, 0x369: 0xfd, 0x36a: 0xfd, 0x36b: 0xfd, 0x36c: 0xfd, 0x36d: 0xfd, 0x36e: 0xfd, 0x36f: 0xfd, + 0x370: 0xfd, 0x371: 0xfd, 0x372: 0xfd, 0x373: 0xfd, 0x374: 0xfd, 0x375: 0xfd, 0x376: 0xfd, 0x377: 0xfd, + 0x378: 0xfd, 0x379: 0xfd, 0x37a: 0xfd, 0x37b: 0xfd, 0x37c: 0xfd, 0x37d: 0xfd, 0x37e: 0xfd, 0x37f: 0xfd, // Block 0xe, offset 0x380 - 0x380: 0xfb, 0x381: 0xfb, 0x382: 0xfb, 0x383: 0xfb, 0x384: 0xfb, 0x385: 0xfb, 0x386: 0xfb, 0x387: 0xfb, - 0x388: 0xfb, 0x389: 0xfb, 0x38a: 0xfb, 0x38b: 0xfb, 0x38c: 0xfb, 0x38d: 0xfb, 0x38e: 0xfb, 0x38f: 0xfb, - 0x390: 0xfb, 0x391: 0xfb, 0x392: 0xfb, 0x393: 0xfb, 0x394: 0xfb, 0x395: 0xfb, 0x396: 0xfb, 0x397: 0xfb, - 0x398: 0xfb, 0x399: 0xfb, 0x39a: 0xfb, 0x39b: 0xfb, 0x39c: 0xfb, 0x39d: 0xfb, 0x39e: 0xfb, 0x39f: 0xfb, - 0x3a0: 0xfb, 0x3a1: 0xfb, 0x3a2: 0xfb, 0x3a3: 0xfb, 0x3a4: 0xfc, 0x3a5: 0xfd, 0x3a6: 0xfe, 0x3a7: 0xff, - 0x3a8: 0x47, 0x3a9: 0x100, 0x3aa: 0x101, 0x3ab: 0x48, 0x3ac: 0x49, 0x3ad: 0x4a, 0x3ae: 0x4b, 0x3af: 0x4c, - 0x3b0: 0x102, 0x3b1: 0x4d, 0x3b2: 0x4e, 0x3b3: 0x4f, 0x3b4: 0x50, 0x3b5: 0x51, 0x3b6: 0x103, 0x3b7: 0x52, - 0x3b8: 0x53, 0x3b9: 0x54, 0x3ba: 0x55, 0x3bb: 0x56, 0x3bc: 0x57, 0x3bd: 0x58, 0x3be: 0x59, 0x3bf: 0x5a, + 0x380: 0xfd, 0x381: 0xfd, 0x382: 0xfd, 0x383: 0xfd, 0x384: 0xfd, 0x385: 0xfd, 0x386: 0xfd, 0x387: 0xfd, + 0x388: 0xfd, 0x389: 0xfd, 0x38a: 0xfd, 0x38b: 0xfd, 0x38c: 0xfd, 0x38d: 0xfd, 0x38e: 0xfd, 0x38f: 0xfd, + 0x390: 0xfd, 0x391: 0xfd, 0x392: 0xfd, 0x393: 0xfd, 0x394: 0xfd, 0x395: 0xfd, 0x396: 0xfd, 0x397: 0xfd, + 0x398: 0xfd, 0x399: 0xfd, 0x39a: 0xfd, 0x39b: 0xfd, 0x39c: 0xfd, 0x39d: 0xfd, 0x39e: 0xfd, 0x39f: 0xfd, + 0x3a0: 0xfd, 0x3a1: 0xfd, 0x3a2: 0xfd, 0x3a3: 0xfd, 0x3a4: 0xfe, 0x3a5: 0xff, 0x3a6: 0x100, 0x3a7: 0x101, + 0x3a8: 0x45, 0x3a9: 0x102, 0x3aa: 0x103, 0x3ab: 0x46, 0x3ac: 0x47, 0x3ad: 0x48, 0x3ae: 0x49, 0x3af: 0x4a, + 0x3b0: 0x104, 0x3b1: 0x4b, 0x3b2: 0x4c, 0x3b3: 0x4d, 0x3b4: 0x4e, 0x3b5: 0x4f, 0x3b6: 0x105, 0x3b7: 0x50, + 0x3b8: 0x51, 0x3b9: 0x52, 0x3ba: 0x53, 0x3bb: 0x54, 0x3bc: 0x55, 0x3bd: 0x56, 0x3be: 0x57, 0x3bf: 0x58, // Block 0xf, offset 0x3c0 - 0x3c0: 0x104, 0x3c1: 0x105, 0x3c2: 0xa0, 0x3c3: 0x106, 0x3c4: 0x107, 0x3c5: 0x9c, 0x3c6: 0x108, 0x3c7: 0x109, - 0x3c8: 0xfb, 0x3c9: 0xfb, 0x3ca: 0x10a, 0x3cb: 0x10b, 0x3cc: 0x10c, 0x3cd: 0x10d, 0x3ce: 0x10e, 0x3cf: 0x10f, - 0x3d0: 0x110, 0x3d1: 0xa0, 0x3d2: 0x111, 0x3d3: 0x112, 0x3d4: 0x113, 0x3d5: 0x114, 0x3d6: 0xfb, 0x3d7: 0xfb, - 0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x115, 0x3dd: 0x116, 0x3de: 0xfb, 0x3df: 0xfb, - 0x3e0: 0x117, 0x3e1: 0x118, 0x3e2: 0x119, 0x3e3: 0x11a, 0x3e4: 0x11b, 0x3e5: 0xfb, 0x3e6: 0x11c, 0x3e7: 0x11d, - 0x3e8: 0x11e, 0x3e9: 0x11f, 0x3ea: 0x120, 0x3eb: 0x5b, 0x3ec: 0x121, 0x3ed: 0x122, 0x3ee: 0x5c, 0x3ef: 0xfb, - 0x3f0: 0x123, 0x3f1: 0x124, 0x3f2: 0x125, 0x3f3: 0x126, 0x3f4: 0x127, 0x3f5: 0xfb, 0x3f6: 0xfb, 0x3f7: 0xfb, - 0x3f8: 0xfb, 0x3f9: 0x128, 0x3fa: 0x129, 0x3fb: 0xfb, 0x3fc: 0x12a, 0x3fd: 0x12b, 0x3fe: 0x12c, 0x3ff: 0x12d, + 0x3c0: 0x106, 0x3c1: 0x107, 0x3c2: 0xa0, 0x3c3: 0x108, 0x3c4: 0x109, 0x3c5: 0x9c, 0x3c6: 0x10a, 0x3c7: 0x10b, + 0x3c8: 0xfd, 0x3c9: 0xfd, 0x3ca: 0x10c, 0x3cb: 0x10d, 0x3cc: 0x10e, 0x3cd: 0x10f, 0x3ce: 0x110, 0x3cf: 0x111, + 0x3d0: 0x112, 0x3d1: 0xa0, 0x3d2: 0x113, 0x3d3: 0x114, 0x3d4: 0x115, 0x3d5: 0x116, 0x3d6: 0xfd, 0x3d7: 0xfd, + 0x3d8: 0xa0, 0x3d9: 0xa0, 0x3da: 0xa0, 0x3db: 0xa0, 0x3dc: 0x117, 0x3dd: 0x118, 0x3de: 0xfd, 0x3df: 0xfd, + 0x3e0: 0x119, 0x3e1: 0x11a, 0x3e2: 0x11b, 0x3e3: 0x11c, 0x3e4: 0x11d, 0x3e5: 0xfd, 0x3e6: 0x11e, 0x3e7: 0x11f, + 0x3e8: 0x120, 0x3e9: 0x121, 0x3ea: 0x122, 0x3eb: 0x59, 0x3ec: 0x123, 0x3ed: 0x124, 0x3ee: 0x5a, 0x3ef: 0xfd, + 0x3f0: 0x125, 0x3f1: 0x126, 0x3f2: 0x127, 0x3f3: 0x128, 0x3f4: 0x129, 0x3f5: 0xfd, 0x3f6: 0xfd, 0x3f7: 0xfd, + 0x3f8: 0xfd, 0x3f9: 0x12a, 0x3fa: 0x12b, 0x3fb: 0xfd, 0x3fc: 0x12c, 0x3fd: 0x12d, 0x3fe: 0x12e, 0x3ff: 0x12f, // Block 0x10, offset 0x400 - 0x400: 0x12e, 0x401: 0x12f, 0x402: 0x130, 0x403: 0x131, 0x404: 0x132, 0x405: 0x133, 0x406: 0x134, 0x407: 0x135, - 0x408: 0x136, 0x409: 0xfb, 0x40a: 0x137, 0x40b: 0x138, 0x40c: 0x5d, 0x40d: 0x5e, 0x40e: 0xfb, 0x40f: 0xfb, - 0x410: 0x139, 0x411: 0x13a, 0x412: 0x13b, 0x413: 0x13c, 0x414: 0xfb, 0x415: 0xfb, 0x416: 0x13d, 0x417: 0x13e, - 0x418: 0x13f, 0x419: 0x140, 0x41a: 0x141, 0x41b: 0x142, 0x41c: 0x143, 0x41d: 0xfb, 0x41e: 0xfb, 0x41f: 0xfb, - 0x420: 0x144, 0x421: 0xfb, 0x422: 0x145, 0x423: 0x146, 0x424: 0x5f, 0x425: 0x147, 0x426: 0x148, 0x427: 0x149, - 0x428: 0x14a, 0x429: 0x14b, 0x42a: 0x14c, 0x42b: 0x14d, 0x42c: 0xfb, 0x42d: 0xfb, 0x42e: 0xfb, 0x42f: 0xfb, - 0x430: 0x14e, 0x431: 0x14f, 0x432: 0x150, 0x433: 0xfb, 0x434: 0x151, 0x435: 0x152, 0x436: 0x153, 0x437: 0xfb, - 0x438: 0xfb, 0x439: 0xfb, 0x43a: 0xfb, 0x43b: 0x154, 0x43c: 0xfb, 0x43d: 0xfb, 0x43e: 0x155, 0x43f: 0x156, + 0x400: 0x130, 0x401: 0x131, 0x402: 0x132, 0x403: 0x133, 0x404: 0x134, 0x405: 0x135, 0x406: 0x136, 0x407: 0x137, + 0x408: 0x138, 0x409: 0xfd, 0x40a: 0x139, 0x40b: 0x13a, 0x40c: 0x5b, 0x40d: 0x5c, 0x40e: 0xfd, 0x40f: 0xfd, + 0x410: 0x13b, 0x411: 0x13c, 0x412: 0x13d, 0x413: 0x13e, 0x414: 0xfd, 0x415: 0xfd, 0x416: 0x13f, 0x417: 0x140, + 0x418: 0x141, 0x419: 0x142, 0x41a: 0x143, 0x41b: 0x144, 0x41c: 0x145, 0x41d: 0xfd, 0x41e: 0xfd, 0x41f: 0xfd, + 0x420: 0x146, 0x421: 0xfd, 0x422: 0x147, 0x423: 0x148, 0x424: 0x5d, 0x425: 0x149, 0x426: 0x14a, 0x427: 0x14b, + 0x428: 0x14c, 0x429: 0x14d, 0x42a: 0x14e, 0x42b: 0x14f, 0x42c: 0xfd, 0x42d: 0xfd, 0x42e: 0xfd, 0x42f: 0xfd, + 0x430: 0x150, 0x431: 0x151, 0x432: 0x152, 0x433: 0xfd, 0x434: 0x153, 0x435: 0x154, 0x436: 0x155, 0x437: 0xfd, + 0x438: 0xfd, 0x439: 0xfd, 0x43a: 0xfd, 0x43b: 0x156, 0x43c: 0xfd, 0x43d: 0xfd, 0x43e: 0x157, 0x43f: 0x158, // Block 0x11, offset 0x440 0x440: 0xa0, 0x441: 0xa0, 0x442: 0xa0, 0x443: 0xa0, 0x444: 0xa0, 0x445: 0xa0, 0x446: 0xa0, 0x447: 0xa0, - 0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x157, 0x44f: 0xfb, - 0x450: 0x9c, 0x451: 0x158, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x159, 0x456: 0xfb, 0x457: 0xfb, - 0x458: 0xfb, 0x459: 0xfb, 0x45a: 0xfb, 0x45b: 0xfb, 0x45c: 0xfb, 0x45d: 0xfb, 0x45e: 0xfb, 0x45f: 0xfb, - 0x460: 0xfb, 0x461: 0xfb, 0x462: 0xfb, 0x463: 0xfb, 0x464: 0xfb, 0x465: 0xfb, 0x466: 0xfb, 0x467: 0xfb, - 0x468: 0xfb, 0x469: 0xfb, 0x46a: 0xfb, 0x46b: 0xfb, 0x46c: 0xfb, 0x46d: 0xfb, 0x46e: 0xfb, 0x46f: 0xfb, - 0x470: 0xfb, 0x471: 0xfb, 0x472: 0xfb, 0x473: 0xfb, 0x474: 0xfb, 0x475: 0xfb, 0x476: 0xfb, 0x477: 0xfb, - 0x478: 0xfb, 0x479: 0xfb, 0x47a: 0xfb, 0x47b: 0xfb, 0x47c: 0xfb, 0x47d: 0xfb, 0x47e: 0xfb, 0x47f: 0xfb, + 0x448: 0xa0, 0x449: 0xa0, 0x44a: 0xa0, 0x44b: 0xa0, 0x44c: 0xa0, 0x44d: 0xa0, 0x44e: 0x159, 0x44f: 0xfd, + 0x450: 0x9c, 0x451: 0x15a, 0x452: 0xa0, 0x453: 0xa0, 0x454: 0xa0, 0x455: 0x15b, 0x456: 0xfd, 0x457: 0xfd, + 0x458: 0xfd, 0x459: 0xfd, 0x45a: 0xfd, 0x45b: 0xfd, 0x45c: 0xfd, 0x45d: 0xfd, 0x45e: 0xfd, 0x45f: 0xfd, + 0x460: 0xfd, 0x461: 0xfd, 0x462: 0xfd, 0x463: 0xfd, 0x464: 0xfd, 0x465: 0xfd, 0x466: 0xfd, 0x467: 0xfd, + 0x468: 0xfd, 0x469: 0xfd, 0x46a: 0xfd, 0x46b: 0xfd, 0x46c: 0xfd, 0x46d: 0xfd, 0x46e: 0xfd, 0x46f: 0xfd, + 0x470: 0xfd, 0x471: 0xfd, 0x472: 0xfd, 0x473: 0xfd, 0x474: 0xfd, 0x475: 0xfd, 0x476: 0xfd, 0x477: 0xfd, + 0x478: 0xfd, 0x479: 0xfd, 0x47a: 0xfd, 0x47b: 0xfd, 0x47c: 0xfd, 0x47d: 0xfd, 0x47e: 0xfd, 0x47f: 0xfd, // Block 0x12, offset 0x480 0x480: 0xa0, 0x481: 0xa0, 0x482: 0xa0, 0x483: 0xa0, 0x484: 0xa0, 0x485: 0xa0, 0x486: 0xa0, 0x487: 0xa0, 0x488: 0xa0, 0x489: 0xa0, 0x48a: 0xa0, 0x48b: 0xa0, 0x48c: 0xa0, 0x48d: 0xa0, 0x48e: 0xa0, 0x48f: 0xa0, - 0x490: 0x15a, 0x491: 0xfb, 0x492: 0xfb, 0x493: 0xfb, 0x494: 0xfb, 0x495: 0xfb, 0x496: 0xfb, 0x497: 0xfb, - 0x498: 0xfb, 0x499: 0xfb, 0x49a: 0xfb, 0x49b: 0xfb, 0x49c: 0xfb, 0x49d: 0xfb, 0x49e: 0xfb, 0x49f: 0xfb, - 0x4a0: 0xfb, 0x4a1: 0xfb, 0x4a2: 0xfb, 0x4a3: 0xfb, 0x4a4: 0xfb, 0x4a5: 0xfb, 0x4a6: 0xfb, 0x4a7: 0xfb, - 0x4a8: 0xfb, 0x4a9: 0xfb, 0x4aa: 0xfb, 0x4ab: 0xfb, 0x4ac: 0xfb, 0x4ad: 0xfb, 0x4ae: 0xfb, 0x4af: 0xfb, - 0x4b0: 0xfb, 0x4b1: 0xfb, 0x4b2: 0xfb, 0x4b3: 0xfb, 0x4b4: 0xfb, 0x4b5: 0xfb, 0x4b6: 0xfb, 0x4b7: 0xfb, - 0x4b8: 0xfb, 0x4b9: 0xfb, 0x4ba: 0xfb, 0x4bb: 0xfb, 0x4bc: 0xfb, 0x4bd: 0xfb, 0x4be: 0xfb, 0x4bf: 0xfb, + 0x490: 0x15c, 0x491: 0xfd, 0x492: 0xfd, 0x493: 0xfd, 0x494: 0xfd, 0x495: 0xfd, 0x496: 0xfd, 0x497: 0xfd, + 0x498: 0xfd, 0x499: 0xfd, 0x49a: 0xfd, 0x49b: 0xfd, 0x49c: 0xfd, 0x49d: 0xfd, 0x49e: 0xfd, 0x49f: 0xfd, + 0x4a0: 0xfd, 0x4a1: 0xfd, 0x4a2: 0xfd, 0x4a3: 0xfd, 0x4a4: 0xfd, 0x4a5: 0xfd, 0x4a6: 0xfd, 0x4a7: 0xfd, + 0x4a8: 0xfd, 0x4a9: 0xfd, 0x4aa: 0xfd, 0x4ab: 0xfd, 0x4ac: 0xfd, 0x4ad: 0xfd, 0x4ae: 0xfd, 0x4af: 0xfd, + 0x4b0: 0xfd, 0x4b1: 0xfd, 0x4b2: 0xfd, 0x4b3: 0xfd, 0x4b4: 0xfd, 0x4b5: 0xfd, 0x4b6: 0xfd, 0x4b7: 0xfd, + 0x4b8: 0xfd, 0x4b9: 0xfd, 0x4ba: 0xfd, 0x4bb: 0xfd, 0x4bc: 0xfd, 0x4bd: 0xfd, 0x4be: 0xfd, 0x4bf: 0xfd, // Block 0x13, offset 0x4c0 - 0x4c0: 0xfb, 0x4c1: 0xfb, 0x4c2: 0xfb, 0x4c3: 0xfb, 0x4c4: 0xfb, 0x4c5: 0xfb, 0x4c6: 0xfb, 0x4c7: 0xfb, - 0x4c8: 0xfb, 0x4c9: 0xfb, 0x4ca: 0xfb, 0x4cb: 0xfb, 0x4cc: 0xfb, 0x4cd: 0xfb, 0x4ce: 0xfb, 0x4cf: 0xfb, + 0x4c0: 0xfd, 0x4c1: 0xfd, 0x4c2: 0xfd, 0x4c3: 0xfd, 0x4c4: 0xfd, 0x4c5: 0xfd, 0x4c6: 0xfd, 0x4c7: 0xfd, + 0x4c8: 0xfd, 0x4c9: 0xfd, 0x4ca: 0xfd, 0x4cb: 0xfd, 0x4cc: 0xfd, 0x4cd: 0xfd, 0x4ce: 0xfd, 0x4cf: 0xfd, 0x4d0: 0xa0, 0x4d1: 0xa0, 0x4d2: 0xa0, 0x4d3: 0xa0, 0x4d4: 0xa0, 0x4d5: 0xa0, 0x4d6: 0xa0, 0x4d7: 0xa0, - 0x4d8: 0xa0, 0x4d9: 0x15b, 0x4da: 0xfb, 0x4db: 0xfb, 0x4dc: 0xfb, 0x4dd: 0xfb, 0x4de: 0xfb, 0x4df: 0xfb, - 0x4e0: 0xfb, 0x4e1: 0xfb, 0x4e2: 0xfb, 0x4e3: 0xfb, 0x4e4: 0xfb, 0x4e5: 0xfb, 0x4e6: 0xfb, 0x4e7: 0xfb, - 0x4e8: 0xfb, 0x4e9: 0xfb, 0x4ea: 0xfb, 0x4eb: 0xfb, 0x4ec: 0xfb, 0x4ed: 0xfb, 0x4ee: 0xfb, 0x4ef: 0xfb, - 0x4f0: 0xfb, 0x4f1: 0xfb, 0x4f2: 0xfb, 0x4f3: 0xfb, 0x4f4: 0xfb, 0x4f5: 0xfb, 0x4f6: 0xfb, 0x4f7: 0xfb, - 0x4f8: 0xfb, 0x4f9: 0xfb, 0x4fa: 0xfb, 0x4fb: 0xfb, 0x4fc: 0xfb, 0x4fd: 0xfb, 0x4fe: 0xfb, 0x4ff: 0xfb, + 0x4d8: 0xa0, 0x4d9: 0x15d, 0x4da: 0xfd, 0x4db: 0xfd, 0x4dc: 0xfd, 0x4dd: 0xfd, 0x4de: 0xfd, 0x4df: 0xfd, + 0x4e0: 0xfd, 0x4e1: 0xfd, 0x4e2: 0xfd, 0x4e3: 0xfd, 0x4e4: 0xfd, 0x4e5: 0xfd, 0x4e6: 0xfd, 0x4e7: 0xfd, + 0x4e8: 0xfd, 0x4e9: 0xfd, 0x4ea: 0xfd, 0x4eb: 0xfd, 0x4ec: 0xfd, 0x4ed: 0xfd, 0x4ee: 0xfd, 0x4ef: 0xfd, + 0x4f0: 0xfd, 0x4f1: 0xfd, 0x4f2: 0xfd, 0x4f3: 0xfd, 0x4f4: 0xfd, 0x4f5: 0xfd, 0x4f6: 0xfd, 0x4f7: 0xfd, + 0x4f8: 0xfd, 0x4f9: 0xfd, 0x4fa: 0xfd, 0x4fb: 0xfd, 0x4fc: 0xfd, 0x4fd: 0xfd, 0x4fe: 0xfd, 0x4ff: 0xfd, // Block 0x14, offset 0x500 - 0x500: 0xfb, 0x501: 0xfb, 0x502: 0xfb, 0x503: 0xfb, 0x504: 0xfb, 0x505: 0xfb, 0x506: 0xfb, 0x507: 0xfb, - 0x508: 0xfb, 0x509: 0xfb, 0x50a: 0xfb, 0x50b: 0xfb, 0x50c: 0xfb, 0x50d: 0xfb, 0x50e: 0xfb, 0x50f: 0xfb, - 0x510: 0xfb, 0x511: 0xfb, 0x512: 0xfb, 0x513: 0xfb, 0x514: 0xfb, 0x515: 0xfb, 0x516: 0xfb, 0x517: 0xfb, - 0x518: 0xfb, 0x519: 0xfb, 0x51a: 0xfb, 0x51b: 0xfb, 0x51c: 0xfb, 0x51d: 0xfb, 0x51e: 0xfb, 0x51f: 0xfb, + 0x500: 0xfd, 0x501: 0xfd, 0x502: 0xfd, 0x503: 0xfd, 0x504: 0xfd, 0x505: 0xfd, 0x506: 0xfd, 0x507: 0xfd, + 0x508: 0xfd, 0x509: 0xfd, 0x50a: 0xfd, 0x50b: 0xfd, 0x50c: 0xfd, 0x50d: 0xfd, 0x50e: 0xfd, 0x50f: 0xfd, + 0x510: 0xfd, 0x511: 0xfd, 0x512: 0xfd, 0x513: 0xfd, 0x514: 0xfd, 0x515: 0xfd, 0x516: 0xfd, 0x517: 0xfd, + 0x518: 0xfd, 0x519: 0xfd, 0x51a: 0xfd, 0x51b: 0xfd, 0x51c: 0xfd, 0x51d: 0xfd, 0x51e: 0xfd, 0x51f: 0xfd, 0x520: 0xa0, 0x521: 0xa0, 0x522: 0xa0, 0x523: 0xa0, 0x524: 0xa0, 0x525: 0xa0, 0x526: 0xa0, 0x527: 0xa0, - 0x528: 0x14d, 0x529: 0x15c, 0x52a: 0xfb, 0x52b: 0x15d, 0x52c: 0x15e, 0x52d: 0x15f, 0x52e: 0x160, 0x52f: 0xfb, - 0x530: 0xfb, 0x531: 0xfb, 0x532: 0xfb, 0x533: 0xfb, 0x534: 0xfb, 0x535: 0xfb, 0x536: 0xfb, 0x537: 0xfb, - 0x538: 0xfb, 0x539: 0x161, 0x53a: 0x162, 0x53b: 0xfb, 0x53c: 0xa0, 0x53d: 0x163, 0x53e: 0x164, 0x53f: 0x165, + 0x528: 0x14f, 0x529: 0x15e, 0x52a: 0xfd, 0x52b: 0x15f, 0x52c: 0x160, 0x52d: 0x161, 0x52e: 0x162, 0x52f: 0xfd, + 0x530: 0xfd, 0x531: 0xfd, 0x532: 0xfd, 0x533: 0xfd, 0x534: 0xfd, 0x535: 0xfd, 0x536: 0xfd, 0x537: 0xfd, + 0x538: 0xfd, 0x539: 0x163, 0x53a: 0x164, 0x53b: 0xfd, 0x53c: 0xa0, 0x53d: 0x165, 0x53e: 0x166, 0x53f: 0x167, // Block 0x15, offset 0x540 0x540: 0xa0, 0x541: 0xa0, 0x542: 0xa0, 0x543: 0xa0, 0x544: 0xa0, 0x545: 0xa0, 0x546: 0xa0, 0x547: 0xa0, 0x548: 0xa0, 0x549: 0xa0, 0x54a: 0xa0, 0x54b: 0xa0, 0x54c: 0xa0, 0x54d: 0xa0, 0x54e: 0xa0, 0x54f: 0xa0, 0x550: 0xa0, 0x551: 0xa0, 0x552: 0xa0, 0x553: 0xa0, 0x554: 0xa0, 0x555: 0xa0, 0x556: 0xa0, 0x557: 0xa0, - 0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x166, + 0x558: 0xa0, 0x559: 0xa0, 0x55a: 0xa0, 0x55b: 0xa0, 0x55c: 0xa0, 0x55d: 0xa0, 0x55e: 0xa0, 0x55f: 0x168, 0x560: 0xa0, 0x561: 0xa0, 0x562: 0xa0, 0x563: 0xa0, 0x564: 0xa0, 0x565: 0xa0, 0x566: 0xa0, 0x567: 0xa0, 0x568: 0xa0, 0x569: 0xa0, 0x56a: 0xa0, 0x56b: 0xa0, 0x56c: 0xa0, 0x56d: 0xa0, 0x56e: 0xa0, 0x56f: 0xa0, - 0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x167, 0x574: 0x168, 0x575: 0xfb, 0x576: 0xfb, 0x577: 0xfb, - 0x578: 0xfb, 0x579: 0xfb, 0x57a: 0xfb, 0x57b: 0xfb, 0x57c: 0xfb, 0x57d: 0xfb, 0x57e: 0xfb, 0x57f: 0xfb, + 0x570: 0xa0, 0x571: 0xa0, 0x572: 0xa0, 0x573: 0x169, 0x574: 0x16a, 0x575: 0xfd, 0x576: 0xfd, 0x577: 0xfd, + 0x578: 0xfd, 0x579: 0xfd, 0x57a: 0xfd, 0x57b: 0xfd, 0x57c: 0xfd, 0x57d: 0xfd, 0x57e: 0xfd, 0x57f: 0xfd, // Block 0x16, offset 0x580 - 0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x169, 0x585: 0x16a, 0x586: 0xa0, 0x587: 0xa0, - 0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16b, 0x58c: 0xfb, 0x58d: 0xfb, 0x58e: 0xfb, 0x58f: 0xfb, - 0x590: 0xfb, 0x591: 0xfb, 0x592: 0xfb, 0x593: 0xfb, 0x594: 0xfb, 0x595: 0xfb, 0x596: 0xfb, 0x597: 0xfb, - 0x598: 0xfb, 0x599: 0xfb, 0x59a: 0xfb, 0x59b: 0xfb, 0x59c: 0xfb, 0x59d: 0xfb, 0x59e: 0xfb, 0x59f: 0xfb, - 0x5a0: 0xfb, 0x5a1: 0xfb, 0x5a2: 0xfb, 0x5a3: 0xfb, 0x5a4: 0xfb, 0x5a5: 0xfb, 0x5a6: 0xfb, 0x5a7: 0xfb, - 0x5a8: 0xfb, 0x5a9: 0xfb, 0x5aa: 0xfb, 0x5ab: 0xfb, 0x5ac: 0xfb, 0x5ad: 0xfb, 0x5ae: 0xfb, 0x5af: 0xfb, - 0x5b0: 0xa0, 0x5b1: 0x16c, 0x5b2: 0x16d, 0x5b3: 0xfb, 0x5b4: 0xfb, 0x5b5: 0xfb, 0x5b6: 0xfb, 0x5b7: 0xfb, - 0x5b8: 0xfb, 0x5b9: 0xfb, 0x5ba: 0xfb, 0x5bb: 0xfb, 0x5bc: 0xfb, 0x5bd: 0xfb, 0x5be: 0xfb, 0x5bf: 0xfb, + 0x580: 0xa0, 0x581: 0xa0, 0x582: 0xa0, 0x583: 0xa0, 0x584: 0x16b, 0x585: 0x16c, 0x586: 0xa0, 0x587: 0xa0, + 0x588: 0xa0, 0x589: 0xa0, 0x58a: 0xa0, 0x58b: 0x16d, 0x58c: 0xfd, 0x58d: 0xfd, 0x58e: 0xfd, 0x58f: 0xfd, + 0x590: 0xfd, 0x591: 0xfd, 0x592: 0xfd, 0x593: 0xfd, 0x594: 0xfd, 0x595: 0xfd, 0x596: 0xfd, 0x597: 0xfd, + 0x598: 0xfd, 0x599: 0xfd, 0x59a: 0xfd, 0x59b: 0xfd, 0x59c: 0xfd, 0x59d: 0xfd, 0x59e: 0xfd, 0x59f: 0xfd, + 0x5a0: 0xfd, 0x5a1: 0xfd, 0x5a2: 0xfd, 0x5a3: 0xfd, 0x5a4: 0xfd, 0x5a5: 0xfd, 0x5a6: 0xfd, 0x5a7: 0xfd, + 0x5a8: 0xfd, 0x5a9: 0xfd, 0x5aa: 0xfd, 0x5ab: 0xfd, 0x5ac: 0xfd, 0x5ad: 0xfd, 0x5ae: 0xfd, 0x5af: 0xfd, + 0x5b0: 0xa0, 0x5b1: 0x16e, 0x5b2: 0x16f, 0x5b3: 0xfd, 0x5b4: 0xfd, 0x5b5: 0xfd, 0x5b6: 0xfd, 0x5b7: 0xfd, + 0x5b8: 0xfd, 0x5b9: 0xfd, 0x5ba: 0xfd, 0x5bb: 0xfd, 0x5bc: 0xfd, 0x5bd: 0xfd, 0x5be: 0xfd, 0x5bf: 0xfd, // Block 0x17, offset 0x5c0 - 0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x16e, 0x5c4: 0x16f, 0x5c5: 0x170, 0x5c6: 0x171, 0x5c7: 0x172, - 0x5c8: 0x9c, 0x5c9: 0x173, 0x5ca: 0xfb, 0x5cb: 0x174, 0x5cc: 0x9c, 0x5cd: 0x175, 0x5ce: 0xfb, 0x5cf: 0xfb, - 0x5d0: 0x60, 0x5d1: 0x61, 0x5d2: 0x62, 0x5d3: 0x63, 0x5d4: 0x64, 0x5d5: 0x65, 0x5d6: 0x66, 0x5d7: 0x67, - 0x5d8: 0x68, 0x5d9: 0x69, 0x5da: 0x6a, 0x5db: 0x6b, 0x5dc: 0x6c, 0x5dd: 0x6d, 0x5de: 0x6e, 0x5df: 0x6f, + 0x5c0: 0x9c, 0x5c1: 0x9c, 0x5c2: 0x9c, 0x5c3: 0x170, 0x5c4: 0x171, 0x5c5: 0x172, 0x5c6: 0x173, 0x5c7: 0x174, + 0x5c8: 0x9c, 0x5c9: 0x175, 0x5ca: 0xfd, 0x5cb: 0x176, 0x5cc: 0x9c, 0x5cd: 0x177, 0x5ce: 0xfd, 0x5cf: 0xfd, + 0x5d0: 0x5e, 0x5d1: 0x5f, 0x5d2: 0x60, 0x5d3: 0x61, 0x5d4: 0x62, 0x5d5: 0x63, 0x5d6: 0x64, 0x5d7: 0x65, + 0x5d8: 0x66, 0x5d9: 0x67, 0x5da: 0x68, 0x5db: 0x69, 0x5dc: 0x6a, 0x5dd: 0x6b, 0x5de: 0x6c, 0x5df: 0x6d, 0x5e0: 0x9c, 0x5e1: 0x9c, 0x5e2: 0x9c, 0x5e3: 0x9c, 0x5e4: 0x9c, 0x5e5: 0x9c, 0x5e6: 0x9c, 0x5e7: 0x9c, - 0x5e8: 0x176, 0x5e9: 0x177, 0x5ea: 0x178, 0x5eb: 0xfb, 0x5ec: 0xfb, 0x5ed: 0xfb, 0x5ee: 0xfb, 0x5ef: 0xfb, - 0x5f0: 0xfb, 0x5f1: 0xfb, 0x5f2: 0xfb, 0x5f3: 0xfb, 0x5f4: 0xfb, 0x5f5: 0xfb, 0x5f6: 0xfb, 0x5f7: 0xfb, - 0x5f8: 0xfb, 0x5f9: 0xfb, 0x5fa: 0xfb, 0x5fb: 0xfb, 0x5fc: 0xfb, 0x5fd: 0xfb, 0x5fe: 0xfb, 0x5ff: 0xfb, + 0x5e8: 0x178, 0x5e9: 0x179, 0x5ea: 0x17a, 0x5eb: 0xfd, 0x5ec: 0xfd, 0x5ed: 0xfd, 0x5ee: 0xfd, 0x5ef: 0xfd, + 0x5f0: 0xfd, 0x5f1: 0xfd, 0x5f2: 0xfd, 0x5f3: 0xfd, 0x5f4: 0xfd, 0x5f5: 0xfd, 0x5f6: 0xfd, 0x5f7: 0xfd, + 0x5f8: 0xfd, 0x5f9: 0xfd, 0x5fa: 0xfd, 0x5fb: 0xfd, 0x5fc: 0xfd, 0x5fd: 0xfd, 0x5fe: 0xfd, 0x5ff: 0xfd, // Block 0x18, offset 0x600 - 0x600: 0x179, 0x601: 0xfb, 0x602: 0xfb, 0x603: 0xfb, 0x604: 0x17a, 0x605: 0x17b, 0x606: 0xfb, 0x607: 0xfb, - 0x608: 0xfb, 0x609: 0xfb, 0x60a: 0xfb, 0x60b: 0x17c, 0x60c: 0xfb, 0x60d: 0xfb, 0x60e: 0xfb, 0x60f: 0xfb, - 0x610: 0xfb, 0x611: 0xfb, 0x612: 0xfb, 0x613: 0xfb, 0x614: 0xfb, 0x615: 0xfb, 0x616: 0xfb, 0x617: 0xfb, - 0x618: 0xfb, 0x619: 0xfb, 0x61a: 0xfb, 0x61b: 0xfb, 0x61c: 0xfb, 0x61d: 0xfb, 0x61e: 0xfb, 0x61f: 0xfb, - 0x620: 0x123, 0x621: 0x123, 0x622: 0x123, 0x623: 0x17d, 0x624: 0x70, 0x625: 0x17e, 0x626: 0xfb, 0x627: 0xfb, - 0x628: 0xfb, 0x629: 0xfb, 0x62a: 0xfb, 0x62b: 0xfb, 0x62c: 0xfb, 0x62d: 0xfb, 0x62e: 0xfb, 0x62f: 0xfb, - 0x630: 0xfb, 0x631: 0x17f, 0x632: 0x180, 0x633: 0xfb, 0x634: 0x181, 0x635: 0xfb, 0x636: 0xfb, 0x637: 0xfb, - 0x638: 0x71, 0x639: 0x72, 0x63a: 0x73, 0x63b: 0x182, 0x63c: 0xfb, 0x63d: 0xfb, 0x63e: 0xfb, 0x63f: 0xfb, + 0x600: 0x17b, 0x601: 0xfd, 0x602: 0xfd, 0x603: 0xfd, 0x604: 0x17c, 0x605: 0x17d, 0x606: 0xfd, 0x607: 0xfd, + 0x608: 0xfd, 0x609: 0xfd, 0x60a: 0xfd, 0x60b: 0x17e, 0x60c: 0xfd, 0x60d: 0xfd, 0x60e: 0xfd, 0x60f: 0xfd, + 0x610: 0xfd, 0x611: 0xfd, 0x612: 0xfd, 0x613: 0xfd, 0x614: 0xfd, 0x615: 0xfd, 0x616: 0xfd, 0x617: 0xfd, + 0x618: 0xfd, 0x619: 0xfd, 0x61a: 0xfd, 0x61b: 0xfd, 0x61c: 0xfd, 0x61d: 0xfd, 0x61e: 0xfd, 0x61f: 0xfd, + 0x620: 0x125, 0x621: 0x125, 0x622: 0x125, 0x623: 0x17f, 0x624: 0x6e, 0x625: 0x180, 0x626: 0xfd, 0x627: 0xfd, + 0x628: 0xfd, 0x629: 0xfd, 0x62a: 0xfd, 0x62b: 0xfd, 0x62c: 0xfd, 0x62d: 0xfd, 0x62e: 0xfd, 0x62f: 0xfd, + 0x630: 0xfd, 0x631: 0x181, 0x632: 0x182, 0x633: 0xfd, 0x634: 0x183, 0x635: 0xfd, 0x636: 0xfd, 0x637: 0xfd, + 0x638: 0x6f, 0x639: 0x70, 0x63a: 0x71, 0x63b: 0x184, 0x63c: 0xfd, 0x63d: 0xfd, 0x63e: 0xfd, 0x63f: 0xfd, // Block 0x19, offset 0x640 - 0x640: 0x183, 0x641: 0x9c, 0x642: 0x184, 0x643: 0x185, 0x644: 0x74, 0x645: 0x75, 0x646: 0x186, 0x647: 0x187, - 0x648: 0x76, 0x649: 0x188, 0x64a: 0xfb, 0x64b: 0xfb, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c, + 0x640: 0x185, 0x641: 0x9c, 0x642: 0x186, 0x643: 0x187, 0x644: 0x72, 0x645: 0x73, 0x646: 0x188, 0x647: 0x189, + 0x648: 0x74, 0x649: 0x18a, 0x64a: 0xfd, 0x64b: 0xfd, 0x64c: 0x9c, 0x64d: 0x9c, 0x64e: 0x9c, 0x64f: 0x9c, 0x650: 0x9c, 0x651: 0x9c, 0x652: 0x9c, 0x653: 0x9c, 0x654: 0x9c, 0x655: 0x9c, 0x656: 0x9c, 0x657: 0x9c, - 0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x189, 0x65c: 0x9c, 0x65d: 0x18a, 0x65e: 0x9c, 0x65f: 0x18b, - 0x660: 0x18c, 0x661: 0x18d, 0x662: 0x18e, 0x663: 0xfb, 0x664: 0x9c, 0x665: 0x18f, 0x666: 0x9c, 0x667: 0x190, - 0x668: 0x9c, 0x669: 0x191, 0x66a: 0x192, 0x66b: 0x193, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x194, 0x66f: 0x195, - 0x670: 0xfb, 0x671: 0xfb, 0x672: 0xfb, 0x673: 0xfb, 0x674: 0xfb, 0x675: 0xfb, 0x676: 0xfb, 0x677: 0xfb, - 0x678: 0xfb, 0x679: 0xfb, 0x67a: 0xfb, 0x67b: 0xfb, 0x67c: 0xfb, 0x67d: 0xfb, 0x67e: 0xfb, 0x67f: 0xfb, + 0x658: 0x9c, 0x659: 0x9c, 0x65a: 0x9c, 0x65b: 0x18b, 0x65c: 0x9c, 0x65d: 0x18c, 0x65e: 0x9c, 0x65f: 0x18d, + 0x660: 0x18e, 0x661: 0x18f, 0x662: 0x190, 0x663: 0xfd, 0x664: 0x9c, 0x665: 0x191, 0x666: 0x9c, 0x667: 0x192, + 0x668: 0x9c, 0x669: 0x193, 0x66a: 0x194, 0x66b: 0x195, 0x66c: 0x9c, 0x66d: 0x9c, 0x66e: 0x196, 0x66f: 0x197, + 0x670: 0xfd, 0x671: 0xfd, 0x672: 0xfd, 0x673: 0xfd, 0x674: 0xfd, 0x675: 0xfd, 0x676: 0xfd, 0x677: 0xfd, + 0x678: 0xfd, 0x679: 0xfd, 0x67a: 0xfd, 0x67b: 0xfd, 0x67c: 0xfd, 0x67d: 0xfd, 0x67e: 0xfd, 0x67f: 0xfd, // Block 0x1a, offset 0x680 0x680: 0xa0, 0x681: 0xa0, 0x682: 0xa0, 0x683: 0xa0, 0x684: 0xa0, 0x685: 0xa0, 0x686: 0xa0, 0x687: 0xa0, 0x688: 0xa0, 0x689: 0xa0, 0x68a: 0xa0, 0x68b: 0xa0, 0x68c: 0xa0, 0x68d: 0xa0, 0x68e: 0xa0, 0x68f: 0xa0, 0x690: 0xa0, 0x691: 0xa0, 0x692: 0xa0, 0x693: 0xa0, 0x694: 0xa0, 0x695: 0xa0, 0x696: 0xa0, 0x697: 0xa0, - 0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x196, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0, + 0x698: 0xa0, 0x699: 0xa0, 0x69a: 0xa0, 0x69b: 0x198, 0x69c: 0xa0, 0x69d: 0xa0, 0x69e: 0xa0, 0x69f: 0xa0, 0x6a0: 0xa0, 0x6a1: 0xa0, 0x6a2: 0xa0, 0x6a3: 0xa0, 0x6a4: 0xa0, 0x6a5: 0xa0, 0x6a6: 0xa0, 0x6a7: 0xa0, 0x6a8: 0xa0, 0x6a9: 0xa0, 0x6aa: 0xa0, 0x6ab: 0xa0, 0x6ac: 0xa0, 0x6ad: 0xa0, 0x6ae: 0xa0, 0x6af: 0xa0, 0x6b0: 0xa0, 0x6b1: 0xa0, 0x6b2: 0xa0, 0x6b3: 0xa0, 0x6b4: 0xa0, 0x6b5: 0xa0, 0x6b6: 0xa0, 0x6b7: 0xa0, @@ -2312,8 +2454,8 @@ var idnaIndex = [2368]uint16{ 0x6c0: 0xa0, 0x6c1: 0xa0, 0x6c2: 0xa0, 0x6c3: 0xa0, 0x6c4: 0xa0, 0x6c5: 0xa0, 0x6c6: 0xa0, 0x6c7: 0xa0, 0x6c8: 0xa0, 0x6c9: 0xa0, 0x6ca: 0xa0, 0x6cb: 0xa0, 0x6cc: 0xa0, 0x6cd: 0xa0, 0x6ce: 0xa0, 0x6cf: 0xa0, 0x6d0: 0xa0, 0x6d1: 0xa0, 0x6d2: 0xa0, 0x6d3: 0xa0, 0x6d4: 0xa0, 0x6d5: 0xa0, 0x6d6: 0xa0, 0x6d7: 0xa0, - 0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x197, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0, - 0x6e0: 0x198, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0, + 0x6d8: 0xa0, 0x6d9: 0xa0, 0x6da: 0xa0, 0x6db: 0xa0, 0x6dc: 0x199, 0x6dd: 0xa0, 0x6de: 0xa0, 0x6df: 0xa0, + 0x6e0: 0x19a, 0x6e1: 0xa0, 0x6e2: 0xa0, 0x6e3: 0xa0, 0x6e4: 0xa0, 0x6e5: 0xa0, 0x6e6: 0xa0, 0x6e7: 0xa0, 0x6e8: 0xa0, 0x6e9: 0xa0, 0x6ea: 0xa0, 0x6eb: 0xa0, 0x6ec: 0xa0, 0x6ed: 0xa0, 0x6ee: 0xa0, 0x6ef: 0xa0, 0x6f0: 0xa0, 0x6f1: 0xa0, 0x6f2: 0xa0, 0x6f3: 0xa0, 0x6f4: 0xa0, 0x6f5: 0xa0, 0x6f6: 0xa0, 0x6f7: 0xa0, 0x6f8: 0xa0, 0x6f9: 0xa0, 0x6fa: 0xa0, 0x6fb: 0xa0, 0x6fc: 0xa0, 0x6fd: 0xa0, 0x6fe: 0xa0, 0x6ff: 0xa0, @@ -2325,34 +2467,34 @@ var idnaIndex = [2368]uint16{ 0x720: 0xa0, 0x721: 0xa0, 0x722: 0xa0, 0x723: 0xa0, 0x724: 0xa0, 0x725: 0xa0, 0x726: 0xa0, 0x727: 0xa0, 0x728: 0xa0, 0x729: 0xa0, 0x72a: 0xa0, 0x72b: 0xa0, 0x72c: 0xa0, 0x72d: 0xa0, 0x72e: 0xa0, 0x72f: 0xa0, 0x730: 0xa0, 0x731: 0xa0, 0x732: 0xa0, 0x733: 0xa0, 0x734: 0xa0, 0x735: 0xa0, 0x736: 0xa0, 0x737: 0xa0, - 0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x199, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0, + 0x738: 0xa0, 0x739: 0xa0, 0x73a: 0x19b, 0x73b: 0xa0, 0x73c: 0xa0, 0x73d: 0xa0, 0x73e: 0xa0, 0x73f: 0xa0, // Block 0x1d, offset 0x740 0x740: 0xa0, 0x741: 0xa0, 0x742: 0xa0, 0x743: 0xa0, 0x744: 0xa0, 0x745: 0xa0, 0x746: 0xa0, 0x747: 0xa0, 0x748: 0xa0, 0x749: 0xa0, 0x74a: 0xa0, 0x74b: 0xa0, 0x74c: 0xa0, 0x74d: 0xa0, 0x74e: 0xa0, 0x74f: 0xa0, 0x750: 0xa0, 0x751: 0xa0, 0x752: 0xa0, 0x753: 0xa0, 0x754: 0xa0, 0x755: 0xa0, 0x756: 0xa0, 0x757: 0xa0, 0x758: 0xa0, 0x759: 0xa0, 0x75a: 0xa0, 0x75b: 0xa0, 0x75c: 0xa0, 0x75d: 0xa0, 0x75e: 0xa0, 0x75f: 0xa0, 0x760: 0xa0, 0x761: 0xa0, 0x762: 0xa0, 0x763: 0xa0, 0x764: 0xa0, 0x765: 0xa0, 0x766: 0xa0, 0x767: 0xa0, - 0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19a, - 0x770: 0xfb, 0x771: 0xfb, 0x772: 0xfb, 0x773: 0xfb, 0x774: 0xfb, 0x775: 0xfb, 0x776: 0xfb, 0x777: 0xfb, - 0x778: 0xfb, 0x779: 0xfb, 0x77a: 0xfb, 0x77b: 0xfb, 0x77c: 0xfb, 0x77d: 0xfb, 0x77e: 0xfb, 0x77f: 0xfb, + 0x768: 0xa0, 0x769: 0xa0, 0x76a: 0xa0, 0x76b: 0xa0, 0x76c: 0xa0, 0x76d: 0xa0, 0x76e: 0xa0, 0x76f: 0x19c, + 0x770: 0xfd, 0x771: 0xfd, 0x772: 0xfd, 0x773: 0xfd, 0x774: 0xfd, 0x775: 0xfd, 0x776: 0xfd, 0x777: 0xfd, + 0x778: 0xfd, 0x779: 0xfd, 0x77a: 0xfd, 0x77b: 0xfd, 0x77c: 0xfd, 0x77d: 0xfd, 0x77e: 0xfd, 0x77f: 0xfd, // Block 0x1e, offset 0x780 - 0x780: 0xfb, 0x781: 0xfb, 0x782: 0xfb, 0x783: 0xfb, 0x784: 0xfb, 0x785: 0xfb, 0x786: 0xfb, 0x787: 0xfb, - 0x788: 0xfb, 0x789: 0xfb, 0x78a: 0xfb, 0x78b: 0xfb, 0x78c: 0xfb, 0x78d: 0xfb, 0x78e: 0xfb, 0x78f: 0xfb, - 0x790: 0xfb, 0x791: 0xfb, 0x792: 0xfb, 0x793: 0xfb, 0x794: 0xfb, 0x795: 0xfb, 0x796: 0xfb, 0x797: 0xfb, - 0x798: 0xfb, 0x799: 0xfb, 0x79a: 0xfb, 0x79b: 0xfb, 0x79c: 0xfb, 0x79d: 0xfb, 0x79e: 0xfb, 0x79f: 0xfb, - 0x7a0: 0x77, 0x7a1: 0x78, 0x7a2: 0x79, 0x7a3: 0x19b, 0x7a4: 0x7a, 0x7a5: 0x7b, 0x7a6: 0x19c, 0x7a7: 0x7c, - 0x7a8: 0x7d, 0x7a9: 0xfb, 0x7aa: 0xfb, 0x7ab: 0xfb, 0x7ac: 0xfb, 0x7ad: 0xfb, 0x7ae: 0xfb, 0x7af: 0xfb, - 0x7b0: 0xfb, 0x7b1: 0xfb, 0x7b2: 0xfb, 0x7b3: 0xfb, 0x7b4: 0xfb, 0x7b5: 0xfb, 0x7b6: 0xfb, 0x7b7: 0xfb, - 0x7b8: 0xfb, 0x7b9: 0xfb, 0x7ba: 0xfb, 0x7bb: 0xfb, 0x7bc: 0xfb, 0x7bd: 0xfb, 0x7be: 0xfb, 0x7bf: 0xfb, + 0x780: 0xfd, 0x781: 0xfd, 0x782: 0xfd, 0x783: 0xfd, 0x784: 0xfd, 0x785: 0xfd, 0x786: 0xfd, 0x787: 0xfd, + 0x788: 0xfd, 0x789: 0xfd, 0x78a: 0xfd, 0x78b: 0xfd, 0x78c: 0xfd, 0x78d: 0xfd, 0x78e: 0xfd, 0x78f: 0xfd, + 0x790: 0xfd, 0x791: 0xfd, 0x792: 0xfd, 0x793: 0xfd, 0x794: 0xfd, 0x795: 0xfd, 0x796: 0xfd, 0x797: 0xfd, + 0x798: 0xfd, 0x799: 0xfd, 0x79a: 0xfd, 0x79b: 0xfd, 0x79c: 0xfd, 0x79d: 0xfd, 0x79e: 0xfd, 0x79f: 0xfd, + 0x7a0: 0x75, 0x7a1: 0x76, 0x7a2: 0x77, 0x7a3: 0x78, 0x7a4: 0x79, 0x7a5: 0x7a, 0x7a6: 0x7b, 0x7a7: 0x7c, + 0x7a8: 0x7d, 0x7a9: 0xfd, 0x7aa: 0xfd, 0x7ab: 0xfd, 0x7ac: 0xfd, 0x7ad: 0xfd, 0x7ae: 0xfd, 0x7af: 0xfd, + 0x7b0: 0xfd, 0x7b1: 0xfd, 0x7b2: 0xfd, 0x7b3: 0xfd, 0x7b4: 0xfd, 0x7b5: 0xfd, 0x7b6: 0xfd, 0x7b7: 0xfd, + 0x7b8: 0xfd, 0x7b9: 0xfd, 0x7ba: 0xfd, 0x7bb: 0xfd, 0x7bc: 0xfd, 0x7bd: 0xfd, 0x7be: 0xfd, 0x7bf: 0xfd, // Block 0x1f, offset 0x7c0 0x7c0: 0xa0, 0x7c1: 0xa0, 0x7c2: 0xa0, 0x7c3: 0xa0, 0x7c4: 0xa0, 0x7c5: 0xa0, 0x7c6: 0xa0, 0x7c7: 0xa0, - 0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfb, 0x7cf: 0xfb, - 0x7d0: 0xfb, 0x7d1: 0xfb, 0x7d2: 0xfb, 0x7d3: 0xfb, 0x7d4: 0xfb, 0x7d5: 0xfb, 0x7d6: 0xfb, 0x7d7: 0xfb, - 0x7d8: 0xfb, 0x7d9: 0xfb, 0x7da: 0xfb, 0x7db: 0xfb, 0x7dc: 0xfb, 0x7dd: 0xfb, 0x7de: 0xfb, 0x7df: 0xfb, - 0x7e0: 0xfb, 0x7e1: 0xfb, 0x7e2: 0xfb, 0x7e3: 0xfb, 0x7e4: 0xfb, 0x7e5: 0xfb, 0x7e6: 0xfb, 0x7e7: 0xfb, - 0x7e8: 0xfb, 0x7e9: 0xfb, 0x7ea: 0xfb, 0x7eb: 0xfb, 0x7ec: 0xfb, 0x7ed: 0xfb, 0x7ee: 0xfb, 0x7ef: 0xfb, - 0x7f0: 0xfb, 0x7f1: 0xfb, 0x7f2: 0xfb, 0x7f3: 0xfb, 0x7f4: 0xfb, 0x7f5: 0xfb, 0x7f6: 0xfb, 0x7f7: 0xfb, - 0x7f8: 0xfb, 0x7f9: 0xfb, 0x7fa: 0xfb, 0x7fb: 0xfb, 0x7fc: 0xfb, 0x7fd: 0xfb, 0x7fe: 0xfb, 0x7ff: 0xfb, + 0x7c8: 0xa0, 0x7c9: 0xa0, 0x7ca: 0xa0, 0x7cb: 0xa0, 0x7cc: 0xa0, 0x7cd: 0x19d, 0x7ce: 0xfd, 0x7cf: 0xfd, + 0x7d0: 0xfd, 0x7d1: 0xfd, 0x7d2: 0xfd, 0x7d3: 0xfd, 0x7d4: 0xfd, 0x7d5: 0xfd, 0x7d6: 0xfd, 0x7d7: 0xfd, + 0x7d8: 0xfd, 0x7d9: 0xfd, 0x7da: 0xfd, 0x7db: 0xfd, 0x7dc: 0xfd, 0x7dd: 0xfd, 0x7de: 0xfd, 0x7df: 0xfd, + 0x7e0: 0xfd, 0x7e1: 0xfd, 0x7e2: 0xfd, 0x7e3: 0xfd, 0x7e4: 0xfd, 0x7e5: 0xfd, 0x7e6: 0xfd, 0x7e7: 0xfd, + 0x7e8: 0xfd, 0x7e9: 0xfd, 0x7ea: 0xfd, 0x7eb: 0xfd, 0x7ec: 0xfd, 0x7ed: 0xfd, 0x7ee: 0xfd, 0x7ef: 0xfd, + 0x7f0: 0xfd, 0x7f1: 0xfd, 0x7f2: 0xfd, 0x7f3: 0xfd, 0x7f4: 0xfd, 0x7f5: 0xfd, 0x7f6: 0xfd, 0x7f7: 0xfd, + 0x7f8: 0xfd, 0x7f9: 0xfd, 0x7fa: 0xfd, 0x7fb: 0xfd, 0x7fc: 0xfd, 0x7fd: 0xfd, 0x7fe: 0xfd, 0x7ff: 0xfd, // Block 0x20, offset 0x800 0x810: 0x0d, 0x811: 0x0e, 0x812: 0x0f, 0x813: 0x10, 0x814: 0x11, 0x815: 0x0b, 0x816: 0x12, 0x817: 0x07, 0x818: 0x13, 0x819: 0x0b, 0x81a: 0x0b, 0x81b: 0x14, 0x81c: 0x0b, 0x81d: 0x15, 0x81e: 0x16, 0x81f: 0x17, @@ -2370,14 +2512,14 @@ var idnaIndex = [2368]uint16{ 0x870: 0x0b, 0x871: 0x0b, 0x872: 0x0b, 0x873: 0x0b, 0x874: 0x0b, 0x875: 0x0b, 0x876: 0x0b, 0x877: 0x0b, 0x878: 0x0b, 0x879: 0x0b, 0x87a: 0x0b, 0x87b: 0x0b, 0x87c: 0x0b, 0x87d: 0x0b, 0x87e: 0x0b, 0x87f: 0x0b, // Block 0x22, offset 0x880 - 0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfb, 0x883: 0xfb, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1, - 0x888: 0xfb, 0x889: 0xfb, 0x88a: 0xfb, 0x88b: 0xfb, 0x88c: 0xfb, 0x88d: 0xfb, 0x88e: 0xfb, 0x88f: 0xfb, - 0x890: 0xfb, 0x891: 0xfb, 0x892: 0xfb, 0x893: 0xfb, 0x894: 0xfb, 0x895: 0xfb, 0x896: 0xfb, 0x897: 0xfb, - 0x898: 0xfb, 0x899: 0xfb, 0x89a: 0xfb, 0x89b: 0xfb, 0x89c: 0xfb, 0x89d: 0xfb, 0x89e: 0xfb, 0x89f: 0xfb, - 0x8a0: 0xfb, 0x8a1: 0xfb, 0x8a2: 0xfb, 0x8a3: 0xfb, 0x8a4: 0xfb, 0x8a5: 0xfb, 0x8a6: 0xfb, 0x8a7: 0xfb, - 0x8a8: 0xfb, 0x8a9: 0xfb, 0x8aa: 0xfb, 0x8ab: 0xfb, 0x8ac: 0xfb, 0x8ad: 0xfb, 0x8ae: 0xfb, 0x8af: 0xfb, - 0x8b0: 0xfb, 0x8b1: 0xfb, 0x8b2: 0xfb, 0x8b3: 0xfb, 0x8b4: 0xfb, 0x8b5: 0xfb, 0x8b6: 0xfb, 0x8b7: 0xfb, - 0x8b8: 0xfb, 0x8b9: 0xfb, 0x8ba: 0xfb, 0x8bb: 0xfb, 0x8bc: 0xfb, 0x8bd: 0xfb, 0x8be: 0xfb, 0x8bf: 0xfb, + 0x880: 0x19e, 0x881: 0x19f, 0x882: 0xfd, 0x883: 0xfd, 0x884: 0x1a0, 0x885: 0x1a0, 0x886: 0x1a0, 0x887: 0x1a1, + 0x888: 0xfd, 0x889: 0xfd, 0x88a: 0xfd, 0x88b: 0xfd, 0x88c: 0xfd, 0x88d: 0xfd, 0x88e: 0xfd, 0x88f: 0xfd, + 0x890: 0xfd, 0x891: 0xfd, 0x892: 0xfd, 0x893: 0xfd, 0x894: 0xfd, 0x895: 0xfd, 0x896: 0xfd, 0x897: 0xfd, + 0x898: 0xfd, 0x899: 0xfd, 0x89a: 0xfd, 0x89b: 0xfd, 0x89c: 0xfd, 0x89d: 0xfd, 0x89e: 0xfd, 0x89f: 0xfd, + 0x8a0: 0xfd, 0x8a1: 0xfd, 0x8a2: 0xfd, 0x8a3: 0xfd, 0x8a4: 0xfd, 0x8a5: 0xfd, 0x8a6: 0xfd, 0x8a7: 0xfd, + 0x8a8: 0xfd, 0x8a9: 0xfd, 0x8aa: 0xfd, 0x8ab: 0xfd, 0x8ac: 0xfd, 0x8ad: 0xfd, 0x8ae: 0xfd, 0x8af: 0xfd, + 0x8b0: 0xfd, 0x8b1: 0xfd, 0x8b2: 0xfd, 0x8b3: 0xfd, 0x8b4: 0xfd, 0x8b5: 0xfd, 0x8b6: 0xfd, 0x8b7: 0xfd, + 0x8b8: 0xfd, 0x8b9: 0xfd, 0x8ba: 0xfd, 0x8bb: 0xfd, 0x8bc: 0xfd, 0x8bd: 0xfd, 0x8be: 0xfd, 0x8bf: 0xfd, // Block 0x23, offset 0x8c0 0x8c0: 0x0b, 0x8c1: 0x0b, 0x8c2: 0x0b, 0x8c3: 0x0b, 0x8c4: 0x0b, 0x8c5: 0x0b, 0x8c6: 0x0b, 0x8c7: 0x0b, 0x8c8: 0x0b, 0x8c9: 0x0b, 0x8ca: 0x0b, 0x8cb: 0x0b, 0x8cc: 0x0b, 0x8cd: 0x0b, 0x8ce: 0x0b, 0x8cf: 0x0b, @@ -2393,10 +2535,10 @@ var idnaIndex = [2368]uint16{ } // idnaSparseOffset: 292 entries, 584 bytes -var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x330, 0x333, 0x337, 0x33c, 0x341, 0x347, 0x358, 0x368, 0x36e, 0x372, 0x381, 0x386, 0x38e, 0x398, 0x3a3, 0x3ab, 0x3bc, 0x3c5, 0x3d5, 0x3e2, 0x3ee, 0x3f3, 0x400, 0x404, 0x409, 0x40b, 0x40d, 0x411, 0x413, 0x417, 0x420, 0x426, 0x42a, 0x43a, 0x444, 0x449, 0x44c, 0x452, 0x459, 0x45e, 0x462, 0x468, 0x46d, 0x476, 0x47b, 0x481, 0x488, 0x48f, 0x496, 0x49a, 0x49f, 0x4a2, 0x4a7, 0x4b3, 0x4b9, 0x4be, 0x4c5, 0x4cd, 0x4d2, 0x4d6, 0x4e6, 0x4ed, 0x4f1, 0x4f5, 0x4fc, 0x4fe, 0x501, 0x504, 0x508, 0x511, 0x515, 0x51d, 0x525, 0x52d, 0x539, 0x545, 0x54b, 0x554, 0x560, 0x567, 0x570, 0x57b, 0x582, 0x591, 0x59e, 0x5ab, 0x5b4, 0x5b8, 0x5c7, 0x5cf, 0x5da, 0x5e3, 0x5e9, 0x5f1, 0x5fa, 0x605, 0x608, 0x614, 0x61d, 0x620, 0x625, 0x62e, 0x633, 0x640, 0x64b, 0x654, 0x65e, 0x661, 0x66b, 0x674, 0x680, 0x68d, 0x69a, 0x6a8, 0x6af, 0x6b3, 0x6b7, 0x6ba, 0x6bf, 0x6c2, 0x6c7, 0x6ca, 0x6d1, 0x6d8, 0x6dc, 0x6e7, 0x6ea, 0x6ed, 0x6f0, 0x6f6, 0x6fc, 0x705, 0x708, 0x70b, 0x70e, 0x711, 0x718, 0x71b, 0x720, 0x72a, 0x72d, 0x731, 0x740, 0x74c, 0x750, 0x755, 0x759, 0x75e, 0x762, 0x767, 0x770, 0x77b, 0x781, 0x787, 0x78d, 0x793, 0x79c, 0x79f, 0x7a2, 0x7a6, 0x7aa, 0x7ae, 0x7b4, 0x7ba, 0x7bf, 0x7c2, 0x7d2, 0x7d9, 0x7dc, 0x7e1, 0x7e5, 0x7eb, 0x7f2, 0x7f6, 0x7fa, 0x803, 0x80a, 0x80f, 0x813, 0x821, 0x824, 0x827, 0x82b, 0x82f, 0x832, 0x842, 0x853, 0x856, 0x85b, 0x85d, 0x85f} +var idnaSparseOffset = []uint16{0x0, 0x8, 0x19, 0x25, 0x27, 0x2c, 0x33, 0x3e, 0x4a, 0x4e, 0x5d, 0x62, 0x6c, 0x78, 0x85, 0x8b, 0x94, 0xa4, 0xb2, 0xbd, 0xca, 0xdb, 0xe5, 0xec, 0xf9, 0x10a, 0x111, 0x11c, 0x12b, 0x139, 0x143, 0x145, 0x14a, 0x14d, 0x150, 0x152, 0x15e, 0x169, 0x171, 0x177, 0x17d, 0x182, 0x187, 0x18a, 0x18e, 0x194, 0x199, 0x1a5, 0x1af, 0x1b5, 0x1c6, 0x1d0, 0x1d3, 0x1db, 0x1de, 0x1eb, 0x1f3, 0x1f7, 0x1fe, 0x206, 0x216, 0x222, 0x225, 0x22f, 0x23b, 0x247, 0x253, 0x25b, 0x260, 0x26d, 0x27e, 0x282, 0x28d, 0x291, 0x29a, 0x2a2, 0x2a8, 0x2ad, 0x2b0, 0x2b4, 0x2ba, 0x2be, 0x2c2, 0x2c6, 0x2cc, 0x2d4, 0x2db, 0x2e6, 0x2f0, 0x2f4, 0x2f7, 0x2fd, 0x301, 0x303, 0x306, 0x308, 0x30b, 0x315, 0x318, 0x327, 0x32b, 0x32f, 0x331, 0x33a, 0x33d, 0x341, 0x346, 0x34b, 0x351, 0x362, 0x372, 0x378, 0x37c, 0x38b, 0x390, 0x398, 0x3a2, 0x3ad, 0x3b5, 0x3c6, 0x3cf, 0x3df, 0x3ec, 0x3f8, 0x3fd, 0x40a, 0x40e, 0x413, 0x415, 0x417, 0x41b, 0x41d, 0x421, 0x42a, 0x430, 0x434, 0x444, 0x44e, 0x453, 0x456, 0x45c, 0x463, 0x468, 0x46c, 0x472, 0x477, 0x480, 0x485, 0x48b, 0x492, 0x499, 0x4a0, 0x4a4, 0x4a9, 0x4ac, 0x4b1, 0x4bd, 0x4c3, 0x4c8, 0x4cf, 0x4d7, 0x4dc, 0x4e0, 0x4f0, 0x4f7, 0x4fb, 0x4ff, 0x506, 0x508, 0x50b, 0x50e, 0x512, 0x51b, 0x51f, 0x527, 0x52f, 0x537, 0x543, 0x54f, 0x555, 0x55e, 0x56a, 0x571, 0x57a, 0x585, 0x58c, 0x59b, 0x5a8, 0x5b5, 0x5be, 0x5c2, 0x5d1, 0x5d9, 0x5e4, 0x5ed, 0x5f3, 0x5fb, 0x604, 0x60f, 0x612, 0x61e, 0x627, 0x62a, 0x62f, 0x638, 0x63d, 0x64a, 0x655, 0x65e, 0x668, 0x66b, 0x675, 0x67e, 0x68a, 0x697, 0x6a4, 0x6b2, 0x6b9, 0x6bd, 0x6c1, 0x6c4, 0x6c9, 0x6cc, 0x6d1, 0x6d4, 0x6db, 0x6e2, 0x6e6, 0x6f1, 0x6f4, 0x6f7, 0x6fa, 0x700, 0x706, 0x70f, 0x712, 0x715, 0x718, 0x71b, 0x722, 0x725, 0x72a, 0x734, 0x737, 0x73b, 0x74a, 0x756, 0x75a, 0x75f, 0x763, 0x768, 0x76c, 0x771, 0x77a, 0x785, 0x78b, 0x791, 0x797, 0x79d, 0x7a6, 0x7a9, 0x7ac, 0x7b0, 0x7b4, 0x7b8, 0x7be, 0x7c4, 0x7c9, 0x7cc, 0x7dc, 0x7e3, 0x7e6, 0x7eb, 0x7ef, 0x7f5, 0x7fc, 0x800, 0x804, 0x80d, 0x814, 0x819, 0x81d, 0x82b, 0x82e, 0x831, 0x835, 0x839, 0x83c, 0x83f, 0x844, 0x846, 0x848} -// idnaSparseValues: 2146 entries, 8584 bytes -var idnaSparseValues = [2146]valueRange{ +// idnaSparseValues: 2123 entries, 8492 bytes +var idnaSparseValues = [2123]valueRange{ // Block 0x0, offset 0x0 {value: 0x0000, lo: 0x07}, {value: 0xe105, lo: 0x80, hi: 0x96}, @@ -2427,15 +2569,15 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x2, offset 0x19 {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0xaf}, - {value: 0x0249, lo: 0xb0, hi: 0xb0}, + {value: 0x00a9, lo: 0xb0, hi: 0xb0}, {value: 0x037d, lo: 0xb1, hi: 0xb1}, - {value: 0x0259, lo: 0xb2, hi: 0xb2}, - {value: 0x0269, lo: 0xb3, hi: 0xb3}, + {value: 0x00b1, lo: 0xb2, hi: 0xb2}, + {value: 0x00b9, lo: 0xb3, hi: 0xb3}, {value: 0x034d, lo: 0xb4, hi: 0xb4}, {value: 0x0395, lo: 0xb5, hi: 0xb5}, {value: 0xe1bd, lo: 0xb6, hi: 0xb6}, - {value: 0x0279, lo: 0xb7, hi: 0xb7}, - {value: 0x0289, lo: 0xb8, hi: 0xb8}, + {value: 0x00c1, lo: 0xb7, hi: 0xb7}, + {value: 0x00c9, lo: 0xb8, hi: 0xb8}, {value: 0x0008, lo: 0xb9, hi: 0xbf}, // Block 0x3, offset 0x25 {value: 0x0000, lo: 0x01}, @@ -2457,7 +2599,7 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x6, offset 0x33 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x86}, - {value: 0x0401, lo: 0x87, hi: 0x87}, + {value: 0x0131, lo: 0x87, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x88}, {value: 0x0018, lo: 0x89, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0x8c}, @@ -2643,7 +2785,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x81, hi: 0xb0}, {value: 0x3308, lo: 0xb1, hi: 0xb1}, {value: 0x0008, lo: 0xb2, hi: 0xb2}, - {value: 0x08f1, lo: 0xb3, hi: 0xb3}, + {value: 0x01f1, lo: 0xb3, hi: 0xb3}, {value: 0x3308, lo: 0xb4, hi: 0xb9}, {value: 0x3b08, lo: 0xba, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbe}, @@ -2666,8 +2808,8 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8e, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0x9b}, - {value: 0x0961, lo: 0x9c, hi: 0x9c}, - {value: 0x0999, lo: 0x9d, hi: 0x9d}, + {value: 0x0201, lo: 0x9c, hi: 0x9c}, + {value: 0x0209, lo: 0x9d, hi: 0x9d}, {value: 0x0008, lo: 0x9e, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, // Block 0x18, offset 0xf9 @@ -3075,13 +3217,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbe, hi: 0xbf}, // Block 0x44, offset 0x260 {value: 0x0000, lo: 0x0c}, - {value: 0x0e29, lo: 0x80, hi: 0x80}, - {value: 0x0e41, lo: 0x81, hi: 0x81}, - {value: 0x0e59, lo: 0x82, hi: 0x82}, - {value: 0x0e71, lo: 0x83, hi: 0x83}, - {value: 0x0e89, lo: 0x84, hi: 0x85}, - {value: 0x0ea1, lo: 0x86, hi: 0x86}, - {value: 0x0eb9, lo: 0x87, hi: 0x87}, + {value: 0x02a9, lo: 0x80, hi: 0x80}, + {value: 0x02b1, lo: 0x81, hi: 0x81}, + {value: 0x02b9, lo: 0x82, hi: 0x82}, + {value: 0x02c1, lo: 0x83, hi: 0x83}, + {value: 0x02c9, lo: 0x84, hi: 0x85}, + {value: 0x02d1, lo: 0x86, hi: 0x86}, + {value: 0x02d9, lo: 0x87, hi: 0x87}, {value: 0x057d, lo: 0x88, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, {value: 0x059d, lo: 0x90, hi: 0xba}, @@ -3133,18 +3275,18 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x83, hi: 0x83}, {value: 0x0008, lo: 0x84, hi: 0x84}, {value: 0x0018, lo: 0x85, hi: 0x88}, - {value: 0x24c1, lo: 0x89, hi: 0x89}, + {value: 0x0851, lo: 0x89, hi: 0x89}, {value: 0x0018, lo: 0x8a, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, // Block 0x4a, offset 0x29a {value: 0x0000, lo: 0x07}, {value: 0x0018, lo: 0x80, hi: 0xab}, - {value: 0x24f1, lo: 0xac, hi: 0xac}, - {value: 0x2529, lo: 0xad, hi: 0xad}, + {value: 0x0859, lo: 0xac, hi: 0xac}, + {value: 0x0861, lo: 0xad, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xae}, - {value: 0x2579, lo: 0xaf, hi: 0xaf}, - {value: 0x25b1, lo: 0xb0, hi: 0xb0}, + {value: 0x0869, lo: 0xaf, hi: 0xaf}, + {value: 0x0871, lo: 0xb0, hi: 0xb0}, {value: 0x0018, lo: 0xb1, hi: 0xbf}, // Block 0x4b, offset 0x2a2 {value: 0x0000, lo: 0x05}, @@ -3166,19 +3308,19 @@ var idnaSparseValues = [2146]valueRange{ // Block 0x4e, offset 0x2b0 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, - {value: 0x28c1, lo: 0x8c, hi: 0x8c}, + {value: 0x0929, lo: 0x8c, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0xbf}, // Block 0x4f, offset 0x2b4 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0xb3}, {value: 0x0e7e, lo: 0xb4, hi: 0xb4}, - {value: 0x292a, lo: 0xb5, hi: 0xb5}, + {value: 0x0932, lo: 0xb5, hi: 0xb5}, {value: 0x0e9e, lo: 0xb6, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, // Block 0x50, offset 0x2ba {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x9b}, - {value: 0x2941, lo: 0x9c, hi: 0x9c}, + {value: 0x0939, lo: 0x9c, hi: 0x9c}, {value: 0x0018, lo: 0x9d, hi: 0xbf}, // Block 0x51, offset 0x2be {value: 0x0000, lo: 0x03}, @@ -3277,16 +3419,16 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x80, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0x98}, {value: 0x3308, lo: 0x99, hi: 0x9a}, - {value: 0x29e2, lo: 0x9b, hi: 0x9b}, - {value: 0x2a0a, lo: 0x9c, hi: 0x9c}, + {value: 0x096a, lo: 0x9b, hi: 0x9b}, + {value: 0x0972, lo: 0x9c, hi: 0x9c}, {value: 0x0008, lo: 0x9d, hi: 0x9e}, - {value: 0x2a31, lo: 0x9f, hi: 0x9f}, + {value: 0x0979, lo: 0x9f, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa0}, {value: 0x0008, lo: 0xa1, hi: 0xbf}, // Block 0x61, offset 0x315 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbe}, - {value: 0x2a69, lo: 0xbf, hi: 0xbf}, + {value: 0x0981, lo: 0xbf, hi: 0xbf}, // Block 0x62, offset 0x318 {value: 0x0000, lo: 0x0e}, {value: 0x0040, lo: 0x80, hi: 0x84}, @@ -3309,46 +3451,58 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa4, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, // Block 0x64, offset 0x32b - {value: 0x0030, lo: 0x04}, - {value: 0x2aa2, lo: 0x80, hi: 0x9d}, - {value: 0x305a, lo: 0x9e, hi: 0x9e}, + {value: 0x0008, lo: 0x03}, + {value: 0x098a, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0x9f}, - {value: 0x30a2, lo: 0xa0, hi: 0xbf}, - // Block 0x65, offset 0x330 + {value: 0x0a82, lo: 0xa0, hi: 0xbf}, + // Block 0x65, offset 0x32f + {value: 0x0008, lo: 0x01}, + {value: 0x0d19, lo: 0x80, hi: 0xbf}, + // Block 0x66, offset 0x331 + {value: 0x0008, lo: 0x08}, + {value: 0x0f19, lo: 0x80, hi: 0xb0}, + {value: 0x4045, lo: 0xb1, hi: 0xb1}, + {value: 0x10a1, lo: 0xb2, hi: 0xb3}, + {value: 0x4065, lo: 0xb4, hi: 0xb4}, + {value: 0x10b1, lo: 0xb5, hi: 0xb7}, + {value: 0x4085, lo: 0xb8, hi: 0xb8}, + {value: 0x4085, lo: 0xb9, hi: 0xb9}, + {value: 0x10c9, lo: 0xba, hi: 0xbf}, + // Block 0x67, offset 0x33a {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x66, offset 0x333 + // Block 0x68, offset 0x33d {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x8c}, {value: 0x0040, lo: 0x8d, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, - // Block 0x67, offset 0x337 + // Block 0x69, offset 0x341 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xbd}, {value: 0x0018, lo: 0xbe, hi: 0xbf}, - // Block 0x68, offset 0x33c + // Block 0x6a, offset 0x346 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xbf}, - // Block 0x69, offset 0x341 + // Block 0x6b, offset 0x34b {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xa5}, {value: 0x0018, lo: 0xa6, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb1}, {value: 0x0018, lo: 0xb2, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0x6a, offset 0x347 + // Block 0x6c, offset 0x351 {value: 0x0000, lo: 0x10}, {value: 0x0040, lo: 0x80, hi: 0x81}, {value: 0xe00d, lo: 0x82, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0x83}, {value: 0x03f5, lo: 0x84, hi: 0x84}, - {value: 0x1329, lo: 0x85, hi: 0x85}, + {value: 0x0479, lo: 0x85, hi: 0x85}, {value: 0x447d, lo: 0x86, hi: 0x86}, {value: 0xe07d, lo: 0x87, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x88}, @@ -3357,10 +3511,10 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8b, hi: 0xb4}, {value: 0xe01d, lo: 0xb5, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xb7}, - {value: 0x2009, lo: 0xb8, hi: 0xb8}, - {value: 0x6ec1, lo: 0xb9, hi: 0xb9}, + {value: 0x0741, lo: 0xb8, hi: 0xb8}, + {value: 0x13f1, lo: 0xb9, hi: 0xb9}, {value: 0x0008, lo: 0xba, hi: 0xbf}, - // Block 0x6b, offset 0x358 + // Block 0x6d, offset 0x362 {value: 0x0000, lo: 0x0f}, {value: 0x0008, lo: 0x80, hi: 0x81}, {value: 0x3308, lo: 0x82, hi: 0x82}, @@ -3377,19 +3531,19 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x6c, offset 0x368 + // Block 0x6e, offset 0x372 {value: 0x0000, lo: 0x05}, {value: 0x0208, lo: 0x80, hi: 0xb1}, {value: 0x0108, lo: 0xb2, hi: 0xb2}, {value: 0x0008, lo: 0xb3, hi: 0xb3}, {value: 0x0018, lo: 0xb4, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0x6d, offset 0x36e + // Block 0x6f, offset 0x378 {value: 0x0000, lo: 0x03}, {value: 0x3008, lo: 0x80, hi: 0x81}, {value: 0x0008, lo: 0x82, hi: 0xb3}, {value: 0x3008, lo: 0xb4, hi: 0xbf}, - // Block 0x6e, offset 0x372 + // Block 0x70, offset 0x37c {value: 0x0000, lo: 0x0e}, {value: 0x3008, lo: 0x80, hi: 0x83}, {value: 0x3b08, lo: 0x84, hi: 0x84}, @@ -3405,13 +3559,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbc, hi: 0xbc}, {value: 0x0008, lo: 0xbd, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0x6f, offset 0x381 + // Block 0x71, offset 0x38b {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa5}, {value: 0x3308, lo: 0xa6, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x70, offset 0x386 + // Block 0x72, offset 0x390 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x3308, lo: 0x87, hi: 0x91}, @@ -3420,7 +3574,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x94, hi: 0x9e}, {value: 0x0018, lo: 0x9f, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x71, offset 0x38e + // Block 0x73, offset 0x398 {value: 0x0000, lo: 0x09}, {value: 0x3308, lo: 0x80, hi: 0x82}, {value: 0x3008, lo: 0x83, hi: 0x83}, @@ -3431,7 +3585,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xba, hi: 0xbb}, {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbf}, - // Block 0x72, offset 0x398 + // Block 0x74, offset 0x3a2 {value: 0x0000, lo: 0x0a}, {value: 0x3808, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x8d}, @@ -3443,7 +3597,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xa5, hi: 0xa5}, {value: 0x0008, lo: 0xa6, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0x73, offset 0x3a3 + // Block 0x75, offset 0x3ad {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xa8}, {value: 0x3308, lo: 0xa9, hi: 0xae}, @@ -3452,7 +3606,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb3, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x74, offset 0x3ab + // Block 0x76, offset 0x3b5 {value: 0x0000, lo: 0x10}, {value: 0x0008, lo: 0x80, hi: 0x82}, {value: 0x3308, lo: 0x83, hi: 0x83}, @@ -3470,7 +3624,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbc}, {value: 0x3008, lo: 0xbd, hi: 0xbd}, {value: 0x0008, lo: 0xbe, hi: 0xbf}, - // Block 0x75, offset 0x3bc + // Block 0x77, offset 0x3c6 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb0}, @@ -3480,7 +3634,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb7, hi: 0xb8}, {value: 0x0008, lo: 0xb9, hi: 0xbd}, {value: 0x3308, lo: 0xbe, hi: 0xbf}, - // Block 0x76, offset 0x3c5 + // Block 0x78, offset 0x3cf {value: 0x0000, lo: 0x0f}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x81}, @@ -3497,7 +3651,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb5, hi: 0xb5}, {value: 0x3b08, lo: 0xb6, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x77, offset 0x3d5 + // Block 0x79, offset 0x3df {value: 0x0000, lo: 0x0c}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x86}, @@ -3511,26 +3665,26 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa8, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x78, offset 0x3e2 + // Block 0x7a, offset 0x3ec {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x9a}, {value: 0x0018, lo: 0x9b, hi: 0x9b}, {value: 0x449d, lo: 0x9c, hi: 0x9c}, {value: 0x44b5, lo: 0x9d, hi: 0x9d}, - {value: 0x2971, lo: 0x9e, hi: 0x9e}, + {value: 0x0941, lo: 0x9e, hi: 0x9e}, {value: 0xe06d, lo: 0x9f, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa8}, - {value: 0x6ed9, lo: 0xa9, hi: 0xa9}, + {value: 0x13f9, lo: 0xa9, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x44cd, lo: 0xb0, hi: 0xbf}, - // Block 0x79, offset 0x3ee + // Block 0x7b, offset 0x3f8 {value: 0x0000, lo: 0x04}, {value: 0x44ed, lo: 0x80, hi: 0x8f}, {value: 0x450d, lo: 0x90, hi: 0x9f}, {value: 0x452d, lo: 0xa0, hi: 0xaf}, {value: 0x450d, lo: 0xb0, hi: 0xbf}, - // Block 0x7a, offset 0x3f3 + // Block 0x7c, offset 0x3fd {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0xa2}, {value: 0x3008, lo: 0xa3, hi: 0xa4}, @@ -3544,76 +3698,76 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x7b, offset 0x400 + // Block 0x7d, offset 0x40a {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbf}, - // Block 0x7c, offset 0x404 + // Block 0x7e, offset 0x40e {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8a}, {value: 0x0018, lo: 0x8b, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x7d, offset 0x409 + // Block 0x7f, offset 0x413 {value: 0x0000, lo: 0x01}, {value: 0x0040, lo: 0x80, hi: 0xbf}, - // Block 0x7e, offset 0x40b + // Block 0x80, offset 0x415 {value: 0x0020, lo: 0x01}, {value: 0x454d, lo: 0x80, hi: 0xbf}, - // Block 0x7f, offset 0x40d + // Block 0x81, offset 0x417 {value: 0x0020, lo: 0x03}, {value: 0x4d4d, lo: 0x80, hi: 0x94}, {value: 0x4b0d, lo: 0x95, hi: 0x95}, {value: 0x4fed, lo: 0x96, hi: 0xbf}, - // Block 0x80, offset 0x411 + // Block 0x82, offset 0x41b {value: 0x0020, lo: 0x01}, {value: 0x552d, lo: 0x80, hi: 0xbf}, - // Block 0x81, offset 0x413 + // Block 0x83, offset 0x41d {value: 0x0020, lo: 0x03}, {value: 0x5d2d, lo: 0x80, hi: 0x84}, {value: 0x568d, lo: 0x85, hi: 0x85}, {value: 0x5dcd, lo: 0x86, hi: 0xbf}, - // Block 0x82, offset 0x417 + // Block 0x84, offset 0x421 {value: 0x0020, lo: 0x08}, {value: 0x6b8d, lo: 0x80, hi: 0x8f}, {value: 0x6d4d, lo: 0x90, hi: 0x90}, {value: 0x6d8d, lo: 0x91, hi: 0xab}, - {value: 0x6ef1, lo: 0xac, hi: 0xac}, + {value: 0x1401, lo: 0xac, hi: 0xac}, {value: 0x70ed, lo: 0xad, hi: 0xad}, {value: 0x0040, lo: 0xae, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x710d, lo: 0xb0, hi: 0xbf}, - // Block 0x83, offset 0x420 + // Block 0x85, offset 0x42a {value: 0x0020, lo: 0x05}, {value: 0x730d, lo: 0x80, hi: 0xad}, {value: 0x656d, lo: 0xae, hi: 0xae}, {value: 0x78cd, lo: 0xaf, hi: 0xb5}, {value: 0x6f8d, lo: 0xb6, hi: 0xb6}, {value: 0x79ad, lo: 0xb7, hi: 0xbf}, - // Block 0x84, offset 0x426 - {value: 0x0028, lo: 0x03}, - {value: 0x7c71, lo: 0x80, hi: 0x82}, - {value: 0x7c31, lo: 0x83, hi: 0x83}, - {value: 0x7ce9, lo: 0x84, hi: 0xbf}, - // Block 0x85, offset 0x42a - {value: 0x0038, lo: 0x0f}, - {value: 0x9e01, lo: 0x80, hi: 0x83}, - {value: 0x9ea9, lo: 0x84, hi: 0x85}, - {value: 0x9ee1, lo: 0x86, hi: 0x87}, - {value: 0x9f19, lo: 0x88, hi: 0x8f}, + // Block 0x86, offset 0x430 + {value: 0x0008, lo: 0x03}, + {value: 0x1751, lo: 0x80, hi: 0x82}, + {value: 0x1741, lo: 0x83, hi: 0x83}, + {value: 0x1769, lo: 0x84, hi: 0xbf}, + // Block 0x87, offset 0x434 + {value: 0x0008, lo: 0x0f}, + {value: 0x1d81, lo: 0x80, hi: 0x83}, + {value: 0x1d99, lo: 0x84, hi: 0x85}, + {value: 0x1da1, lo: 0x86, hi: 0x87}, + {value: 0x1da9, lo: 0x88, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x90}, {value: 0x0040, lo: 0x91, hi: 0x91}, - {value: 0xa0d9, lo: 0x92, hi: 0x97}, - {value: 0xa1f1, lo: 0x98, hi: 0x9c}, - {value: 0xa2d1, lo: 0x9d, hi: 0xb3}, - {value: 0x9d91, lo: 0xb4, hi: 0xb4}, - {value: 0x9e01, lo: 0xb5, hi: 0xb5}, - {value: 0xa7d9, lo: 0xb6, hi: 0xbb}, - {value: 0xa8b9, lo: 0xbc, hi: 0xbc}, - {value: 0xa849, lo: 0xbd, hi: 0xbd}, - {value: 0xa929, lo: 0xbe, hi: 0xbf}, - // Block 0x86, offset 0x43a + {value: 0x1de9, lo: 0x92, hi: 0x97}, + {value: 0x1e11, lo: 0x98, hi: 0x9c}, + {value: 0x1e31, lo: 0x9d, hi: 0xb3}, + {value: 0x1d71, lo: 0xb4, hi: 0xb4}, + {value: 0x1d81, lo: 0xb5, hi: 0xb5}, + {value: 0x1ee9, lo: 0xb6, hi: 0xbb}, + {value: 0x1f09, lo: 0xbc, hi: 0xbc}, + {value: 0x1ef9, lo: 0xbd, hi: 0xbd}, + {value: 0x1f19, lo: 0xbe, hi: 0xbf}, + // Block 0x88, offset 0x444 {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8c}, @@ -3624,24 +3778,24 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xbc, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbe}, {value: 0x0008, lo: 0xbf, hi: 0xbf}, - // Block 0x87, offset 0x444 + // Block 0x89, offset 0x44e {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x8d}, {value: 0x0040, lo: 0x8e, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0x88, offset 0x449 + // Block 0x8a, offset 0x453 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x89, offset 0x44c + // Block 0x8b, offset 0x456 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x82}, {value: 0x0040, lo: 0x83, hi: 0x86}, {value: 0x0018, lo: 0x87, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, - // Block 0x8a, offset 0x452 + // Block 0x8c, offset 0x45c {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x8e}, {value: 0x0040, lo: 0x8f, hi: 0x8f}, @@ -3649,31 +3803,31 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9d, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa0}, {value: 0x0040, lo: 0xa1, hi: 0xbf}, - // Block 0x8b, offset 0x459 + // Block 0x8d, offset 0x463 {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbc}, {value: 0x3308, lo: 0xbd, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0x8c, offset 0x45e + // Block 0x8e, offset 0x468 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x9c}, {value: 0x0040, lo: 0x9d, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x8d, offset 0x462 + // Block 0x8f, offset 0x46c {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x90}, {value: 0x0040, lo: 0x91, hi: 0x9f}, {value: 0x3308, lo: 0xa0, hi: 0xa0}, {value: 0x0018, lo: 0xa1, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x8e, offset 0x468 + // Block 0x90, offset 0x472 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xac}, {value: 0x0008, lo: 0xad, hi: 0xbf}, - // Block 0x8f, offset 0x46d + // Block 0x91, offset 0x477 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x81}, @@ -3683,20 +3837,20 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x90, hi: 0xb5}, {value: 0x3308, lo: 0xb6, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x90, offset 0x476 + // Block 0x92, offset 0x480 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9e}, {value: 0x0018, lo: 0x9f, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x91, offset 0x47b + // Block 0x93, offset 0x485 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0040, lo: 0x84, hi: 0x87}, {value: 0x0008, lo: 0x88, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0xbf}, - // Block 0x92, offset 0x481 + // Block 0x94, offset 0x48b {value: 0x0000, lo: 0x06}, {value: 0xe145, lo: 0x80, hi: 0x87}, {value: 0xe1c5, lo: 0x88, hi: 0x8f}, @@ -3704,7 +3858,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x8b0d, lo: 0x98, hi: 0x9f}, {value: 0x8b25, lo: 0xa0, hi: 0xa7}, {value: 0x0008, lo: 0xa8, hi: 0xbf}, - // Block 0x93, offset 0x488 + // Block 0x95, offset 0x492 {value: 0x0000, lo: 0x06}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9f}, @@ -3712,7 +3866,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xaa, hi: 0xaf}, {value: 0x8b25, lo: 0xb0, hi: 0xb7}, {value: 0x8b0d, lo: 0xb8, hi: 0xbf}, - // Block 0x94, offset 0x48f + // Block 0x96, offset 0x499 {value: 0x0000, lo: 0x06}, {value: 0xe145, lo: 0x80, hi: 0x87}, {value: 0xe1c5, lo: 0x88, hi: 0x8f}, @@ -3720,28 +3874,28 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x94, hi: 0x97}, {value: 0x0008, lo: 0x98, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0x95, offset 0x496 + // Block 0x97, offset 0x4a0 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x96, offset 0x49a + // Block 0x98, offset 0x4a4 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xae}, {value: 0x0018, lo: 0xaf, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0x97, offset 0x49f + // Block 0x99, offset 0x4a9 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x98, offset 0x4a2 + // Block 0x9a, offset 0x4ac {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xbf}, - // Block 0x99, offset 0x4a7 + // Block 0x9b, offset 0x4b1 {value: 0x0000, lo: 0x0b}, {value: 0x0808, lo: 0x80, hi: 0x85}, {value: 0x0040, lo: 0x86, hi: 0x87}, @@ -3754,20 +3908,20 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xbc, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbe}, {value: 0x0808, lo: 0xbf, hi: 0xbf}, - // Block 0x9a, offset 0x4b3 + // Block 0x9c, offset 0x4bd {value: 0x0000, lo: 0x05}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x96}, {value: 0x0818, lo: 0x97, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb6}, {value: 0x0818, lo: 0xb7, hi: 0xbf}, - // Block 0x9b, offset 0x4b9 + // Block 0x9d, offset 0x4c3 {value: 0x0000, lo: 0x04}, {value: 0x0808, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0xa6}, {value: 0x0818, lo: 0xa7, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0x9c, offset 0x4be + // Block 0x9e, offset 0x4c8 {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb2}, @@ -3775,7 +3929,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xb4, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xba}, {value: 0x0818, lo: 0xbb, hi: 0xbf}, - // Block 0x9d, offset 0x4c5 + // Block 0x9f, offset 0x4cf {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0818, lo: 0x96, hi: 0x9b}, @@ -3784,18 +3938,18 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xa0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbe}, {value: 0x0818, lo: 0xbf, hi: 0xbf}, - // Block 0x9e, offset 0x4cd + // Block 0xa0, offset 0x4d7 {value: 0x0000, lo: 0x04}, {value: 0x0808, lo: 0x80, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbb}, {value: 0x0818, lo: 0xbc, hi: 0xbd}, {value: 0x0808, lo: 0xbe, hi: 0xbf}, - // Block 0x9f, offset 0x4d2 + // Block 0xa1, offset 0x4dc {value: 0x0000, lo: 0x03}, {value: 0x0818, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x91}, {value: 0x0818, lo: 0x92, hi: 0xbf}, - // Block 0xa0, offset 0x4d6 + // Block 0xa2, offset 0x4e0 {value: 0x0000, lo: 0x0f}, {value: 0x0808, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x83}, @@ -3812,7 +3966,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb8, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xa1, offset 0x4e6 + // Block 0xa3, offset 0x4f0 {value: 0x0000, lo: 0x06}, {value: 0x0818, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, @@ -3820,17 +3974,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xbc}, {value: 0x0818, lo: 0xbd, hi: 0xbf}, - // Block 0xa2, offset 0x4ed + // Block 0xa4, offset 0x4f7 {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0x9c}, {value: 0x0818, lo: 0x9d, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0xa3, offset 0x4f1 + // Block 0xa5, offset 0x4fb {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xb8}, {value: 0x0018, lo: 0xb9, hi: 0xbf}, - // Block 0xa4, offset 0x4f5 + // Block 0xa6, offset 0x4ff {value: 0x0000, lo: 0x06}, {value: 0x0808, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0x97}, @@ -3838,23 +3992,23 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0808, lo: 0xa0, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xb7}, {value: 0x0818, lo: 0xb8, hi: 0xbf}, - // Block 0xa5, offset 0x4fc + // Block 0xa7, offset 0x506 {value: 0x0000, lo: 0x01}, {value: 0x0808, lo: 0x80, hi: 0xbf}, - // Block 0xa6, offset 0x4fe + // Block 0xa8, offset 0x508 {value: 0x0000, lo: 0x02}, {value: 0x0808, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0xbf}, - // Block 0xa7, offset 0x501 + // Block 0xa9, offset 0x50b {value: 0x0000, lo: 0x02}, {value: 0x03dd, lo: 0x80, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xbf}, - // Block 0xa8, offset 0x504 + // Block 0xaa, offset 0x50e {value: 0x0000, lo: 0x03}, {value: 0x0808, lo: 0x80, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xb9}, {value: 0x0818, lo: 0xba, hi: 0xbf}, - // Block 0xa9, offset 0x508 + // Block 0xab, offset 0x512 {value: 0x0000, lo: 0x08}, {value: 0x0908, lo: 0x80, hi: 0x80}, {value: 0x0a08, lo: 0x81, hi: 0xa1}, @@ -3864,12 +4018,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0808, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xaa, offset 0x511 + // Block 0xac, offset 0x51b {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0818, lo: 0xa0, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0xab, offset 0x515 + // Block 0xad, offset 0x51f {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xaa}, @@ -3878,7 +4032,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0808, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0xac, offset 0x51d + // Block 0xae, offset 0x527 {value: 0x0000, lo: 0x07}, {value: 0x0808, lo: 0x80, hi: 0x9c}, {value: 0x0818, lo: 0x9d, hi: 0xa6}, @@ -3887,7 +4041,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0a08, lo: 0xb0, hi: 0xb2}, {value: 0x0c08, lo: 0xb3, hi: 0xb3}, {value: 0x0a08, lo: 0xb4, hi: 0xbf}, - // Block 0xad, offset 0x525 + // Block 0xaf, offset 0x52f {value: 0x0000, lo: 0x07}, {value: 0x0a08, lo: 0x80, hi: 0x84}, {value: 0x0808, lo: 0x85, hi: 0x85}, @@ -3896,7 +4050,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0c18, lo: 0x94, hi: 0x94}, {value: 0x0818, lo: 0x95, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xae, offset 0x52d + // Block 0xb0, offset 0x537 {value: 0x0000, lo: 0x0b}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0a08, lo: 0xb0, hi: 0xb0}, @@ -3909,7 +4063,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0a08, lo: 0xbb, hi: 0xbc}, {value: 0x0c08, lo: 0xbd, hi: 0xbd}, {value: 0x0a08, lo: 0xbe, hi: 0xbf}, - // Block 0xaf, offset 0x539 + // Block 0xb1, offset 0x543 {value: 0x0000, lo: 0x0b}, {value: 0x0808, lo: 0x80, hi: 0x80}, {value: 0x0a08, lo: 0x81, hi: 0x81}, @@ -3922,14 +4076,14 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x8c, hi: 0x9f}, {value: 0x0808, lo: 0xa0, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xb0, offset 0x545 + // Block 0xb2, offset 0x54f {value: 0x0000, lo: 0x05}, {value: 0x3008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0xb7}, {value: 0x3308, lo: 0xb8, hi: 0xbf}, - // Block 0xb1, offset 0x54b + // Block 0xb3, offset 0x555 {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x85}, {value: 0x3b08, lo: 0x86, hi: 0x86}, @@ -3939,7 +4093,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa6, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xb2, offset 0x554 + // Block 0xb4, offset 0x55e {value: 0x0000, lo: 0x0b}, {value: 0x3308, lo: 0x80, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, @@ -3952,7 +4106,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xbb, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbd}, {value: 0x0018, lo: 0xbe, hi: 0xbf}, - // Block 0xb3, offset 0x560 + // Block 0xb5, offset 0x56a {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x81}, {value: 0x0040, lo: 0x82, hi: 0x8f}, @@ -3960,7 +4114,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa9, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xb4, offset 0x567 + // Block 0xb6, offset 0x571 {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x82}, {value: 0x0008, lo: 0x83, hi: 0xa6}, @@ -3970,7 +4124,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3b08, lo: 0xb3, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xbf}, - // Block 0xb5, offset 0x570 + // Block 0xb7, offset 0x57a {value: 0x0000, lo: 0x0a}, {value: 0x0018, lo: 0x80, hi: 0x83}, {value: 0x0008, lo: 0x84, hi: 0x84}, @@ -3982,7 +4136,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xb4, hi: 0xb5}, {value: 0x0008, lo: 0xb6, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xb6, offset 0x57b + // Block 0xb8, offset 0x585 {value: 0x0000, lo: 0x06}, {value: 0x3308, lo: 0x80, hi: 0x81}, {value: 0x3008, lo: 0x82, hi: 0x82}, @@ -3990,7 +4144,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb3, hi: 0xb5}, {value: 0x3308, lo: 0xb6, hi: 0xbe}, {value: 0x3008, lo: 0xbf, hi: 0xbf}, - // Block 0xb7, offset 0x582 + // Block 0xb9, offset 0x58c {value: 0x0000, lo: 0x0e}, {value: 0x3808, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x84}, @@ -4006,7 +4160,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa0, hi: 0xa0}, {value: 0x0018, lo: 0xa1, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0xb8, offset 0x591 + // Block 0xba, offset 0x59b {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x91}, {value: 0x0040, lo: 0x92, hi: 0x92}, @@ -4020,7 +4174,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xb8, hi: 0xbd}, {value: 0x3308, lo: 0xbe, hi: 0xbe}, {value: 0x0040, lo: 0xbf, hi: 0xbf}, - // Block 0xb9, offset 0x59e + // Block 0xbb, offset 0x5a8 {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4034,7 +4188,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0xa9, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0xba, offset 0x5ab + // Block 0xbc, offset 0x5b5 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x3308, lo: 0x9f, hi: 0x9f}, @@ -4044,12 +4198,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xab, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0xbb, offset 0x5b4 + // Block 0xbd, offset 0x5be {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xb4}, {value: 0x3008, lo: 0xb5, hi: 0xb7}, {value: 0x3308, lo: 0xb8, hi: 0xbf}, - // Block 0xbc, offset 0x5b8 + // Block 0xbe, offset 0x5c2 {value: 0x0000, lo: 0x0e}, {value: 0x3008, lo: 0x80, hi: 0x81}, {value: 0x3b08, lo: 0x82, hi: 0x82}, @@ -4065,7 +4219,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0x9e, hi: 0x9e}, {value: 0x0008, lo: 0x9f, hi: 0xa1}, {value: 0x0040, lo: 0xa2, hi: 0xbf}, - // Block 0xbd, offset 0x5c7 + // Block 0xbf, offset 0x5d1 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb2}, @@ -4074,7 +4228,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xba, hi: 0xba}, {value: 0x3008, lo: 0xbb, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0xbe, offset 0x5cf + // Block 0xc0, offset 0x5d9 {value: 0x0000, lo: 0x0a}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x3008, lo: 0x81, hi: 0x81}, @@ -4086,7 +4240,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x88, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xbf, offset 0x5da + // Block 0xc1, offset 0x5e4 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xae}, {value: 0x3008, lo: 0xaf, hi: 0xb1}, @@ -4096,14 +4250,14 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xc0, offset 0x5e3 + // Block 0xc2, offset 0x5ed {value: 0x0000, lo: 0x05}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x97}, {value: 0x0008, lo: 0x98, hi: 0x9b}, {value: 0x3308, lo: 0x9c, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0xc1, offset 0x5e9 + // Block 0xc3, offset 0x5f3 {value: 0x0000, lo: 0x07}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb2}, @@ -4112,7 +4266,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbd, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xc2, offset 0x5f1 + // Block 0xc4, offset 0x5fb {value: 0x0000, lo: 0x08}, {value: 0x3308, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x83}, @@ -4122,7 +4276,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9a, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xac}, {value: 0x0040, lo: 0xad, hi: 0xbf}, - // Block 0xc3, offset 0x5fa + // Block 0xc5, offset 0x604 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0xaa}, {value: 0x3308, lo: 0xab, hi: 0xab}, @@ -4134,11 +4288,11 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb7, hi: 0xb7}, {value: 0x0008, lo: 0xb8, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xc4, offset 0x605 + // Block 0xc6, offset 0x60f {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x0040, lo: 0x8a, hi: 0xbf}, - // Block 0xc5, offset 0x608 + // Block 0xc7, offset 0x612 {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x9a}, {value: 0x0040, lo: 0x9b, hi: 0x9c}, @@ -4151,7 +4305,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0018, lo: 0xba, hi: 0xbf}, - // Block 0xc6, offset 0x614 + // Block 0xc8, offset 0x61e {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0xab}, {value: 0x3008, lo: 0xac, hi: 0xae}, @@ -4161,17 +4315,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xba, hi: 0xba}, {value: 0x0018, lo: 0xbb, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0xc7, offset 0x61d + // Block 0xc9, offset 0x627 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x049d, lo: 0xa0, hi: 0xbf}, - // Block 0xc8, offset 0x620 + // Block 0xca, offset 0x62a {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xb2}, {value: 0x0040, lo: 0xb3, hi: 0xbe}, {value: 0x0008, lo: 0xbf, hi: 0xbf}, - // Block 0xc9, offset 0x625 + // Block 0xcb, offset 0x62f {value: 0x0000, lo: 0x08}, {value: 0x3008, lo: 0x80, hi: 0x80}, {value: 0x0008, lo: 0x81, hi: 0x81}, @@ -4181,13 +4335,13 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x87, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xca, offset 0x62e + // Block 0xcc, offset 0x638 {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xa9}, {value: 0x0008, lo: 0xaa, hi: 0xbf}, - // Block 0xcb, offset 0x633 + // Block 0xcd, offset 0x63d {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x90}, {value: 0x3008, lo: 0x91, hi: 0x93}, @@ -4201,7 +4355,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa3, hi: 0xa3}, {value: 0x3008, lo: 0xa4, hi: 0xa4}, {value: 0x0040, lo: 0xa5, hi: 0xbf}, - // Block 0xcc, offset 0x640 + // Block 0xce, offset 0x64a {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x3308, lo: 0x81, hi: 0x8a}, @@ -4213,7 +4367,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xba, hi: 0xba}, {value: 0x3308, lo: 0xbb, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xcd, offset 0x64b + // Block 0xcf, offset 0x655 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x3b08, lo: 0x87, hi: 0x87}, @@ -4223,7 +4377,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0x97, hi: 0x98}, {value: 0x3308, lo: 0x99, hi: 0x9b}, {value: 0x0008, lo: 0x9c, hi: 0xbf}, - // Block 0xce, offset 0x654 + // Block 0xd0, offset 0x65e {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x3308, lo: 0x8a, hi: 0x96}, @@ -4234,11 +4388,11 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0x9d, hi: 0x9d}, {value: 0x0018, lo: 0x9e, hi: 0xa2}, {value: 0x0040, lo: 0xa3, hi: 0xbf}, - // Block 0xcf, offset 0x65e + // Block 0xd1, offset 0x668 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xd0, offset 0x661 + // Block 0xd2, offset 0x66b {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x89}, @@ -4249,7 +4403,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb8, hi: 0xbd}, {value: 0x3008, lo: 0xbe, hi: 0xbe}, {value: 0x3b08, lo: 0xbf, hi: 0xbf}, - // Block 0xd1, offset 0x66b + // Block 0xd3, offset 0x675 {value: 0x0000, lo: 0x08}, {value: 0x0008, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x85}, @@ -4259,7 +4413,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0008, lo: 0xb2, hi: 0xbf}, - // Block 0xd2, offset 0x674 + // Block 0xd4, offset 0x67e {value: 0x0000, lo: 0x0b}, {value: 0x0008, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x91}, @@ -4272,7 +4426,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb4, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0xd3, offset 0x680 + // Block 0xd5, offset 0x68a {value: 0x0000, lo: 0x0c}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4286,7 +4440,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xbc, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbe}, {value: 0x3308, lo: 0xbf, hi: 0xbf}, - // Block 0xd4, offset 0x68d + // Block 0xd6, offset 0x697 {value: 0x0000, lo: 0x0c}, {value: 0x3308, lo: 0x80, hi: 0x83}, {value: 0x3b08, lo: 0x84, hi: 0x85}, @@ -4300,7 +4454,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa7, hi: 0xa8}, {value: 0x0040, lo: 0xa9, hi: 0xa9}, {value: 0x0008, lo: 0xaa, hi: 0xbf}, - // Block 0xd5, offset 0x69a + // Block 0xd7, offset 0x6a4 {value: 0x0000, lo: 0x0d}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x3008, lo: 0x8a, hi: 0x8e}, @@ -4315,7 +4469,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa9}, {value: 0x0040, lo: 0xaa, hi: 0xbf}, - // Block 0xd6, offset 0x6a8 + // Block 0xd8, offset 0x6b2 {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xb2}, @@ -4323,41 +4477,41 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3008, lo: 0xb5, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xd7, offset 0x6af + // Block 0xd9, offset 0x6b9 {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb0}, {value: 0x0040, lo: 0xb1, hi: 0xbf}, - // Block 0xd8, offset 0x6b3 + // Block 0xda, offset 0x6bd {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xd9, offset 0x6b7 + // Block 0xdb, offset 0x6c1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0xbf}, - // Block 0xda, offset 0x6ba + // Block 0xdc, offset 0x6c4 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0xdb, offset 0x6bf + // Block 0xdd, offset 0x6c9 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0040, lo: 0x84, hi: 0xbf}, - // Block 0xdc, offset 0x6c2 + // Block 0xde, offset 0x6cc {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xaf}, {value: 0x0340, lo: 0xb0, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xdd, offset 0x6c7 + // Block 0xdf, offset 0x6d1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0xbf}, - // Block 0xde, offset 0x6ca + // Block 0xe0, offset 0x6d4 {value: 0x0000, lo: 0x06}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0x9f}, @@ -4365,7 +4519,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xaa, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0xdf, offset 0x6d1 + // Block 0xe1, offset 0x6db {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0xad}, @@ -4373,12 +4527,12 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x3308, lo: 0xb0, hi: 0xb4}, {value: 0x0018, lo: 0xb5, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0xe0, offset 0x6d8 + // Block 0xe2, offset 0x6e2 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xbf}, - // Block 0xe1, offset 0x6dc + // Block 0xe3, offset 0x6e6 {value: 0x0000, lo: 0x0a}, {value: 0x0008, lo: 0x80, hi: 0x83}, {value: 0x0018, lo: 0x84, hi: 0x85}, @@ -4390,33 +4544,33 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa3, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbc}, {value: 0x0008, lo: 0xbd, hi: 0xbf}, - // Block 0xe2, offset 0x6e7 + // Block 0xe4, offset 0x6f1 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0xbf}, - // Block 0xe3, offset 0x6ea + // Block 0xe5, offset 0x6f4 {value: 0x0000, lo: 0x02}, {value: 0xe105, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0xe4, offset 0x6ed + // Block 0xe6, offset 0x6f7 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0x9a}, {value: 0x0040, lo: 0x9b, hi: 0xbf}, - // Block 0xe5, offset 0x6f0 + // Block 0xe7, offset 0x6fa {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0x8e}, {value: 0x3308, lo: 0x8f, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x90}, {value: 0x3008, lo: 0x91, hi: 0xbf}, - // Block 0xe6, offset 0x6f6 + // Block 0xe8, offset 0x700 {value: 0x0000, lo: 0x05}, {value: 0x3008, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8e}, {value: 0x3308, lo: 0x8f, hi: 0x92}, {value: 0x0008, lo: 0x93, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0xe7, offset 0x6fc + // Block 0xe9, offset 0x706 {value: 0x0000, lo: 0x08}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xa1}, @@ -4426,23 +4580,23 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa5, hi: 0xaf}, {value: 0x3008, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0xe8, offset 0x705 + // Block 0xea, offset 0x70f {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb7}, {value: 0x0040, lo: 0xb8, hi: 0xbf}, - // Block 0xe9, offset 0x708 + // Block 0xeb, offset 0x712 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x95}, {value: 0x0040, lo: 0x96, hi: 0xbf}, - // Block 0xea, offset 0x70b + // Block 0xec, offset 0x715 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0xbf}, - // Block 0xeb, offset 0x70e + // Block 0xed, offset 0x718 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x9e}, {value: 0x0040, lo: 0x9f, hi: 0xbf}, - // Block 0xec, offset 0x711 + // Block 0xee, offset 0x71b {value: 0x0000, lo: 0x06}, {value: 0x0040, lo: 0x80, hi: 0x8f}, {value: 0x0008, lo: 0x90, hi: 0x92}, @@ -4450,17 +4604,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0008, lo: 0xa4, hi: 0xa7}, {value: 0x0040, lo: 0xa8, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0xed, offset 0x718 + // Block 0xef, offset 0x722 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xbb}, {value: 0x0040, lo: 0xbc, hi: 0xbf}, - // Block 0xee, offset 0x71b + // Block 0xf0, offset 0x725 {value: 0x0000, lo: 0x04}, {value: 0x0008, lo: 0x80, hi: 0xaa}, {value: 0x0040, lo: 0xab, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0xef, offset 0x720 + // Block 0xf1, offset 0x72a {value: 0x0000, lo: 0x09}, {value: 0x0008, lo: 0x80, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, @@ -4471,32 +4625,32 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0x9f, hi: 0x9f}, {value: 0x03c0, lo: 0xa0, hi: 0xa3}, {value: 0x0040, lo: 0xa4, hi: 0xbf}, - // Block 0xf0, offset 0x72a + // Block 0xf2, offset 0x734 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0xf1, offset 0x72d + // Block 0xf3, offset 0x737 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xa6}, {value: 0x0040, lo: 0xa7, hi: 0xa8}, {value: 0x0018, lo: 0xa9, hi: 0xbf}, - // Block 0xf2, offset 0x731 + // Block 0xf4, offset 0x73b {value: 0x0000, lo: 0x0e}, {value: 0x0018, lo: 0x80, hi: 0x9d}, - {value: 0xb609, lo: 0x9e, hi: 0x9e}, - {value: 0xb651, lo: 0x9f, hi: 0x9f}, - {value: 0xb699, lo: 0xa0, hi: 0xa0}, - {value: 0xb701, lo: 0xa1, hi: 0xa1}, - {value: 0xb769, lo: 0xa2, hi: 0xa2}, - {value: 0xb7d1, lo: 0xa3, hi: 0xa3}, - {value: 0xb839, lo: 0xa4, hi: 0xa4}, + {value: 0x2211, lo: 0x9e, hi: 0x9e}, + {value: 0x2219, lo: 0x9f, hi: 0x9f}, + {value: 0x2221, lo: 0xa0, hi: 0xa0}, + {value: 0x2229, lo: 0xa1, hi: 0xa1}, + {value: 0x2231, lo: 0xa2, hi: 0xa2}, + {value: 0x2239, lo: 0xa3, hi: 0xa3}, + {value: 0x2241, lo: 0xa4, hi: 0xa4}, {value: 0x3018, lo: 0xa5, hi: 0xa6}, {value: 0x3318, lo: 0xa7, hi: 0xa9}, {value: 0x0018, lo: 0xaa, hi: 0xac}, {value: 0x3018, lo: 0xad, hi: 0xb2}, {value: 0x0340, lo: 0xb3, hi: 0xba}, {value: 0x3318, lo: 0xbb, hi: 0xbf}, - // Block 0xf3, offset 0x740 + // Block 0xf5, offset 0x74a {value: 0x0000, lo: 0x0b}, {value: 0x3318, lo: 0x80, hi: 0x82}, {value: 0x0018, lo: 0x83, hi: 0x84}, @@ -4504,45 +4658,45 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0018, lo: 0x8c, hi: 0xa9}, {value: 0x3318, lo: 0xaa, hi: 0xad}, {value: 0x0018, lo: 0xae, hi: 0xba}, - {value: 0xb8a1, lo: 0xbb, hi: 0xbb}, - {value: 0xb8e9, lo: 0xbc, hi: 0xbc}, - {value: 0xb931, lo: 0xbd, hi: 0xbd}, - {value: 0xb999, lo: 0xbe, hi: 0xbe}, - {value: 0xba01, lo: 0xbf, hi: 0xbf}, - // Block 0xf4, offset 0x74c + {value: 0x2249, lo: 0xbb, hi: 0xbb}, + {value: 0x2251, lo: 0xbc, hi: 0xbc}, + {value: 0x2259, lo: 0xbd, hi: 0xbd}, + {value: 0x2261, lo: 0xbe, hi: 0xbe}, + {value: 0x2269, lo: 0xbf, hi: 0xbf}, + // Block 0xf6, offset 0x756 {value: 0x0000, lo: 0x03}, - {value: 0xba69, lo: 0x80, hi: 0x80}, + {value: 0x2271, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0xa8}, {value: 0x0040, lo: 0xa9, hi: 0xbf}, - // Block 0xf5, offset 0x750 + // Block 0xf7, offset 0x75a {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x81}, {value: 0x3318, lo: 0x82, hi: 0x84}, {value: 0x0018, lo: 0x85, hi: 0x85}, {value: 0x0040, lo: 0x86, hi: 0xbf}, - // Block 0xf6, offset 0x755 + // Block 0xf8, offset 0x75f {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xbf}, - // Block 0xf7, offset 0x759 + // Block 0xf9, offset 0x763 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xbf}, - // Block 0xf8, offset 0x75e + // Block 0xfa, offset 0x768 {value: 0x0000, lo: 0x03}, {value: 0x3308, lo: 0x80, hi: 0xb6}, {value: 0x0018, lo: 0xb7, hi: 0xba}, {value: 0x3308, lo: 0xbb, hi: 0xbf}, - // Block 0xf9, offset 0x762 + // Block 0xfb, offset 0x76c {value: 0x0000, lo: 0x04}, {value: 0x3308, lo: 0x80, hi: 0xac}, {value: 0x0018, lo: 0xad, hi: 0xb4}, {value: 0x3308, lo: 0xb5, hi: 0xb5}, {value: 0x0018, lo: 0xb6, hi: 0xbf}, - // Block 0xfa, offset 0x767 + // Block 0xfc, offset 0x771 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x83}, {value: 0x3308, lo: 0x84, hi: 0x84}, @@ -4552,7 +4706,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa0, hi: 0xa0}, {value: 0x3308, lo: 0xa1, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, - // Block 0xfb, offset 0x770 + // Block 0xfd, offset 0x77a {value: 0x0000, lo: 0x0a}, {value: 0x3308, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x87}, @@ -4564,35 +4718,35 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa5, hi: 0xa5}, {value: 0x3308, lo: 0xa6, hi: 0xaa}, {value: 0x0040, lo: 0xab, hi: 0xbf}, - // Block 0xfc, offset 0x77b + // Block 0xfe, offset 0x785 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xac}, {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x3308, lo: 0xb0, hi: 0xb6}, {value: 0x0008, lo: 0xb7, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0xfd, offset 0x781 + // Block 0xff, offset 0x78b {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0x89}, {value: 0x0040, lo: 0x8a, hi: 0x8d}, {value: 0x0008, lo: 0x8e, hi: 0x8e}, {value: 0x0018, lo: 0x8f, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0xbf}, - // Block 0xfe, offset 0x787 + // Block 0x100, offset 0x791 {value: 0x0000, lo: 0x05}, {value: 0x0008, lo: 0x80, hi: 0xab}, {value: 0x3308, lo: 0xac, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbe}, {value: 0x0018, lo: 0xbf, hi: 0xbf}, - // Block 0xff, offset 0x78d + // Block 0x101, offset 0x797 {value: 0x0000, lo: 0x05}, {value: 0x0808, lo: 0x80, hi: 0x84}, {value: 0x0040, lo: 0x85, hi: 0x86}, {value: 0x0818, lo: 0x87, hi: 0x8f}, {value: 0x3308, lo: 0x90, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0xbf}, - // Block 0x100, offset 0x793 + // Block 0x102, offset 0x79d {value: 0x0000, lo: 0x08}, {value: 0x0a08, lo: 0x80, hi: 0x83}, {value: 0x3308, lo: 0x84, hi: 0x8a}, @@ -4602,71 +4756,71 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0x9a, hi: 0x9d}, {value: 0x0818, lo: 0x9e, hi: 0x9f}, {value: 0x0040, lo: 0xa0, hi: 0xbf}, - // Block 0x101, offset 0x79c + // Block 0x103, offset 0x7a6 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0xb0}, {value: 0x0818, lo: 0xb1, hi: 0xbf}, - // Block 0x102, offset 0x79f + // Block 0x104, offset 0x7a9 {value: 0x0000, lo: 0x02}, {value: 0x0818, lo: 0x80, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0x103, offset 0x7a2 + // Block 0x105, offset 0x7ac {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0818, lo: 0x81, hi: 0xbd}, {value: 0x0040, lo: 0xbe, hi: 0xbf}, - // Block 0x104, offset 0x7a6 + // Block 0x106, offset 0x7b0 {value: 0x0000, lo: 0x03}, {value: 0x0040, lo: 0x80, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0x105, offset 0x7aa + // Block 0x107, offset 0x7b4 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbf}, - // Block 0x106, offset 0x7ae + // Block 0x108, offset 0x7b8 {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x93}, {value: 0x0040, lo: 0x94, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xae}, {value: 0x0040, lo: 0xaf, hi: 0xb0}, {value: 0x0018, lo: 0xb1, hi: 0xbf}, - // Block 0x107, offset 0x7b4 + // Block 0x109, offset 0x7be {value: 0x0000, lo: 0x05}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0018, lo: 0x81, hi: 0x8f}, {value: 0x0040, lo: 0x90, hi: 0x90}, {value: 0x0018, lo: 0x91, hi: 0xb5}, {value: 0x0040, lo: 0xb6, hi: 0xbf}, - // Block 0x108, offset 0x7ba + // Block 0x10a, offset 0x7c4 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x8f}, - {value: 0xc229, lo: 0x90, hi: 0x90}, + {value: 0x2491, lo: 0x90, hi: 0x90}, {value: 0x0018, lo: 0x91, hi: 0xad}, {value: 0x0040, lo: 0xae, hi: 0xbf}, - // Block 0x109, offset 0x7bf + // Block 0x10b, offset 0x7c9 {value: 0x0000, lo: 0x02}, {value: 0x0040, lo: 0x80, hi: 0xa5}, {value: 0x0018, lo: 0xa6, hi: 0xbf}, - // Block 0x10a, offset 0x7c2 + // Block 0x10c, offset 0x7cc {value: 0x0000, lo: 0x0f}, - {value: 0xc851, lo: 0x80, hi: 0x80}, - {value: 0xc8a1, lo: 0x81, hi: 0x81}, - {value: 0xc8f1, lo: 0x82, hi: 0x82}, - {value: 0xc941, lo: 0x83, hi: 0x83}, - {value: 0xc991, lo: 0x84, hi: 0x84}, - {value: 0xc9e1, lo: 0x85, hi: 0x85}, - {value: 0xca31, lo: 0x86, hi: 0x86}, - {value: 0xca81, lo: 0x87, hi: 0x87}, - {value: 0xcad1, lo: 0x88, hi: 0x88}, + {value: 0x2611, lo: 0x80, hi: 0x80}, + {value: 0x2619, lo: 0x81, hi: 0x81}, + {value: 0x2621, lo: 0x82, hi: 0x82}, + {value: 0x2629, lo: 0x83, hi: 0x83}, + {value: 0x2631, lo: 0x84, hi: 0x84}, + {value: 0x2639, lo: 0x85, hi: 0x85}, + {value: 0x2641, lo: 0x86, hi: 0x86}, + {value: 0x2649, lo: 0x87, hi: 0x87}, + {value: 0x2651, lo: 0x88, hi: 0x88}, {value: 0x0040, lo: 0x89, hi: 0x8f}, - {value: 0xcb21, lo: 0x90, hi: 0x90}, - {value: 0xcb41, lo: 0x91, hi: 0x91}, + {value: 0x2659, lo: 0x90, hi: 0x90}, + {value: 0x2661, lo: 0x91, hi: 0x91}, {value: 0x0040, lo: 0x92, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xa5}, {value: 0x0040, lo: 0xa6, hi: 0xbf}, - // Block 0x10b, offset 0x7d2 + // Block 0x10d, offset 0x7dc {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x97}, {value: 0x0040, lo: 0x98, hi: 0x9f}, @@ -4674,29 +4828,29 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xad, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xbc}, {value: 0x0040, lo: 0xbd, hi: 0xbf}, - // Block 0x10c, offset 0x7d9 + // Block 0x10e, offset 0x7e3 {value: 0x0000, lo: 0x02}, {value: 0x0018, lo: 0x80, hi: 0xb3}, {value: 0x0040, lo: 0xb4, hi: 0xbf}, - // Block 0x10d, offset 0x7dc + // Block 0x10f, offset 0x7e6 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x98}, {value: 0x0040, lo: 0x99, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xab}, {value: 0x0040, lo: 0xac, hi: 0xbf}, - // Block 0x10e, offset 0x7e1 + // Block 0x110, offset 0x7eb {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0xbf}, - // Block 0x10f, offset 0x7e5 + // Block 0x111, offset 0x7ef {value: 0x0000, lo: 0x05}, {value: 0x0018, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x99}, {value: 0x0040, lo: 0x9a, hi: 0x9f}, {value: 0x0018, lo: 0xa0, hi: 0xbf}, - // Block 0x110, offset 0x7eb + // Block 0x112, offset 0x7f5 {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x87}, {value: 0x0040, lo: 0x88, hi: 0x8f}, @@ -4704,17 +4858,17 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xae, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb1}, {value: 0x0040, lo: 0xb2, hi: 0xbf}, - // Block 0x111, offset 0x7f2 + // Block 0x113, offset 0x7fc {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0xb8}, {value: 0x0040, lo: 0xb9, hi: 0xb9}, {value: 0x0018, lo: 0xba, hi: 0xbf}, - // Block 0x112, offset 0x7f6 + // Block 0x114, offset 0x800 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x8b}, {value: 0x0040, lo: 0x8c, hi: 0x8c}, {value: 0x0018, lo: 0x8d, hi: 0xbf}, - // Block 0x113, offset 0x7fa + // Block 0x115, offset 0x804 {value: 0x0000, lo: 0x08}, {value: 0x0018, lo: 0x80, hi: 0x93}, {value: 0x0040, lo: 0x94, hi: 0x9f}, @@ -4724,7 +4878,7 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xb5, hi: 0xb7}, {value: 0x0018, lo: 0xb8, hi: 0xba}, {value: 0x0040, lo: 0xbb, hi: 0xbf}, - // Block 0x114, offset 0x803 + // Block 0x116, offset 0x80d {value: 0x0000, lo: 0x06}, {value: 0x0018, lo: 0x80, hi: 0x86}, {value: 0x0040, lo: 0x87, hi: 0x8f}, @@ -4732,109 +4886,74 @@ var idnaSparseValues = [2146]valueRange{ {value: 0x0040, lo: 0xa9, hi: 0xaf}, {value: 0x0018, lo: 0xb0, hi: 0xb6}, {value: 0x0040, lo: 0xb7, hi: 0xbf}, - // Block 0x115, offset 0x80a + // Block 0x117, offset 0x814 {value: 0x0000, lo: 0x04}, {value: 0x0018, lo: 0x80, hi: 0x82}, {value: 0x0040, lo: 0x83, hi: 0x8f}, {value: 0x0018, lo: 0x90, hi: 0x96}, {value: 0x0040, lo: 0x97, hi: 0xbf}, - // Block 0x116, offset 0x80f + // Block 0x118, offset 0x819 {value: 0x0000, lo: 0x03}, {value: 0x0018, lo: 0x80, hi: 0x92}, {value: 0x0040, lo: 0x93, hi: 0x93}, {value: 0x0018, lo: 0x94, hi: 0xbf}, - // Block 0x117, offset 0x813 + // Block 0x119, offset 0x81d {value: 0x0000, lo: 0x0d}, {value: 0x0018, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0xaf}, - {value: 0x1f41, lo: 0xb0, hi: 0xb0}, - {value: 0x00c9, lo: 0xb1, hi: 0xb1}, - {value: 0x0069, lo: 0xb2, hi: 0xb2}, - {value: 0x0079, lo: 0xb3, hi: 0xb3}, - {value: 0x1f51, lo: 0xb4, hi: 0xb4}, - {value: 0x1f61, lo: 0xb5, hi: 0xb5}, - {value: 0x1f71, lo: 0xb6, hi: 0xb6}, - {value: 0x1f81, lo: 0xb7, hi: 0xb7}, - {value: 0x1f91, lo: 0xb8, hi: 0xb8}, - {value: 0x1fa1, lo: 0xb9, hi: 0xb9}, + {value: 0x06e1, lo: 0xb0, hi: 0xb0}, + {value: 0x0049, lo: 0xb1, hi: 0xb1}, + {value: 0x0029, lo: 0xb2, hi: 0xb2}, + {value: 0x0031, lo: 0xb3, hi: 0xb3}, + {value: 0x06e9, lo: 0xb4, hi: 0xb4}, + {value: 0x06f1, lo: 0xb5, hi: 0xb5}, + {value: 0x06f9, lo: 0xb6, hi: 0xb6}, + {value: 0x0701, lo: 0xb7, hi: 0xb7}, + {value: 0x0709, lo: 0xb8, hi: 0xb8}, + {value: 0x0711, lo: 0xb9, hi: 0xb9}, {value: 0x0040, lo: 0xba, hi: 0xbf}, - // Block 0x118, offset 0x821 + // Block 0x11a, offset 0x82b {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0xbf}, - // Block 0x119, offset 0x824 + // Block 0x11b, offset 0x82e {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xb4}, {value: 0x0040, lo: 0xb5, hi: 0xbf}, - // Block 0x11a, offset 0x827 + // Block 0x11c, offset 0x831 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0x9d}, {value: 0x0040, lo: 0x9e, hi: 0x9f}, {value: 0x0008, lo: 0xa0, hi: 0xbf}, - // Block 0x11b, offset 0x82b + // Block 0x11d, offset 0x835 {value: 0x0000, lo: 0x03}, {value: 0x0008, lo: 0x80, hi: 0xa1}, {value: 0x0040, lo: 0xa2, hi: 0xaf}, {value: 0x0008, lo: 0xb0, hi: 0xbf}, - // Block 0x11c, offset 0x82f + // Block 0x11e, offset 0x839 {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0xa0}, {value: 0x0040, lo: 0xa1, hi: 0xbf}, - // Block 0x11d, offset 0x832 - {value: 0x0020, lo: 0x0f}, - {value: 0xdf21, lo: 0x80, hi: 0x89}, - {value: 0x8e35, lo: 0x8a, hi: 0x8a}, - {value: 0xe061, lo: 0x8b, hi: 0x9c}, - {value: 0x8e55, lo: 0x9d, hi: 0x9d}, - {value: 0xe2a1, lo: 0x9e, hi: 0xa2}, - {value: 0x8e75, lo: 0xa3, hi: 0xa3}, - {value: 0xe341, lo: 0xa4, hi: 0xab}, - {value: 0x7f0d, lo: 0xac, hi: 0xac}, - {value: 0xe441, lo: 0xad, hi: 0xaf}, - {value: 0x8e95, lo: 0xb0, hi: 0xb0}, - {value: 0xe4a1, lo: 0xb1, hi: 0xb6}, - {value: 0x8eb5, lo: 0xb7, hi: 0xb9}, - {value: 0xe561, lo: 0xba, hi: 0xba}, - {value: 0x8f15, lo: 0xbb, hi: 0xbb}, - {value: 0xe581, lo: 0xbc, hi: 0xbf}, - // Block 0x11e, offset 0x842 - {value: 0x0020, lo: 0x10}, - {value: 0x93b5, lo: 0x80, hi: 0x80}, - {value: 0xf101, lo: 0x81, hi: 0x86}, - {value: 0x93d5, lo: 0x87, hi: 0x8a}, - {value: 0xda61, lo: 0x8b, hi: 0x8b}, - {value: 0xf1c1, lo: 0x8c, hi: 0x96}, - {value: 0x9455, lo: 0x97, hi: 0x97}, - {value: 0xf321, lo: 0x98, hi: 0xa3}, - {value: 0x9475, lo: 0xa4, hi: 0xa6}, - {value: 0xf4a1, lo: 0xa7, hi: 0xaa}, - {value: 0x94d5, lo: 0xab, hi: 0xab}, - {value: 0xf521, lo: 0xac, hi: 0xac}, - {value: 0x94f5, lo: 0xad, hi: 0xad}, - {value: 0xf541, lo: 0xae, hi: 0xaf}, - {value: 0x9515, lo: 0xb0, hi: 0xb1}, - {value: 0xf581, lo: 0xb2, hi: 0xbe}, - {value: 0x2040, lo: 0xbf, hi: 0xbf}, - // Block 0x11f, offset 0x853 + // Block 0x11f, offset 0x83c {value: 0x0000, lo: 0x02}, {value: 0x0008, lo: 0x80, hi: 0x8a}, {value: 0x0040, lo: 0x8b, hi: 0xbf}, - // Block 0x120, offset 0x856 + // Block 0x120, offset 0x83f {value: 0x0000, lo: 0x04}, {value: 0x0040, lo: 0x80, hi: 0x80}, {value: 0x0340, lo: 0x81, hi: 0x81}, {value: 0x0040, lo: 0x82, hi: 0x9f}, {value: 0x0340, lo: 0xa0, hi: 0xbf}, - // Block 0x121, offset 0x85b + // Block 0x121, offset 0x844 {value: 0x0000, lo: 0x01}, {value: 0x0340, lo: 0x80, hi: 0xbf}, - // Block 0x122, offset 0x85d + // Block 0x122, offset 0x846 {value: 0x0000, lo: 0x01}, {value: 0x33c0, lo: 0x80, hi: 0xbf}, - // Block 0x123, offset 0x85f + // Block 0x123, offset 0x848 {value: 0x0000, lo: 0x02}, {value: 0x33c0, lo: 0x80, hi: 0xaf}, {value: 0x0040, lo: 0xb0, hi: 0xbf}, } -// Total table size 43370 bytes (42KiB); checksum: EBD909C0 +// Total table size 44953 bytes (43KiB); checksum: D51909DD diff --git a/vendor/golang.org/x/net/idna/tables9.0.0.go b/vendor/golang.org/x/net/idna/tables9.0.0.go index 4074b53..0f25e84 100644 --- a/vendor/golang.org/x/net/idna/tables9.0.0.go +++ b/vendor/golang.org/x/net/idna/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package idna diff --git a/vendor/golang.org/x/net/idna/trie.go b/vendor/golang.org/x/net/idna/trie.go index c4ef847..4212741 100644 --- a/vendor/golang.org/x/net/idna/trie.go +++ b/vendor/golang.org/x/net/idna/trie.go @@ -6,27 +6,6 @@ package idna -// appendMapping appends the mapping for the respective rune. isMapped must be -// true. A mapping is a categorization of a rune as defined in UTS #46. -func (c info) appendMapping(b []byte, s string) []byte { - index := int(c >> indexShift) - if c&xorBit == 0 { - s := mappings[index:] - return append(b, s[1:s[0]+1]...) - } - b = append(b, s...) - if c&inlineXOR == inlineXOR { - // TODO: support and handle two-byte inline masks - b[len(b)-1] ^= byte(index) - } else { - for p := len(b) - int(xorData[index]); p < len(b); p++ { - index++ - b[p] ^= xorData[index] - } - } - return b -} - // Sparse block handling code. type valueRange struct { diff --git a/vendor/golang.org/x/text/LICENSE b/vendor/golang.org/x/text/LICENSE index 6a66aea..2a7cf70 100644 --- a/vendor/golang.org/x/text/LICENSE +++ b/vendor/golang.org/x/text/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2009 The Go Authors. All rights reserved. +Copyright 2009 The Go Authors. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are @@ -10,7 +10,7 @@ notice, this list of conditions and the following disclaimer. copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - * Neither the name of Google Inc. nor the names of its + * Neither the name of Google LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. diff --git a/vendor/golang.org/x/text/cases/icu.go b/vendor/golang.org/x/text/cases/icu.go index 2dc84b3..db7c237 100644 --- a/vendor/golang.org/x/text/cases/icu.go +++ b/vendor/golang.org/x/text/cases/icu.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build icu -// +build icu package cases diff --git a/vendor/golang.org/x/text/cases/tables10.0.0.go b/vendor/golang.org/x/text/cases/tables10.0.0.go index ca99231..bd28ae1 100644 --- a/vendor/golang.org/x/text/cases/tables10.0.0.go +++ b/vendor/golang.org/x/text/cases/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package cases diff --git a/vendor/golang.org/x/text/cases/tables11.0.0.go b/vendor/golang.org/x/text/cases/tables11.0.0.go index b1106b4..ce00ce3 100644 --- a/vendor/golang.org/x/text/cases/tables11.0.0.go +++ b/vendor/golang.org/x/text/cases/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package cases diff --git a/vendor/golang.org/x/text/cases/tables12.0.0.go b/vendor/golang.org/x/text/cases/tables12.0.0.go index ae7dc24..84d841b 100644 --- a/vendor/golang.org/x/text/cases/tables12.0.0.go +++ b/vendor/golang.org/x/text/cases/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package cases diff --git a/vendor/golang.org/x/text/cases/tables13.0.0.go b/vendor/golang.org/x/text/cases/tables13.0.0.go index 68d2981..6187e6b 100644 --- a/vendor/golang.org/x/text/cases/tables13.0.0.go +++ b/vendor/golang.org/x/text/cases/tables13.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 package cases diff --git a/vendor/golang.org/x/text/cases/tables15.0.0.go b/vendor/golang.org/x/text/cases/tables15.0.0.go index e431b99..aee0f31 100644 --- a/vendor/golang.org/x/text/cases/tables15.0.0.go +++ b/vendor/golang.org/x/text/cases/tables15.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.21 -// +build go1.21 package cases diff --git a/vendor/golang.org/x/text/cases/tables9.0.0.go b/vendor/golang.org/x/text/cases/tables9.0.0.go index 636d5d1..3aeb7be 100644 --- a/vendor/golang.org/x/text/cases/tables9.0.0.go +++ b/vendor/golang.org/x/text/cases/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package cases diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go index 8a7392c..784bb88 100644 --- a/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build go1.10 -// +build go1.10 package bidirule diff --git a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go index bb0a920..8e1e943 100644 --- a/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +++ b/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go @@ -3,7 +3,6 @@ // license that can be found in the LICENSE file. //go:build !go1.10 -// +build !go1.10 package bidirule diff --git a/vendor/golang.org/x/text/secure/precis/tables10.0.0.go b/vendor/golang.org/x/text/secure/precis/tables10.0.0.go index 8164749..93cbffa 100644 --- a/vendor/golang.org/x/text/secure/precis/tables10.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package precis diff --git a/vendor/golang.org/x/text/secure/precis/tables11.0.0.go b/vendor/golang.org/x/text/secure/precis/tables11.0.0.go index a40e55d..6cea210 100644 --- a/vendor/golang.org/x/text/secure/precis/tables11.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package precis diff --git a/vendor/golang.org/x/text/secure/precis/tables12.0.0.go b/vendor/golang.org/x/text/secure/precis/tables12.0.0.go index 254bbc7..1b506cd 100644 --- a/vendor/golang.org/x/text/secure/precis/tables12.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package precis diff --git a/vendor/golang.org/x/text/secure/precis/tables13.0.0.go b/vendor/golang.org/x/text/secure/precis/tables13.0.0.go index 7bc1a16..0a467f5 100644 --- a/vendor/golang.org/x/text/secure/precis/tables13.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables13.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 package precis diff --git a/vendor/golang.org/x/text/secure/precis/tables15.0.0.go b/vendor/golang.org/x/text/secure/precis/tables15.0.0.go index 48c3227..0628606 100644 --- a/vendor/golang.org/x/text/secure/precis/tables15.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables15.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.21 -// +build go1.21 package precis diff --git a/vendor/golang.org/x/text/secure/precis/tables9.0.0.go b/vendor/golang.org/x/text/secure/precis/tables9.0.0.go index 2292b7c..0a104f7 100644 --- a/vendor/golang.org/x/text/secure/precis/tables9.0.0.go +++ b/vendor/golang.org/x/text/secure/precis/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package precis diff --git a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go index 42fa8d7..d2bd711 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go index 56a0e1e..f76bdca 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go index baacf32..3aa2c3b 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go index ffadb7b..a713757 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go index 92cce58..f15746f 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.21 -// +build go1.21 package bidi diff --git a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go index f517fdb..c164d37 100644 --- a/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package bidi diff --git a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go index f5a0788..1af161c 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go index cb7239c..eb73ecc 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go index 11b2733..276cb8d 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go index f65785e..0cceffd 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go index e1858b8..b0819e4 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.21 -// +build go1.21 package norm diff --git a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go index 0175eae..bf65457 100644 --- a/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +++ b/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package norm diff --git a/vendor/golang.org/x/text/width/tables10.0.0.go b/vendor/golang.org/x/text/width/tables10.0.0.go index cd9d91c..07c1cb1 100644 --- a/vendor/golang.org/x/text/width/tables10.0.0.go +++ b/vendor/golang.org/x/text/width/tables10.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.10 && !go1.13 -// +build go1.10,!go1.13 package width diff --git a/vendor/golang.org/x/text/width/tables11.0.0.go b/vendor/golang.org/x/text/width/tables11.0.0.go index 327eaef..89288b3 100644 --- a/vendor/golang.org/x/text/width/tables11.0.0.go +++ b/vendor/golang.org/x/text/width/tables11.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.13 && !go1.14 -// +build go1.13,!go1.14 package width diff --git a/vendor/golang.org/x/text/width/tables12.0.0.go b/vendor/golang.org/x/text/width/tables12.0.0.go index 5c14ade..755ee91 100644 --- a/vendor/golang.org/x/text/width/tables12.0.0.go +++ b/vendor/golang.org/x/text/width/tables12.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.14 && !go1.16 -// +build go1.14,!go1.16 package width diff --git a/vendor/golang.org/x/text/width/tables13.0.0.go b/vendor/golang.org/x/text/width/tables13.0.0.go index b1fcb52..40c169e 100644 --- a/vendor/golang.org/x/text/width/tables13.0.0.go +++ b/vendor/golang.org/x/text/width/tables13.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.16 && !go1.21 -// +build go1.16,!go1.21 package width diff --git a/vendor/golang.org/x/text/width/tables15.0.0.go b/vendor/golang.org/x/text/width/tables15.0.0.go index 4b91e33..2b85289 100644 --- a/vendor/golang.org/x/text/width/tables15.0.0.go +++ b/vendor/golang.org/x/text/width/tables15.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build go1.21 -// +build go1.21 package width diff --git a/vendor/golang.org/x/text/width/tables9.0.0.go b/vendor/golang.org/x/text/width/tables9.0.0.go index 6781f3d..d981330 100644 --- a/vendor/golang.org/x/text/width/tables9.0.0.go +++ b/vendor/golang.org/x/text/width/tables9.0.0.go @@ -1,7 +1,6 @@ // Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. //go:build !go1.10 -// +build !go1.10 package width diff --git a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go index 5c0e8f7..136f1b2 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go @@ -183,13 +183,58 @@ const ( // Field names for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" + ExtensionRangeOptions_Declaration_field_name protoreflect.Name = "declaration" + ExtensionRangeOptions_Verification_field_name protoreflect.Name = "verification" ExtensionRangeOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.uninterpreted_option" + ExtensionRangeOptions_Declaration_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.declaration" + ExtensionRangeOptions_Verification_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.verification" ) // Field numbers for google.protobuf.ExtensionRangeOptions. const ( ExtensionRangeOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 + ExtensionRangeOptions_Declaration_field_number protoreflect.FieldNumber = 2 + ExtensionRangeOptions_Verification_field_number protoreflect.FieldNumber = 3 +) + +// Full and short names for google.protobuf.ExtensionRangeOptions.VerificationState. +const ( + ExtensionRangeOptions_VerificationState_enum_fullname = "google.protobuf.ExtensionRangeOptions.VerificationState" + ExtensionRangeOptions_VerificationState_enum_name = "VerificationState" +) + +// Names for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_message_name protoreflect.Name = "Declaration" + ExtensionRangeOptions_Declaration_message_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration" +) + +// Field names for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_Number_field_name protoreflect.Name = "number" + ExtensionRangeOptions_Declaration_FullName_field_name protoreflect.Name = "full_name" + ExtensionRangeOptions_Declaration_Type_field_name protoreflect.Name = "type" + ExtensionRangeOptions_Declaration_IsRepeated_field_name protoreflect.Name = "is_repeated" + ExtensionRangeOptions_Declaration_Reserved_field_name protoreflect.Name = "reserved" + ExtensionRangeOptions_Declaration_Repeated_field_name protoreflect.Name = "repeated" + + ExtensionRangeOptions_Declaration_Number_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.number" + ExtensionRangeOptions_Declaration_FullName_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.full_name" + ExtensionRangeOptions_Declaration_Type_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.type" + ExtensionRangeOptions_Declaration_IsRepeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.is_repeated" + ExtensionRangeOptions_Declaration_Reserved_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.reserved" + ExtensionRangeOptions_Declaration_Repeated_field_fullname protoreflect.FullName = "google.protobuf.ExtensionRangeOptions.Declaration.repeated" +) + +// Field numbers for google.protobuf.ExtensionRangeOptions.Declaration. +const ( + ExtensionRangeOptions_Declaration_Number_field_number protoreflect.FieldNumber = 1 + ExtensionRangeOptions_Declaration_FullName_field_number protoreflect.FieldNumber = 2 + ExtensionRangeOptions_Declaration_Type_field_number protoreflect.FieldNumber = 3 + ExtensionRangeOptions_Declaration_IsRepeated_field_number protoreflect.FieldNumber = 4 + ExtensionRangeOptions_Declaration_Reserved_field_number protoreflect.FieldNumber = 5 + ExtensionRangeOptions_Declaration_Repeated_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.FieldDescriptorProto. @@ -540,6 +585,7 @@ const ( FieldOptions_DebugRedact_field_name protoreflect.Name = "debug_redact" FieldOptions_Retention_field_name protoreflect.Name = "retention" FieldOptions_Target_field_name protoreflect.Name = "target" + FieldOptions_Targets_field_name protoreflect.Name = "targets" FieldOptions_UninterpretedOption_field_name protoreflect.Name = "uninterpreted_option" FieldOptions_Ctype_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.ctype" @@ -552,6 +598,7 @@ const ( FieldOptions_DebugRedact_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.debug_redact" FieldOptions_Retention_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.retention" FieldOptions_Target_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.target" + FieldOptions_Targets_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.targets" FieldOptions_UninterpretedOption_field_fullname protoreflect.FullName = "google.protobuf.FieldOptions.uninterpreted_option" ) @@ -567,6 +614,7 @@ const ( FieldOptions_DebugRedact_field_number protoreflect.FieldNumber = 16 FieldOptions_Retention_field_number protoreflect.FieldNumber = 17 FieldOptions_Target_field_number protoreflect.FieldNumber = 18 + FieldOptions_Targets_field_number protoreflect.FieldNumber = 19 FieldOptions_UninterpretedOption_field_number protoreflect.FieldNumber = 999 ) diff --git a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go index 3bc7101..e0f75fe 100644 --- a/vendor/google.golang.org/protobuf/internal/genid/type_gen.go +++ b/vendor/google.golang.org/protobuf/internal/genid/type_gen.go @@ -32,6 +32,7 @@ const ( Type_Options_field_name protoreflect.Name = "options" Type_SourceContext_field_name protoreflect.Name = "source_context" Type_Syntax_field_name protoreflect.Name = "syntax" + Type_Edition_field_name protoreflect.Name = "edition" Type_Name_field_fullname protoreflect.FullName = "google.protobuf.Type.name" Type_Fields_field_fullname protoreflect.FullName = "google.protobuf.Type.fields" @@ -39,6 +40,7 @@ const ( Type_Options_field_fullname protoreflect.FullName = "google.protobuf.Type.options" Type_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Type.source_context" Type_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Type.syntax" + Type_Edition_field_fullname protoreflect.FullName = "google.protobuf.Type.edition" ) // Field numbers for google.protobuf.Type. @@ -49,6 +51,7 @@ const ( Type_Options_field_number protoreflect.FieldNumber = 4 Type_SourceContext_field_number protoreflect.FieldNumber = 5 Type_Syntax_field_number protoreflect.FieldNumber = 6 + Type_Edition_field_number protoreflect.FieldNumber = 7 ) // Names for google.protobuf.Field. @@ -121,12 +124,14 @@ const ( Enum_Options_field_name protoreflect.Name = "options" Enum_SourceContext_field_name protoreflect.Name = "source_context" Enum_Syntax_field_name protoreflect.Name = "syntax" + Enum_Edition_field_name protoreflect.Name = "edition" Enum_Name_field_fullname protoreflect.FullName = "google.protobuf.Enum.name" Enum_Enumvalue_field_fullname protoreflect.FullName = "google.protobuf.Enum.enumvalue" Enum_Options_field_fullname protoreflect.FullName = "google.protobuf.Enum.options" Enum_SourceContext_field_fullname protoreflect.FullName = "google.protobuf.Enum.source_context" Enum_Syntax_field_fullname protoreflect.FullName = "google.protobuf.Enum.syntax" + Enum_Edition_field_fullname protoreflect.FullName = "google.protobuf.Enum.edition" ) // Field numbers for google.protobuf.Enum. @@ -136,6 +141,7 @@ const ( Enum_Options_field_number protoreflect.FieldNumber = 3 Enum_SourceContext_field_number protoreflect.FieldNumber = 4 Enum_Syntax_field_number protoreflect.FieldNumber = 5 + Enum_Edition_field_number protoreflect.FieldNumber = 6 ) // Names for google.protobuf.EnumValue. diff --git a/vendor/google.golang.org/protobuf/internal/order/order.go b/vendor/google.golang.org/protobuf/internal/order/order.go index 33745ed..dea522e 100644 --- a/vendor/google.golang.org/protobuf/internal/order/order.go +++ b/vendor/google.golang.org/protobuf/internal/order/order.go @@ -33,7 +33,7 @@ var ( return !inOneof(ox) && inOneof(oy) } // Fields in disjoint oneof sets are sorted by declaration index. - if ox != nil && oy != nil && ox != oy { + if inOneof(ox) && inOneof(oy) && ox != oy { return ox.Index() < oy.Index() } // Fields sorted by field number. diff --git a/vendor/google.golang.org/protobuf/proto/size.go b/vendor/google.golang.org/protobuf/proto/size.go index 554b9c6..f1692b4 100644 --- a/vendor/google.golang.org/protobuf/proto/size.go +++ b/vendor/google.golang.org/protobuf/proto/size.go @@ -73,23 +73,27 @@ func (o MarshalOptions) sizeField(fd protoreflect.FieldDescriptor, value protore } func (o MarshalOptions) sizeList(num protowire.Number, fd protoreflect.FieldDescriptor, list protoreflect.List) (size int) { + sizeTag := protowire.SizeTag(num) + if fd.IsPacked() && list.Len() > 0 { content := 0 for i, llen := 0, list.Len(); i < llen; i++ { content += o.sizeSingular(num, fd.Kind(), list.Get(i)) } - return protowire.SizeTag(num) + protowire.SizeBytes(content) + return sizeTag + protowire.SizeBytes(content) } for i, llen := 0, list.Len(); i < llen; i++ { - size += protowire.SizeTag(num) + o.sizeSingular(num, fd.Kind(), list.Get(i)) + size += sizeTag + o.sizeSingular(num, fd.Kind(), list.Get(i)) } return size } func (o MarshalOptions) sizeMap(num protowire.Number, fd protoreflect.FieldDescriptor, mapv protoreflect.Map) (size int) { + sizeTag := protowire.SizeTag(num) + mapv.Range(func(key protoreflect.MapKey, value protoreflect.Value) bool { - size += protowire.SizeTag(num) + size += sizeTag size += protowire.SizeBytes(o.sizeField(fd.MapKey(), key.Value()) + o.sizeField(fd.MapValue(), value)) return true }) diff --git a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go index 54ce326..717b106 100644 --- a/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +++ b/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go @@ -363,6 +363,8 @@ func (p *SourcePath) appendFieldOptions(b []byte) []byte { b = p.appendSingularField(b, "retention", nil) case 18: b = p.appendSingularField(b, "target", nil) + case 19: + b = p.appendRepeatedField(b, "targets", nil) case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) } @@ -418,6 +420,10 @@ func (p *SourcePath) appendExtensionRangeOptions(b []byte) []byte { switch (*p)[0] { case 999: b = p.appendRepeatedField(b, "uninterpreted_option", (*SourcePath).appendUninterpretedOption) + case 2: + b = p.appendRepeatedField(b, "declaration", (*SourcePath).appendExtensionRangeOptions_Declaration) + case 3: + b = p.appendSingularField(b, "verification", nil) } return b } @@ -473,3 +479,24 @@ func (p *SourcePath) appendUninterpretedOption_NamePart(b []byte) []byte { } return b } + +func (p *SourcePath) appendExtensionRangeOptions_Declaration(b []byte) []byte { + if len(*p) == 0 { + return b + } + switch (*p)[0] { + case 1: + b = p.appendSingularField(b, "number", nil) + case 2: + b = p.appendSingularField(b, "full_name", nil) + case 3: + b = p.appendSingularField(b, "type", nil) + case 4: + b = p.appendSingularField(b, "is_repeated", nil) + case 5: + b = p.appendSingularField(b, "reserved", nil) + case 6: + b = p.appendSingularField(b, "repeated", nil) + } + return b +} diff --git a/vendor/modules.txt b/vendor/modules.txt index bbe9974..d21dc0f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,15 +1,15 @@ -# github.com/bytedance/sonic v1.9.1 -## explicit; go 1.15 +# github.com/bytedance/sonic v1.10.0 +## 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 @@ -21,9 +21,13 @@ github.com/bytedance/sonic/loader github.com/bytedance/sonic/option github.com/bytedance/sonic/unquote github.com/bytedance/sonic/utf8 -# 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/gabriel-vasile/mimetype v1.4.2 ## explicit; go 1.20 github.com/gabriel-vasile/mimetype @@ -61,6 +65,8 @@ github.com/goccy/go-json/internal/encoder/vm_color_indent github.com/goccy/go-json/internal/encoder/vm_indent github.com/goccy/go-json/internal/errors github.com/goccy/go-json/internal/runtime +# github.com/google/go-cmp v0.6.0 +## explicit; go 1.13 # github.com/jackc/pgpassfile v1.0.0 ## explicit; go 1.12 github.com/jackc/pgpassfile @@ -90,7 +96,7 @@ github.com/jinzhu/now # github.com/json-iterator/go v1.1.12 ## explicit; go 1.12 github.com/json-iterator/go -# github.com/klauspost/cpuid/v2 v2.2.4 +# github.com/klauspost/cpuid/v2 v2.2.5 ## explicit; go 1.15 github.com/klauspost/cpuid/v2 # github.com/kr/text v0.2.0 @@ -107,7 +113,7 @@ github.com/modern-go/concurrent # github.com/modern-go/reflect2 v1.0.2 ## explicit; go 1.12 github.com/modern-go/reflect2 -# github.com/pelletier/go-toml/v2 v2.0.8 +# github.com/pelletier/go-toml/v2 v2.0.9 ## explicit; go 1.16 github.com/pelletier/go-toml/v2 github.com/pelletier/go-toml/v2/internal/characters @@ -138,15 +144,15 @@ github.com/twitchyliquid64/golang-asm/unsafeheader # github.com/ugorji/go/codec v1.2.11 ## explicit; go 1.11 github.com/ugorji/go/codec -# golang.org/x/arch v0.3.0 +# golang.org/x/arch v0.4.0 ## explicit; go 1.17 golang.org/x/arch/x86/x86asm -# golang.org/x/crypto v0.14.0 -## explicit; go 1.17 +# golang.org/x/crypto v0.28.0 +## explicit; go 1.20 golang.org/x/crypto/pbkdf2 golang.org/x/crypto/sha3 -# golang.org/x/net v0.10.0 -## explicit; go 1.17 +# golang.org/x/net v0.30.0 +## explicit; go 1.18 golang.org/x/net/html golang.org/x/net/html/atom golang.org/x/net/http/httpguts @@ -158,8 +164,8 @@ golang.org/x/net/idna ## explicit; go 1.18 golang.org/x/sys/cpu golang.org/x/sys/unix -# golang.org/x/text v0.13.0 -## explicit; go 1.17 +# golang.org/x/text v0.19.0 +## explicit; go 1.18 golang.org/x/text/cases golang.org/x/text/internal golang.org/x/text/internal/language @@ -173,7 +179,7 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# google.golang.org/protobuf v1.30.0 +# google.golang.org/protobuf v1.31.0 ## explicit; go 1.11 google.golang.org/protobuf/encoding/protowire google.golang.org/protobuf/internal/detrand